diff --git a/opencl/test/unit_test/command_queue/dispatch_walker_tests.cpp b/opencl/test/unit_test/command_queue/dispatch_walker_tests.cpp index ae4d7a83d4..64547fde2c 100644 --- a/opencl/test/unit_test/command_queue/dispatch_walker_tests.cpp +++ b/opencl/test/unit_test/command_queue/dispatch_walker_tests.cpp @@ -68,6 +68,7 @@ struct DispatchWalkerTest : public CommandQueueFixture, public ClDeviceFixture, } void TearDown() override { + program.reset(); CommandQueueFixture::tearDown(); context.reset(); ClDeviceFixture::tearDown(); diff --git a/opencl/test/unit_test/command_queue/enqueue_debug_kernel_tests.cpp b/opencl/test/unit_test/command_queue/enqueue_debug_kernel_tests.cpp index ec1a1e1987..b6b842d717 100644 --- a/opencl/test/unit_test/command_queue/enqueue_debug_kernel_tests.cpp +++ b/opencl/test/unit_test/command_queue/enqueue_debug_kernel_tests.cpp @@ -62,6 +62,7 @@ class EnqueueDebugKernelFixture { if (multiDeviceKernel != nullptr) { multiDeviceKernel->release(); } + program.reset(); } std::unique_ptr ssh = nullptr; diff --git a/opencl/test/unit_test/fixtures/cl_preemption_fixture.cpp b/opencl/test/unit_test/fixtures/cl_preemption_fixture.cpp index 6b9f2b4c2d..3e3a7d9c69 100644 --- a/opencl/test/unit_test/fixtures/cl_preemption_fixture.cpp +++ b/opencl/test/unit_test/fixtures/cl_preemption_fixture.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2020-2022 Intel Corporation + * Copyright (C) 2020-2023 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -54,6 +54,7 @@ void DevicePreemptionTests::TearDown() { kernel.reset(); kernelInfo.reset(); dispatchInfo.reset(); + program.reset(); cmdQ.reset(); context.reset(); device.reset(); diff --git a/opencl/test/unit_test/helpers/base_object_tests.cpp b/opencl/test/unit_test/helpers/base_object_tests.cpp index 512fb3f24c..af1701c620 100644 --- a/opencl/test/unit_test/helpers/base_object_tests.cpp +++ b/opencl/test/unit_test/helpers/base_object_tests.cpp @@ -88,6 +88,9 @@ template <> class MockObject : public MockObjectBase { public: MockObject() : MockObjectBase(nullptr, false, toClDeviceVector(*(new MockClDevice(new MockDevice())))), device(this->clDevices[0]) {} + ~MockObject() override { + Program::clDevices.clear(); + } private: std::unique_ptr device; diff --git a/opencl/test/unit_test/helpers/test_preamble_xehp_and_later.cpp b/opencl/test/unit_test/helpers/test_preamble_xehp_and_later.cpp index d9042051fd..31b8fd5758 100644 --- a/opencl/test/unit_test/helpers/test_preamble_xehp_and_later.cpp +++ b/opencl/test/unit_test/helpers/test_preamble_xehp_and_later.cpp @@ -101,6 +101,7 @@ struct KernelCommandsXeHPAndLater : public PreambleVfeState { } void TearDown() override { + program.reset(); pClDevice->decRefInternal(); PreambleVfeState::TearDown(); } diff --git a/opencl/test/unit_test/kernel/clone_kernel_tests.cpp b/opencl/test/unit_test/kernel/clone_kernel_tests.cpp index ca4988d633..aa60a03075 100644 --- a/opencl/test/unit_test/kernel/clone_kernel_tests.cpp +++ b/opencl/test/unit_test/kernel/clone_kernel_tests.cpp @@ -79,6 +79,10 @@ class CloneKernelTest : public MultiRootDeviceWithSubDevicesFixture { } void TearDown() override { + pClonedMultiDeviceKernel.reset(); + pSourceMultiDeviceKernel.reset(); + pKernelInfo.reset(); + pProgram.reset(); MultiRootDeviceWithSubDevicesFixture::TearDown(); } diff --git a/opencl/test/unit_test/kernel/kernel_arg_info_tests.cpp b/opencl/test/unit_test/kernel/kernel_arg_info_tests.cpp index 830f006f53..771a8eec82 100644 --- a/opencl/test/unit_test/kernel/kernel_arg_info_tests.cpp +++ b/opencl/test/unit_test/kernel/kernel_arg_info_tests.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018-2022 Intel Corporation + * Copyright (C) 2018-2023 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -38,9 +38,9 @@ class KernelArgInfoFixture { } KernelInfo kernelInfo; + std::unique_ptr clDevice; std::unique_ptr program; std::unique_ptr kernel; - std::unique_ptr clDevice; KernelDescriptor *kernelDescriptor; }; diff --git a/opencl/test/unit_test/kernel/kernel_slm_tests.cpp b/opencl/test/unit_test/kernel/kernel_slm_tests.cpp index 472ae09e59..c996f3a8a0 100644 --- a/opencl/test/unit_test/kernel/kernel_slm_tests.cpp +++ b/opencl/test/unit_test/kernel/kernel_slm_tests.cpp @@ -36,6 +36,7 @@ struct KernelSLMAndBarrierTest : public ClDeviceFixture, kernelInfo.kernelDescriptor.kernelAttributes.simdSize = 32; } void TearDown() override { + program.reset(); ClDeviceFixture::tearDown(); } diff --git a/opencl/test/unit_test/kernel/kernel_tests.cpp b/opencl/test/unit_test/kernel/kernel_tests.cpp index d66c22331b..4e38f640a7 100644 --- a/opencl/test/unit_test/kernel/kernel_tests.cpp +++ b/opencl/test/unit_test/kernel/kernel_tests.cpp @@ -2125,7 +2125,7 @@ struct KernelExecutionEnvironmentTest : public Test { void TearDown() override { delete kernel; - + program.reset(); ClDeviceFixture::tearDown(); } @@ -2200,7 +2200,7 @@ struct KernelCrossThreadTests : Test { } void TearDown() override { - + program.reset(); ClDeviceFixture::tearDown(); } @@ -3158,6 +3158,8 @@ struct KernelLargeGrfTests : Test { } void TearDown() override { + pKernelInfo.reset(); + program.reset(); ClDeviceFixture::tearDown(); } diff --git a/opencl/test/unit_test/mem_obj/image_set_arg_tests.cpp b/opencl/test/unit_test/mem_obj/image_set_arg_tests.cpp index 0ca3353831..9ae2250604 100644 --- a/opencl/test/unit_test/mem_obj/image_set_arg_tests.cpp +++ b/opencl/test/unit_test/mem_obj/image_set_arg_tests.cpp @@ -98,7 +98,7 @@ class ImageSetArgTest : public ClDeviceFixture, void TearDown() override { delete srcImage; delete pMultiDeviceKernel; - + program.reset(); delete context; ClDeviceFixture::tearDown(); } diff --git a/opencl/test/unit_test/profiling/profiling_tests.cpp b/opencl/test/unit_test/profiling/profiling_tests.cpp index 7dec14a546..b3a00ebc48 100644 --- a/opencl/test/unit_test/profiling/profiling_tests.cpp +++ b/opencl/test/unit_test/profiling/profiling_tests.cpp @@ -47,6 +47,7 @@ struct ProfilingTests : public CommandEnqueueFixture, } void TearDown() override { + program.reset(); CommandEnqueueFixture::tearDown(); } diff --git a/opencl/test/unit_test/program/process_elf_binary_tests.cpp b/opencl/test/unit_test/program/process_elf_binary_tests.cpp index b8e00c09a8..bd86f6ddc9 100644 --- a/opencl/test/unit_test/program/process_elf_binary_tests.cpp +++ b/opencl/test/unit_test/program/process_elf_binary_tests.cpp @@ -35,9 +35,8 @@ class ProcessElfBinaryTests : public ::testing::Test { device = std::make_unique(MockDevice::createWithNewExecutionEnvironment(nullptr, rootDeviceIndex)); program = std::make_unique(nullptr, false, toClDeviceVector(*device)); } - - std::unique_ptr program; std::unique_ptr device; + std::unique_ptr program; const uint32_t rootDeviceIndex = 1; }; @@ -121,8 +120,8 @@ class ProcessElfBinaryTestsWithBinaryType : public ::testing::TestWithParam(MockDevice::createWithNewExecutionEnvironment(nullptr, rootDeviceIndex)); program = std::make_unique(nullptr, false, toClDeviceVector(*device)); } - std::unique_ptr program; std::unique_ptr device; + std::unique_ptr program; const uint32_t rootDeviceIndex = 1; }; diff --git a/opencl/test/unit_test/program/program_nonuniform.cpp b/opencl/test/unit_test/program/program_nonuniform.cpp index 1b835f85a9..b96ca1941f 100644 --- a/opencl/test/unit_test/program/program_nonuniform.cpp +++ b/opencl/test/unit_test/program/program_nonuniform.cpp @@ -26,6 +26,9 @@ using namespace NEO; class MyMockProgram : public MockProgram { public: MyMockProgram() : MockProgram(toClDeviceVector(*(new MockClDevice(new MockDevice())))), device(this->clDevices[0]) {} + ~MyMockProgram() override { + clDevices.clear(); + } private: std::unique_ptr device; diff --git a/opencl/test/unit_test/program/program_tests.cpp b/opencl/test/unit_test/program/program_tests.cpp index 89fac0f81c..6b51680d3e 100644 --- a/opencl/test/unit_test/program/program_tests.cpp +++ b/opencl/test/unit_test/program/program_tests.cpp @@ -2800,8 +2800,8 @@ struct setProgramSpecializationConstantTests : public ::testing::Test { } SpecializationConstantCompilerInterfaceMock *mockCompiler = nullptr; - std::unique_ptr mockProgram; MockClDevice device; + std::unique_ptr mockProgram; int specValue = 1; }; diff --git a/opencl/test/unit_test/program/program_with_zebin.cpp b/opencl/test/unit_test/program/program_with_zebin.cpp index 7d08c7a9f4..d98ffbe4e1 100644 --- a/opencl/test/unit_test/program/program_with_zebin.cpp +++ b/opencl/test/unit_test/program/program_with_zebin.cpp @@ -24,6 +24,7 @@ void ProgramWithZebinFixture::TearDown() { program->setGlobalSurface(nullptr); program->setConstantSurface(nullptr); program->getKernelInfoArray(rootDeviceIndex).clear(); + program.reset(); ProgramTests::TearDown(); } diff --git a/opencl/test/unit_test/sampler/sampler_set_arg_tests.cpp b/opencl/test/unit_test/sampler/sampler_set_arg_tests.cpp index 70f04ba5e7..9ab8770106 100644 --- a/opencl/test/unit_test/sampler/sampler_set_arg_tests.cpp +++ b/opencl/test/unit_test/sampler/sampler_set_arg_tests.cpp @@ -65,7 +65,7 @@ class SamplerSetArgFixture : public ClDeviceFixture { void tearDown() { delete pMultiDeviceKernel; - + program.reset(); delete sampler; delete context; ClDeviceFixture::tearDown();