aboutsummaryrefslogtreecommitdiff
path: root/src/backends/cl/test/ClContextControlFixture.hpp
blob: fd53e3fcf3bfa5eeb4062460be04ed8d4e010e19 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
//
// Copyright © 2017 Arm Ltd. All rights reserved.
// SPDX-License-Identifier: MIT
//

#pragma once

#include <backends/cl/ClContextControl.hpp>

template<bool ProfilingEnabled>
struct ClContextControlFixtureBase
{
    static ClContextControlFixtureBase*& Instance()
    {
        static ClContextControlFixtureBase* s_Instance = nullptr;
        return s_Instance;
    }

    // Initialising ClContextControl to ensure OpenCL is loaded correctly for each test case
    ClContextControlFixtureBase()
        : m_ClContextControl(nullptr, ProfilingEnabled)
    {
        Instance() = this;
    }
    ~ClContextControlFixtureBase()
    {
        Instance() = nullptr;
    }

    armnn::ClContextControl m_ClContextControl;
};

using ClContextControlFixture = ClContextControlFixtureBase<false>;
using ClProfilingContextControlFixture = ClContextControlFixtureBase<true>;