blob: fd53e3fcf3bfa5eeb4062460be04ed8d4e010e19 [file] [log] [blame]
telsoa01c577f2c2018-08-31 09:22:23 +01001//
2// Copyright © 2017 Arm Ltd. All rights reserved.
David Beckecb56cd2018-09-05 12:52:57 +01003// SPDX-License-Identifier: MIT
telsoa01c577f2c2018-08-31 09:22:23 +01004//
5
6#pragma once
7
David Beckac42efd2018-09-26 17:41:13 +01008#include <backends/cl/ClContextControl.hpp>
telsoa01c577f2c2018-08-31 09:22:23 +01009
10template<bool ProfilingEnabled>
11struct ClContextControlFixtureBase
12{
Matteo Martincigh539b44d2018-10-01 09:26:39 +010013 static ClContextControlFixtureBase*& Instance()
14 {
15 static ClContextControlFixtureBase* s_Instance = nullptr;
16 return s_Instance;
17 }
18
telsoa01c577f2c2018-08-31 09:22:23 +010019 // Initialising ClContextControl to ensure OpenCL is loaded correctly for each test case
Matteo Martincigh539b44d2018-10-01 09:26:39 +010020 ClContextControlFixtureBase()
21 : m_ClContextControl(nullptr, ProfilingEnabled)
22 {
23 Instance() = this;
24 }
25 ~ClContextControlFixtureBase()
26 {
27 Instance() = nullptr;
28 }
telsoa01c577f2c2018-08-31 09:22:23 +010029
30 armnn::ClContextControl m_ClContextControl;
31};
32
33using ClContextControlFixture = ClContextControlFixtureBase<false>;
34using ClProfilingContextControlFixture = ClContextControlFixtureBase<true>;