From 40d487fa90cd47f52cdad33bb2cc20dba629a514 Mon Sep 17 00:00:00 2001 From: Mateusz Jablonski Date: Tue, 1 Sep 2020 12:38:50 +0200 Subject: [PATCH] Add global destructor of platforms Change-Id: I7f0c9a9a13cae5cbf831e0d4e410c78c001a75d1 Signed-off-by: Mateusz Jablonski --- level_zero/core/test/unit_tests/main.cpp | 1 - opencl/source/api/api.cpp | 12 ++++++------ .../source/os_interface/linux/CMakeLists.txt | 1 + .../linux/platform_teardown_linux.cpp | 15 +++++++++++++++ .../source/os_interface/windows/CMakeLists.txt | 1 + .../windows/platform_teardown_win.cpp | 18 ++++++++++++++++++ opencl/source/platform/platform.cpp | 2 +- opencl/source/platform/platform.h | 2 +- .../source/sharings/gl/windows/cl_gl_api.cpp | 2 +- ...ate_command_queue_with_properties_tests.cpp | 2 +- .../unit_test/api/cl_get_device_ids_tests.inl | 8 ++++---- .../api/cl_get_platform_ids_tests.inl | 16 ++++++++-------- .../command_queue/command_queue_tests.cpp | 2 +- .../command_stream/get_devices_tests.cpp | 4 ++-- opencl/test/unit_test/fixtures/image_fixture.h | 2 +- .../fixtures/memory_allocator_fixture.h | 2 +- .../unit_test/fixtures/platform_fixture.cpp | 2 +- .../gen9/cl_get_platform_ids_tests_gen9.cpp | 4 ++-- opencl/test/unit_test/gtpin/gtpin_tests.cpp | 4 ++-- opencl/test/unit_test/linux/main_linux_dll.cpp | 11 +++++++++++ opencl/test/unit_test/main.cpp | 2 +- opencl/test/unit_test/mem_obj/buffer_tests.cpp | 2 +- .../mem_obj/destructor_callback_tests.cpp | 2 +- opencl/test/unit_test/mem_obj/image_tests.cpp | 2 +- opencl/test/unit_test/mocks/mock_platform.cpp | 10 +++++----- .../os_interface/device_factory_tests.cpp | 2 +- .../gl/cl_get_gl_context_info_khr_tests.cpp | 8 ++++---- .../test/unit_test/platform/platform_tests.cpp | 10 +++++----- .../test/unit_test/program/program_tests.cpp | 2 +- opencl/test/unit_test/ult_config_listener.cpp | 2 +- shared/test/unit_test/main.cpp | 2 +- 31 files changed, 100 insertions(+), 55 deletions(-) create mode 100644 opencl/source/os_interface/linux/platform_teardown_linux.cpp create mode 100644 opencl/source/os_interface/windows/platform_teardown_win.cpp diff --git a/level_zero/core/test/unit_tests/main.cpp b/level_zero/core/test/unit_tests/main.cpp index 569c2d3998..6746fa6e2a 100644 --- a/level_zero/core/test/unit_tests/main.cpp +++ b/level_zero/core/test/unit_tests/main.cpp @@ -85,7 +85,6 @@ std::string getRunPath(char *argv0) { std::thread::id tempThreadID; void applyWorkarounds() { - NEO::platformsImpl.reserve(1); { std::ofstream f; const std::string fileName("_tmp_"); diff --git a/opencl/source/api/api.cpp b/opencl/source/api/api.cpp index 6a36ccb0b3..a804f06e48 100644 --- a/opencl/source/api/api.cpp +++ b/opencl/source/api/api.cpp @@ -84,7 +84,7 @@ cl_int CL_API_CALL clGetPlatformIDs(cl_uint numEntries, static std::mutex mutex; std::unique_lock lock(mutex); - if (platformsImpl.empty()) { + if (platformsImpl->empty()) { auto executionEnvironment = new ClExecutionEnvironment(); executionEnvironment->incRefInternal(); auto allDevices = DeviceFactory::createDevices(*executionEnvironment); @@ -101,19 +101,19 @@ cl_int CL_API_CALL clGetPlatformIDs(cl_uint numEntries, retVal = CL_OUT_OF_HOST_MEMORY; break; } - platformsImpl.push_back(std::move(pPlatform)); + platformsImpl->push_back(std::move(pPlatform)); } if (retVal != CL_SUCCESS) { break; } } - cl_uint numPlatformsToExpose = std::min(numEntries, static_cast(platformsImpl.size())); + cl_uint numPlatformsToExpose = std::min(numEntries, static_cast(platformsImpl->size())); if (numEntries == 0) { - numPlatformsToExpose = static_cast(platformsImpl.size()); + numPlatformsToExpose = static_cast(platformsImpl->size()); } if (platforms) { for (auto i = 0u; i < numPlatformsToExpose; i++) { - platforms[i] = platformsImpl[i].get(); + platforms[i] = (*platformsImpl)[i].get(); } } @@ -207,7 +207,7 @@ cl_int CL_API_CALL clGetDeviceIDs(cl_platform_id platform, retVal = CL_DEVICE_NOT_FOUND; break; } - pPlatform = platformsImpl[0].get(); + pPlatform = (*platformsImpl)[0].get(); } DEBUG_BREAK_IF(pPlatform->isInitialized() != true); diff --git a/opencl/source/os_interface/linux/CMakeLists.txt b/opencl/source/os_interface/linux/CMakeLists.txt index 1ab8f38f2e..1bf96abd44 100644 --- a/opencl/source/os_interface/linux/CMakeLists.txt +++ b/opencl/source/os_interface/linux/CMakeLists.txt @@ -17,6 +17,7 @@ set(RUNTIME_SRCS_OS_INTERFACE_LINUX ${CMAKE_CURRENT_SOURCE_DIR}/os_metrics_library.cpp ${CMAKE_CURRENT_SOURCE_DIR}/performance_counters_linux.cpp ${CMAKE_CURRENT_SOURCE_DIR}/performance_counters_linux.h + ${CMAKE_CURRENT_SOURCE_DIR}/platform_teardown_linux.cpp ) if(UNIX) target_sources(${NEO_STATIC_LIB_NAME} PRIVATE ${RUNTIME_SRCS_OS_INTERFACE_LINUX}) diff --git a/opencl/source/os_interface/linux/platform_teardown_linux.cpp b/opencl/source/os_interface/linux/platform_teardown_linux.cpp new file mode 100644 index 0000000000..b424a3d1f9 --- /dev/null +++ b/opencl/source/os_interface/linux/platform_teardown_linux.cpp @@ -0,0 +1,15 @@ +/* + * Copyright (C) 2020 Intel Corporation + * + * SPDX-License-Identifier: MIT + * + */ + +#include "opencl/source/platform/platform.h" + +namespace NEO { +void __attribute__((destructor)) platformsDestructor() { + delete platformsImpl; + platformsImpl = nullptr; +} +} // namespace NEO diff --git a/opencl/source/os_interface/windows/CMakeLists.txt b/opencl/source/os_interface/windows/CMakeLists.txt index 119b8eaad6..91a795e6e1 100644 --- a/opencl/source/os_interface/windows/CMakeLists.txt +++ b/opencl/source/os_interface/windows/CMakeLists.txt @@ -16,6 +16,7 @@ set(RUNTIME_SRCS_OS_INTERFACE_WINDOWS ${CMAKE_CURRENT_SOURCE_DIR}/os_metrics_library.cpp ${CMAKE_CURRENT_SOURCE_DIR}/performance_counters_win.cpp ${CMAKE_CURRENT_SOURCE_DIR}/performance_counters_win.h + ${CMAKE_CURRENT_SOURCE_DIR}/platform_teardown_win.cpp ${CMAKE_CURRENT_SOURCE_DIR}/wddm_device_command_stream.h ${CMAKE_CURRENT_SOURCE_DIR}/wddm_device_command_stream.inl ) diff --git a/opencl/source/os_interface/windows/platform_teardown_win.cpp b/opencl/source/os_interface/windows/platform_teardown_win.cpp new file mode 100644 index 0000000000..31194b2ad8 --- /dev/null +++ b/opencl/source/os_interface/windows/platform_teardown_win.cpp @@ -0,0 +1,18 @@ +/* + * Copyright (C) 2020 Intel Corporation + * + * SPDX-License-Identifier: MIT + * + */ + +#include "opencl/source/platform/platform.h" + +namespace NEO { + +BOOL APIENTRY DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) { + if (fdwReason == DLL_PROCESS_DETACH) { + delete platformsImpl; + } + return TRUE; +} +} // namespace NEO diff --git a/opencl/source/platform/platform.cpp b/opencl/source/platform/platform.cpp index 34a659119b..9341780e80 100644 --- a/opencl/source/platform/platform.cpp +++ b/opencl/source/platform/platform.cpp @@ -37,7 +37,7 @@ #include namespace NEO { -std::vector> platformsImpl; +std::vector> *platformsImpl = new std::vector>; Platform::Platform(ExecutionEnvironment &executionEnvironmentIn) : executionEnvironment(executionEnvironmentIn) { clDevices.reserve(4); diff --git a/opencl/source/platform/platform.h b/opencl/source/platform/platform.h index 64019c0953..57a7a1c96d 100644 --- a/opencl/source/platform/platform.h +++ b/opencl/source/platform/platform.h @@ -73,5 +73,5 @@ class Platform : public BaseObject<_cl_platform_id> { std::once_flag initializeExtensionsWithVersionOnce; }; -extern std::vector> platformsImpl; +extern std::vector> *platformsImpl; } // namespace NEO diff --git a/opencl/source/sharings/gl/windows/cl_gl_api.cpp b/opencl/source/sharings/gl/windows/cl_gl_api.cpp index 4e85c981b3..f9ed77df4b 100644 --- a/opencl/source/sharings/gl/windows/cl_gl_api.cpp +++ b/opencl/source/sharings/gl/windows/cl_gl_api.cpp @@ -352,7 +352,7 @@ cl_int CL_API_CALL clGetGLContextInfoKHR(const cl_context_properties *properties if (paramName == CL_DEVICES_FOR_GL_CONTEXT_KHR || paramName == CL_CURRENT_DEVICE_FOR_GL_CONTEXT_KHR) { if (!platform) { - platform = platformsImpl[0].get(); + platform = (*platformsImpl)[0].get(); } ClDevice *deviceToReturn = nullptr; diff --git a/opencl/test/unit_test/api/cl_create_command_queue_with_properties_tests.cpp b/opencl/test/unit_test/api/cl_create_command_queue_with_properties_tests.cpp index 1da84a747f..3f39b4adb3 100644 --- a/opencl/test/unit_test/api/cl_create_command_queue_with_properties_tests.cpp +++ b/opencl/test/unit_test/api/cl_create_command_queue_with_properties_tests.cpp @@ -55,7 +55,7 @@ struct clCreateCommandQueueWithPropertiesApi : public ApiFixture<>, } void SetUp() override { - platformsImpl.clear(); + platformsImpl->clear(); MemoryManagementFixture::SetUp(); ApiFixture::SetUp(); } diff --git a/opencl/test/unit_test/api/cl_get_device_ids_tests.inl b/opencl/test/unit_test/api/cl_get_device_ids_tests.inl index 66d3027a89..60c1f350cd 100644 --- a/opencl/test/unit_test/api/cl_get_device_ids_tests.inl +++ b/opencl/test/unit_test/api/cl_get_device_ids_tests.inl @@ -99,7 +99,7 @@ TEST_F(clGetDeviceIDsTests, GivenDeviceTypeCpuWhenGettingDeviceIdsThenDeviceNotF } TEST(clGetDeviceIDsTest, givenMultipleRootDevicesWhenGetDeviceIdsThenAllRootDevicesAreReturned) { - platformsImpl.clear(); + platformsImpl->clear(); constexpr auto numRootDevices = 3u; VariableBackup backup(&ultHwConfig); ultHwConfig.useMockedPrepareDeviceEnvironmentsFunc = false; @@ -116,7 +116,7 @@ TEST(clGetDeviceIDsTest, givenMultipleRootDevicesWhenGetDeviceIdsThenAllRootDevi } } TEST(clGetDeviceIDsTest, givenMultipleRootDevicesWhenGetDeviceIdsButNumEntriesIsLowerThanNumDevicesThenSubsetOfRootDevicesIsReturned) { - platformsImpl.clear(); + platformsImpl->clear(); constexpr auto numRootDevices = 3u; VariableBackup backup(&ultHwConfig); ultHwConfig.useMockedPrepareDeviceEnvironmentsFunc = false; @@ -147,7 +147,7 @@ TEST(clGetDeviceIDsTest, givenMultipleRootDevicesWhenGetDeviceIdsButNumEntriesIs } TEST(clGetDeviceIDsTest, givenMultipleRootDevicesAndLimitedNumberOfReturnedDevicesWhenGetDeviceIdsThenLimitedNumberOfRootDevicesIsReturned) { - platformsImpl.clear(); + platformsImpl->clear(); constexpr auto numRootDevices = 3u; VariableBackup backup(&ultHwConfig); ultHwConfig.useMockedPrepareDeviceEnvironmentsFunc = false; @@ -177,7 +177,7 @@ TEST(clGetDeviceIDsNegativeTests, whenFailToCreateDeviceThenclGetDeviceIDsReturn DeviceFactory::createRootDeviceFunc = [](ExecutionEnvironment &executionEnvironment, uint32_t rootDeviceIndex) -> std::unique_ptr { return nullptr; }; - platformsImpl.clear(); + platformsImpl->clear(); constexpr auto numRootDevices = 3u; cl_uint numDevices = 0; diff --git a/opencl/test/unit_test/api/cl_get_platform_ids_tests.inl b/opencl/test/unit_test/api/cl_get_platform_ids_tests.inl index b031c97b7e..b7d7c58369 100644 --- a/opencl/test/unit_test/api/cl_get_platform_ids_tests.inl +++ b/opencl/test/unit_test/api/cl_get_platform_ids_tests.inl @@ -49,7 +49,7 @@ TEST_F(clGetPlatformIDsTests, GivenNumEntriesZeroAndPlatformNotNullWhenGettingPl } TEST(clGetPlatformIDsNegativeTests, GivenFailedInitializationWhenGettingPlatformIdsThenClOutOfHostMemoryErrorIsReturned) { - platformsImpl.clear(); + platformsImpl->clear(); VariableBackup backup{&ultHwConfig}; ultHwConfig.mockedPrepareDeviceEnvironmentsFuncResult = false; @@ -63,14 +63,14 @@ TEST(clGetPlatformIDsNegativeTests, GivenFailedInitializationWhenGettingPlatform EXPECT_EQ(0u, numPlatforms); EXPECT_EQ(nullptr, platformRet); - platformsImpl.clear(); + platformsImpl->clear(); } TEST(clGetPlatformIDsNegativeTests, whenFailToCreateDeviceThenClGetPlatfomsIdsReturnsOutOfHostMemoryError) { VariableBackup createFuncBackup{&DeviceFactory::createRootDeviceFunc}; DeviceFactory::createRootDeviceFunc = [](ExecutionEnvironment &executionEnvironment, uint32_t rootDeviceIndex) -> std::unique_ptr { return nullptr; }; - platformsImpl.clear(); + platformsImpl->clear(); cl_int retVal = CL_SUCCESS; cl_platform_id platformRet = nullptr; @@ -82,7 +82,7 @@ TEST(clGetPlatformIDsNegativeTests, whenFailToCreateDeviceThenClGetPlatfomsIdsRe EXPECT_EQ(0u, numPlatforms); EXPECT_EQ(nullptr, platformRet); - platformsImpl.clear(); + platformsImpl->clear(); } TEST(clGetPlatformIDsNegativeTests, whenFailToCreatePlatformThenClGetPlatfomsIdsReturnsOutOfHostMemoryError) { @@ -90,7 +90,7 @@ TEST(clGetPlatformIDsNegativeTests, whenFailToCreatePlatformThenClGetPlatfomsIds Platform::createFunc = [](ExecutionEnvironment &executionEnvironment) -> std::unique_ptr { return nullptr; }; - platformsImpl.clear(); + platformsImpl->clear(); cl_int retVal = CL_SUCCESS; cl_platform_id platformRet = nullptr; @@ -102,7 +102,7 @@ TEST(clGetPlatformIDsNegativeTests, whenFailToCreatePlatformThenClGetPlatfomsIds EXPECT_EQ(0u, numPlatforms); EXPECT_EQ(nullptr, platformRet); - platformsImpl.clear(); + platformsImpl->clear(); } TEST(clGetPlatformIDsNegativeTests, whenFailToInitializePlatformThenClGetPlatfomsIdsReturnsOutOfHostMemoryError) { @@ -116,7 +116,7 @@ TEST(clGetPlatformIDsNegativeTests, whenFailToInitializePlatformThenClGetPlatfom Platform::createFunc = [](ExecutionEnvironment &executionEnvironment) -> std::unique_ptr { return std::make_unique(executionEnvironment); }; - platformsImpl.clear(); + platformsImpl->clear(); cl_int retVal = CL_SUCCESS; cl_platform_id platformRet = nullptr; @@ -128,6 +128,6 @@ TEST(clGetPlatformIDsNegativeTests, whenFailToInitializePlatformThenClGetPlatfom EXPECT_EQ(0u, numPlatforms); EXPECT_EQ(nullptr, platformRet); - platformsImpl.clear(); + platformsImpl->clear(); } } // namespace ULT diff --git a/opencl/test/unit_test/command_queue/command_queue_tests.cpp b/opencl/test/unit_test/command_queue/command_queue_tests.cpp index b1db7db9a5..cc50b9e8f6 100644 --- a/opencl/test/unit_test/command_queue/command_queue_tests.cpp +++ b/opencl/test/unit_test/command_queue/command_queue_tests.cpp @@ -52,7 +52,7 @@ struct CommandQueueMemoryDevice void TearDown() override { ClDeviceFixture::TearDown(); - platformsImpl.clear(); + platformsImpl->clear(); MemoryManagementFixture::TearDown(); } }; diff --git a/opencl/test/unit_test/command_stream/get_devices_tests.cpp b/opencl/test/unit_test/command_stream/get_devices_tests.cpp index 54a58ca30a..987d5b2530 100644 --- a/opencl/test/unit_test/command_stream/get_devices_tests.cpp +++ b/opencl/test/unit_test/command_stream/get_devices_tests.cpp @@ -62,7 +62,7 @@ HWTEST_F(PrepareDeviceEnvironmentsTest, givenPrepareDeviceEnvironmentsWhenCsrIsS } DebugManager.flags.ProductFamilyOverride.set(productFamily); - platformsImpl.clear(); + platformsImpl->clear(); ExecutionEnvironment *exeEnv = constructPlatform()->peekExecutionEnvironment(); const auto ret = prepareDeviceEnvironments(*exeEnv); @@ -149,7 +149,7 @@ HWTEST_F(PrepareDeviceEnvironmentsTest, givenPrepareDeviceEnvironmentsAndUnknown DebugManager.flags.SetCommandStreamReceiver.set(csrType); DebugManager.flags.ProductFamilyOverride.set(productFamily); - platformsImpl.clear(); + platformsImpl->clear(); ExecutionEnvironment *exeEnv = constructPlatform()->peekExecutionEnvironment(); auto ret = prepareDeviceEnvironments(*exeEnv); diff --git a/opencl/test/unit_test/fixtures/image_fixture.h b/opencl/test/unit_test/fixtures/image_fixture.h index 48942894dd..f92fe18a33 100644 --- a/opencl/test/unit_test/fixtures/image_fixture.h +++ b/opencl/test/unit_test/fixtures/image_fixture.h @@ -119,7 +119,7 @@ struct ImageClearColorFixture : ::testing::Test { void setUpImpl() { hardwareInfo.capabilityTable.ftrRenderCompressedImages = true; - NEO::platformsImpl.clear(); + NEO::platformsImpl->clear(); NEO::constructPlatform()->peekExecutionEnvironment()->prepareRootDeviceEnvironments(1u); NEO::platform()->peekExecutionEnvironment()->rootDeviceEnvironments[0]->setHwInfo(&hardwareInfo); NEO::platform()->peekExecutionEnvironment()->rootDeviceEnvironments[0]->initGmm(); diff --git a/opencl/test/unit_test/fixtures/memory_allocator_fixture.h b/opencl/test/unit_test/fixtures/memory_allocator_fixture.h index 6fc6c9a43a..77d7c5197f 100644 --- a/opencl/test/unit_test/fixtures/memory_allocator_fixture.h +++ b/opencl/test/unit_test/fixtures/memory_allocator_fixture.h @@ -39,7 +39,7 @@ class MemoryAllocatorFixture : public MemoryManagementFixture { void TearDown() override { device.reset(); - platformsImpl.clear(); + platformsImpl->clear(); MemoryManagementFixture::TearDown(); } diff --git a/opencl/test/unit_test/fixtures/platform_fixture.cpp b/opencl/test/unit_test/fixtures/platform_fixture.cpp index 9fa1038c87..45d41dd2c6 100644 --- a/opencl/test/unit_test/fixtures/platform_fixture.cpp +++ b/opencl/test/unit_test/fixtures/platform_fixture.cpp @@ -36,7 +36,7 @@ void PlatformFixture::SetUp() { } void PlatformFixture::TearDown() { - platformsImpl.clear(); + platformsImpl->clear(); delete[] devices; } } // namespace NEO diff --git a/opencl/test/unit_test/gen9/cl_get_platform_ids_tests_gen9.cpp b/opencl/test/unit_test/gen9/cl_get_platform_ids_tests_gen9.cpp index 420a233e17..2a165ec855 100644 --- a/opencl/test/unit_test/gen9/cl_get_platform_ids_tests_gen9.cpp +++ b/opencl/test/unit_test/gen9/cl_get_platform_ids_tests_gen9.cpp @@ -33,7 +33,7 @@ TEST(clGetPlatformIDsMultiPlatformTest, whenCreateDevicesWithDifferentProductFam } return device; }; - platformsImpl.clear(); + platformsImpl->clear(); cl_int retVal = CL_SUCCESS; cl_platform_id platformsRet[2]; @@ -59,5 +59,5 @@ TEST(clGetPlatformIDsMultiPlatformTest, whenCreateDevicesWithDifferentProductFam EXPECT_EQ(1u, platform1->getNumDevices()); EXPECT_EQ(IGFX_SKYLAKE, platform1->getClDevice(0)->getHardwareInfo().platform.eProductFamily); EXPECT_EQ(0u, platform1->getClDevice(0)->getRootDeviceIndex()); - platformsImpl.clear(); + platformsImpl->clear(); } diff --git a/opencl/test/unit_test/gtpin/gtpin_tests.cpp b/opencl/test/unit_test/gtpin/gtpin_tests.cpp index f2f7c122ee..dd192fbe98 100644 --- a/opencl/test/unit_test/gtpin/gtpin_tests.cpp +++ b/opencl/test/unit_test/gtpin/gtpin_tests.cpp @@ -148,7 +148,7 @@ class GTPinFixture : public ContextFixture, public MemoryManagementFixture { public: void SetUp() override { - platformsImpl.clear(); + platformsImpl->clear(); MemoryManagementFixture::SetUp(); constructPlatform(); pPlatform = platform(); @@ -180,7 +180,7 @@ class GTPinFixture : public ContextFixture, public MemoryManagementFixture { void TearDown() override { ContextFixture::TearDown(); - platformsImpl.clear(); + platformsImpl->clear(); MemoryManagementFixture::TearDown(); NEO::isGTPinInitialized = false; } diff --git a/opencl/test/unit_test/linux/main_linux_dll.cpp b/opencl/test/unit_test/linux/main_linux_dll.cpp index 7d7bff079a..d45dad905c 100644 --- a/opencl/test/unit_test/linux/main_linux_dll.cpp +++ b/opencl/test/unit_test/linux/main_linux_dll.cpp @@ -28,6 +28,9 @@ #include +namespace NEO { +void __attribute__((destructor)) platformsDestructor(); +} using namespace NEO; class DrmTestsFixture { @@ -520,3 +523,11 @@ TEST_F(DrmTests, whenCreateDrmIsCalledThenProperHwInfoIsSetup) { EXPECT_LT(0u, currentHwInfo->gtSystemInfo.EUCount); EXPECT_LT(0u, currentHwInfo->gtSystemInfo.SubSliceCount); } + +TEST(PlatformsDestructor, whenGlobalPlatformsDestructorIsCalledThenGlobalPlatformsAreDestroyed) { + EXPECT_NE(nullptr, platformsImpl); + platformsDestructor(); + + EXPECT_EQ(nullptr, platformsImpl); + platformsImpl = new std::vector>; +} diff --git a/opencl/test/unit_test/main.cpp b/opencl/test/unit_test/main.cpp index 1013146e82..93785aa432 100644 --- a/opencl/test/unit_test/main.cpp +++ b/opencl/test/unit_test/main.cpp @@ -72,7 +72,7 @@ extern std::string lastTest; bool generateRandomInput = false; void applyWorkarounds() { - platformsImpl.reserve(1); + platformsImpl->reserve(1); { std::ofstream f; const std::string fileName("_tmp_"); diff --git a/opencl/test/unit_test/mem_obj/buffer_tests.cpp b/opencl/test/unit_test/mem_obj/buffer_tests.cpp index 337d9ad399..b9fc4425e1 100644 --- a/opencl/test/unit_test/mem_obj/buffer_tests.cpp +++ b/opencl/test/unit_test/mem_obj/buffer_tests.cpp @@ -844,7 +844,7 @@ struct ValidHostPtr void TearDown() override { delete buffer; BaseClass::TearDown(); - platformsImpl.clear(); + platformsImpl->clear(); MemoryManagementFixture::TearDown(); } diff --git a/opencl/test/unit_test/mem_obj/destructor_callback_tests.cpp b/opencl/test/unit_test/mem_obj/destructor_callback_tests.cpp index 0e9ea85397..8d0bd222c1 100644 --- a/opencl/test/unit_test/mem_obj/destructor_callback_tests.cpp +++ b/opencl/test/unit_test/mem_obj/destructor_callback_tests.cpp @@ -26,7 +26,7 @@ class DestructorCallbackFixture : public MemoryManagementFixture { void TearDown() override { delete BufferDefaults::context; - platformsImpl.clear(); + platformsImpl->clear(); MemoryManagementFixture::TearDown(); } diff --git a/opencl/test/unit_test/mem_obj/image_tests.cpp b/opencl/test/unit_test/mem_obj/image_tests.cpp index 3dd50a6b66..fd24f96927 100644 --- a/opencl/test/unit_test/mem_obj/image_tests.cpp +++ b/opencl/test/unit_test/mem_obj/image_tests.cpp @@ -737,7 +737,7 @@ struct CreateImageHostPtr void TearDown() override { delete image; BaseClass::TearDown(); - platformsImpl.clear(); + platformsImpl->clear(); MemoryManagementFixture::TearDown(); } diff --git a/opencl/test/unit_test/mocks/mock_platform.cpp b/opencl/test/unit_test/mocks/mock_platform.cpp index 3ad0106164..3c99127556 100644 --- a/opencl/test/unit_test/mocks/mock_platform.cpp +++ b/opencl/test/unit_test/mocks/mock_platform.cpp @@ -24,18 +24,18 @@ bool MockPlatform::initializeWithNewDevices() { } Platform *platform() { - if (platformsImpl.empty()) { + if (platformsImpl->empty()) { return nullptr; } - return platformsImpl[0].get(); + return (*platformsImpl)[0].get(); } Platform *constructPlatform() { static std::mutex mutex; std::unique_lock lock(mutex); - if (platformsImpl.empty()) { - platformsImpl.push_back(std::make_unique(*(new MockClExecutionEnvironment()))); + if (platformsImpl->empty()) { + platformsImpl->push_back(std::make_unique(*(new MockClExecutionEnvironment()))); } - return platformsImpl[0].get(); + return (*platformsImpl)[0].get(); } } // namespace NEO diff --git a/opencl/test/unit_test/os_interface/device_factory_tests.cpp b/opencl/test/unit_test/os_interface/device_factory_tests.cpp index 4fdc46c971..9247672f87 100644 --- a/opencl/test/unit_test/os_interface/device_factory_tests.cpp +++ b/opencl/test/unit_test/os_interface/device_factory_tests.cpp @@ -74,7 +74,7 @@ TEST_F(DeviceFactoryTest, WhenOverridingUsingDebugManagerThenOverridesAreApplied DebugManager.flags.OverrideEnableQuickKmdSleepForSporadicWaits.set(!refEnableQuickKmdSleepForSporadicWaits); DebugManager.flags.OverrideDelayQuickKmdSleepForSporadicWaitsMicroseconds.set(static_cast(refDelayQuickKmdSleepForSporadicWaitsMicroseconds) + 12); - platformsImpl.clear(); + platformsImpl->clear(); executionEnvironment = constructPlatform()->peekExecutionEnvironment(); success = DeviceFactory::prepareDeviceEnvironments(*executionEnvironment); ASSERT_TRUE(success); diff --git a/opencl/test/unit_test/os_interface/windows/gl/cl_get_gl_context_info_khr_tests.cpp b/opencl/test/unit_test/os_interface/windows/gl/cl_get_gl_context_info_khr_tests.cpp index 98c4d024fe..94194d6ec9 100644 --- a/opencl/test/unit_test/os_interface/windows/gl/cl_get_gl_context_info_khr_tests.cpp +++ b/opencl/test/unit_test/os_interface/windows/gl/cl_get_gl_context_info_khr_tests.cpp @@ -28,7 +28,7 @@ TEST_F(clGetGLContextInfoKhrTest, successWithDefaultPlatform) { auto defaultPlatform = std::make_unique(); defaultPlatform->initializeWithNewDevices(); - platformsImpl[0] = std::move(defaultPlatform); + (*platformsImpl)[0] = std::move(defaultPlatform); auto expectedDevice = ::platform()->getClDevice(0); cl_device_id retDevice = 0; size_t retSize = 0; @@ -50,7 +50,7 @@ TEST_F(clGetGLContextInfoKhrTest, successWithDefaultPlatform) { using clGetGLContextInfoKHRNonDefaultPlatform = ::testing::Test; TEST_F(clGetGLContextInfoKHRNonDefaultPlatform, successWithNonDefaultPlatform) { - platformsImpl.clear(); + platformsImpl->clear(); VariableBackup backup(&ultHwConfig); ultHwConfig.useMockedPrepareDeviceEnvironmentsFunc = false; @@ -132,7 +132,7 @@ TEST_F(clGetGLContextInfoKhrTest, GivenIncorrectPropertiesWhenCallclGetGLContext } TEST_F(clGetGLContextInfoKHRNonDefaultPlatform, whenVerificationOfHdcHandleFailsThenInvalidGlReferenceErrorIsReturned) { - platformsImpl.clear(); + platformsImpl->clear(); VariableBackup backup(&ultHwConfig); ultHwConfig.useMockedPrepareDeviceEnvironmentsFunc = false; @@ -155,7 +155,7 @@ TEST_F(clGetGLContextInfoKHRNonDefaultPlatform, whenVerificationOfHdcHandleFails EXPECT_EQ(CL_INVALID_GL_SHAREGROUP_REFERENCE_KHR, retVal); } TEST_F(clGetGLContextInfoKHRNonDefaultPlatform, whenVerificationOfHdcHandleFailsForFirstDeviceButSucceedsForSecondOneThenReturnTheSecondDevice) { - platformsImpl.clear(); + platformsImpl->clear(); DebugManagerStateRestore restorer; DebugManager.flags.CreateMultipleRootDevices.set(2); diff --git a/opencl/test/unit_test/platform/platform_tests.cpp b/opencl/test/unit_test/platform/platform_tests.cpp index 3ca5bbdf69..b46c0a3491 100644 --- a/opencl/test/unit_test/platform/platform_tests.cpp +++ b/opencl/test/unit_test/platform/platform_tests.cpp @@ -375,7 +375,7 @@ TEST_F(PlatformTest, WhenRemovingLastSpaceThenStringDoesNotEndWithSpace) { EXPECT_EQ(std::string("x"), xSpaceString); } TEST(PlatformConstructionTest, givenPlatformConstructorWhenItIsCalledTwiceThenTheSamePlatformIsReturned) { - platformsImpl.clear(); + platformsImpl->clear(); auto platform1 = constructPlatform(); EXPECT_EQ(platform1, platform()); auto platform2 = constructPlatform(); @@ -384,15 +384,15 @@ TEST(PlatformConstructionTest, givenPlatformConstructorWhenItIsCalledTwiceThenTh } TEST(PlatformConstructionTest, givenPlatformConstructorWhenItIsCalledAfterResetThenNewPlatformIsConstructed) { - platformsImpl.clear(); + platformsImpl->clear(); auto platform = constructPlatform(); - std::unique_ptr temporaryOwnership(std::move(platformsImpl[0])); - platformsImpl.clear(); + std::unique_ptr temporaryOwnership(std::move((*platformsImpl)[0])); + platformsImpl->clear(); auto platform2 = constructPlatform(); EXPECT_NE(platform2, platform); EXPECT_NE(platform, nullptr); EXPECT_NE(platform2, nullptr); - platformsImpl.clear(); + platformsImpl->clear(); } TEST(PlatformInitTest, givenNullptrDeviceInPassedDeviceVectorWhenInitializePlatformThenExceptionIsThrown) { diff --git a/opencl/test/unit_test/program/program_tests.cpp b/opencl/test/unit_test/program/program_tests.cpp index 0201930b15..c354d06973 100644 --- a/opencl/test/unit_test/program/program_tests.cpp +++ b/opencl/test/unit_test/program/program_tests.cpp @@ -2595,7 +2595,7 @@ TEST(ProgramDestructionTests, givenProgramUsingDeviceWhenItIsDestroyedAfterPlatf auto globalAllocation = device->getMemoryManager()->allocateGraphicsMemoryWithProperties(MockAllocationProperties{device->getRootDeviceIndex(), MemoryConstants::pageSize}); pProgram->setGlobalSurface(globalAllocation); - platformsImpl.clear(); + platformsImpl->clear(); EXPECT_EQ(1, device->getRefInternalCount()); EXPECT_EQ(1, pProgram->getRefInternalCount()); context->decRefInternal(); diff --git a/opencl/test/unit_test/ult_config_listener.cpp b/opencl/test/unit_test/ult_config_listener.cpp index 9be37f4726..2109f94e44 100644 --- a/opencl/test/unit_test/ult_config_listener.cpp +++ b/opencl/test/unit_test/ult_config_listener.cpp @@ -25,7 +25,7 @@ void NEO::UltConfigListener::OnTestStart(const ::testing::TestInfo &testInfo) { } void NEO::UltConfigListener::OnTestEnd(const ::testing::TestInfo &testInfo) { // Clear global platform that it shouldn't be reused between tests - platformsImpl.clear(); + platformsImpl->clear(); MemoryManager::maxOsContextCount = 0u; // Ensure that global state is restored diff --git a/shared/test/unit_test/main.cpp b/shared/test/unit_test/main.cpp index 6e05024e59..8fd86a90de 100644 --- a/shared/test/unit_test/main.cpp +++ b/shared/test/unit_test/main.cpp @@ -74,7 +74,7 @@ extern std::string lastTest; bool generateRandomInput = false; void applyWorkarounds() { - platformsImpl.reserve(1); + platformsImpl->reserve(1); { std::ofstream f; const std::string fileName("_tmp_");