From b5300b253d361591532ab61b48bb908e85aee4fd Mon Sep 17 00:00:00 2001 From: "Dunajski, Bartosz" Date: Fri, 28 Apr 2023 17:21:06 +0000 Subject: [PATCH] refactor: UniquePtr unit tests helper for L0 destroyable objects Signed-off-by: Dunajski, Bartosz --- .../sources/cmdlist/test_cmdlist_1.cpp | 7 ++-- .../test_cmdlist_append_launch_kernel_3.cpp | 22 ++---------- .../unit_tests/sources/helper/CMakeLists.txt | 1 + .../sources/helper/ze_object_utils.h | 34 +++++++++++++++++++ 4 files changed, 41 insertions(+), 23 deletions(-) create mode 100644 level_zero/core/test/unit_tests/sources/helper/ze_object_utils.h diff --git a/level_zero/core/test/unit_tests/sources/cmdlist/test_cmdlist_1.cpp b/level_zero/core/test/unit_tests/sources/cmdlist/test_cmdlist_1.cpp index b275460997..3d8d36414a 100644 --- a/level_zero/core/test/unit_tests/sources/cmdlist/test_cmdlist_1.cpp +++ b/level_zero/core/test/unit_tests/sources/cmdlist/test_cmdlist_1.cpp @@ -27,6 +27,7 @@ #include "level_zero/core/test/unit_tests/mocks/mock_event.h" #include "level_zero/core/test/unit_tests/mocks/mock_image.h" #include "level_zero/core/test/unit_tests/mocks/mock_kernel.h" +#include "level_zero/core/test/unit_tests/sources/helper/ze_object_utils.h" namespace L0 { namespace ult { @@ -1233,9 +1234,9 @@ HWTEST2_F(CommandListCreate, givenInOrderExecutionWhenDispatchingRelaxedOrdering ze_command_queue_desc_t desc = {}; desc.mode = ZE_COMMAND_QUEUE_MODE_ASYNCHRONOUS; ze_result_t returnValue; - auto commandList = CommandList::createImmediate(productFamily, device, &desc, false, NEO::EngineGroupType::RenderCompute, returnValue); + auto commandList = zeUniquePtr(CommandList::createImmediate(productFamily, device, &desc, false, NEO::EngineGroupType::RenderCompute, returnValue)); ASSERT_NE(nullptr, commandList); - auto whiteBoxCmdList = static_cast(commandList); + auto whiteBoxCmdList = static_cast(commandList.get()); whiteBoxCmdList->enableInOrderExecution(); ze_event_pool_desc_t eventPoolDesc = {}; @@ -1270,8 +1271,6 @@ HWTEST2_F(CommandListCreate, givenInOrderExecutionWhenDispatchingRelaxedOrdering commandList->appendLaunchKernel(kernel.toHandle(), &groupCount, nullptr, 0, nullptr, launchParams, false); EXPECT_TRUE(ultCsr->recordedDispatchFlags.hasRelaxedOrderingDependencies); EXPECT_TRUE(ultCsr->latestFlushedBatchBuffer.hasRelaxedOrderingDependencies); - - commandList->destroy(); } TEST_F(CommandListCreate, GivenGpuHangWhenCreatingImmCmdListWithSyncModeAndAppendBarrierThenAppendBarrierReturnsDeviceLost) { diff --git a/level_zero/core/test/unit_tests/sources/cmdlist/test_cmdlist_append_launch_kernel_3.cpp b/level_zero/core/test/unit_tests/sources/cmdlist/test_cmdlist_append_launch_kernel_3.cpp index 715bd4db85..927a2f4452 100644 --- a/level_zero/core/test/unit_tests/sources/cmdlist/test_cmdlist_append_launch_kernel_3.cpp +++ b/level_zero/core/test/unit_tests/sources/cmdlist/test_cmdlist_append_launch_kernel_3.cpp @@ -29,6 +29,7 @@ #include "level_zero/core/test/unit_tests/mocks/mock_cmdqueue.h" #include "level_zero/core/test/unit_tests/mocks/mock_kernel.h" #include "level_zero/core/test/unit_tests/mocks/mock_module.h" +#include "level_zero/core/test/unit_tests/sources/helper/ze_object_utils.h" namespace L0 { namespace ult { @@ -665,23 +666,6 @@ struct InOrderCmdListTests : public CommandListAppendLaunchKernel { using EventImp::latestUsedInOrderCmdList; }; - template - struct DestroyObject { - void operator()(T *t) { - if (t) { - t->destroy(); - } - } - }; - - template - using DestructableUniquePtr = std::unique_ptr>; - - template - DestructableUniquePtr createDestructableUniqePtr(T *object) { - return DestructableUniquePtr{object}; - } - void SetUp() override { NEO::DebugManager.flags.ForceInOrderImmediateCmdListExecution.set(1); @@ -707,8 +691,8 @@ struct InOrderCmdListTests : public CommandListAppendLaunchKernel { } template - DestructableUniquePtr>> createImmCmdList() { - auto cmdList = createDestructableUniqePtr(new WhiteBox>()); + DestroyableZeUniquePtr>> createImmCmdList() { + auto cmdList = makeZeUniquePtr>>(); auto csr = device->getNEODevice()->getDefaultEngine().commandStreamReceiver; diff --git a/level_zero/core/test/unit_tests/sources/helper/CMakeLists.txt b/level_zero/core/test/unit_tests/sources/helper/CMakeLists.txt index f82d16cb52..909e532a3b 100644 --- a/level_zero/core/test/unit_tests/sources/helper/CMakeLists.txt +++ b/level_zero/core/test/unit_tests/sources/helper/CMakeLists.txt @@ -11,5 +11,6 @@ target_sources(${TARGET_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/heap_assigner_l0_tests.cpp ${CMAKE_CURRENT_SOURCE_DIR}/l0_gfx_core_helper_tests.cpp ${CMAKE_CURRENT_SOURCE_DIR}/properties_parser_tests.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/ze_object_utils.h ) add_subdirectories() diff --git a/level_zero/core/test/unit_tests/sources/helper/ze_object_utils.h b/level_zero/core/test/unit_tests/sources/helper/ze_object_utils.h new file mode 100644 index 0000000000..3325a78218 --- /dev/null +++ b/level_zero/core/test/unit_tests/sources/helper/ze_object_utils.h @@ -0,0 +1,34 @@ +/* + * Copyright (C) 2023 Intel Corporation + * + * SPDX-License-Identifier: MIT + * + */ + +#pragma once +#include + +namespace NEO { + +template +struct DestroyObject { + void operator()(T *obj) { + if (obj) { + obj->destroy(); + } + } +}; + +template +using DestroyableZeUniquePtr = std::unique_ptr>; + +template +static DestroyableZeUniquePtr zeUniquePtr(T *object) { + return DestroyableZeUniquePtr{object}; +} + +template +inline DestroyableZeUniquePtr<_Ty> makeZeUniquePtr(_Types &&...args) { + return (DestroyableZeUniquePtr<_Ty>(new _Ty(std::forward<_Types>(args)...))); +} +} // namespace NEO