From cbc868c4eda2f7bd63c54c53a5187f8539b04479 Mon Sep 17 00:00:00 2001 From: Artur Harasimiuk Date: Thu, 25 Apr 2024 13:47:06 +0000 Subject: [PATCH] refactor: add mock_aubstream Signed-off-by: Artur Harasimiuk --- level_zero/CMakeLists.txt | 3 ++- level_zero/core/test/aub_tests/CMakeLists.txt | 1 + .../core/test/unit_tests/CMakeLists.txt | 1 + .../sysman/test/unit_tests/CMakeLists.txt | 1 + .../tools/test/unit_tests/CMakeLists.txt | 1 + opencl/source/CMakeLists.txt | 4 +-- opencl/test/unit_test/CMakeLists.txt | 1 + .../test/unit_test/aub_tests/CMakeLists.txt | 2 ++ opencl/test/unit_test/linux/CMakeLists.txt | 1 + opencl/test/unit_test/mt_tests/CMakeLists.txt | 3 ++- opencl/test/unit_test/windows/CMakeLists.txt | 1 + shared/source/CMakeLists.txt | 4 --- shared/source/aub_mem_dump/CMakeLists.txt | 15 +---------- shared/source/aub_stream_stubs/CMakeLists.txt | 15 +++++++++++ .../aub_stream_interface_stub.cpp | 4 +-- .../aub_stream_stubs/aub_stream_stubs.cpp | 22 +++++++++++++++ .../test/common/mock_aubstream/CMakeLists.txt | 17 ++++++++++++ .../common/mock_aubstream/mock_aubstream.cpp} | 27 +++++++++++-------- shared/test/common/mock_gmm/CMakeLists.txt | 4 +-- shared/test/unit_test/CMakeLists.txt | 1 + shared/test/unit_test/aub/CMakeLists.txt | 6 ++--- ...aub_center_using_aubstream_stubs_tests.cpp | 16 ++++++----- 22 files changed, 102 insertions(+), 48 deletions(-) create mode 100644 shared/source/aub_stream_stubs/CMakeLists.txt rename shared/source/{aub => aub_stream_stubs}/aub_stream_interface_stub.cpp (70%) create mode 100644 shared/source/aub_stream_stubs/aub_stream_stubs.cpp create mode 100644 shared/test/common/mock_aubstream/CMakeLists.txt rename shared/{source/aub_mem_dump/aub_stream_stubs.cpp => test/common/mock_aubstream/mock_aubstream.cpp} (52%) diff --git a/level_zero/CMakeLists.txt b/level_zero/CMakeLists.txt index d1f68c62ad..a74f1139a5 100644 --- a/level_zero/CMakeLists.txt +++ b/level_zero/CMakeLists.txt @@ -235,10 +235,11 @@ if(BUILD_WITH_L0) PRIVATE ${NEO_SHARED_DIRECTORY}/aub/aub_stream_interface.cpp ) + target_link_libraries(${TARGET_NAME_L0} PRIVATE ${AUB_STREAM_PROJECT_NAME}) else() target_sources(${TARGET_NAME_L0} PRIVATE - ${NEO_SHARED_DIRECTORY}/aub/aub_stream_interface_stub.cpp + $ ) endif() diff --git a/level_zero/core/test/aub_tests/CMakeLists.txt b/level_zero/core/test/aub_tests/CMakeLists.txt index 4c4e0e2027..532614df67 100644 --- a/level_zero/core/test/aub_tests/CMakeLists.txt +++ b/level_zero/core/test/aub_tests/CMakeLists.txt @@ -72,6 +72,7 @@ if(NOT NEO_SKIP_AUB_TESTS AND DEFINED AUB_STREAM_PROJECT_NAME) target_link_libraries(${TARGET_NAME} ${HW_LIBS_ULT}) target_link_libraries(${TARGET_NAME} gmock-gtest) target_link_libraries(${TARGET_NAME} ${NEO_EXTRA_LIBS}) + target_link_libraries(${TARGET_NAME} ${AUB_STREAM_PROJECT_NAME}) if(UNIX) target_link_libraries(${TARGET_NAME} rt) diff --git a/level_zero/core/test/unit_tests/CMakeLists.txt b/level_zero/core/test/unit_tests/CMakeLists.txt index 1d0d5b7773..70b58b3fcf 100644 --- a/level_zero/core/test/unit_tests/CMakeLists.txt +++ b/level_zero/core/test/unit_tests/CMakeLists.txt @@ -72,6 +72,7 @@ target_link_libraries(${TARGET_NAME} ) target_sources(${TARGET_NAME} PRIVATE + $ $ $ $ diff --git a/level_zero/sysman/test/unit_tests/CMakeLists.txt b/level_zero/sysman/test/unit_tests/CMakeLists.txt index 7ab34e2d6c..97e581da9a 100644 --- a/level_zero/sysman/test/unit_tests/CMakeLists.txt +++ b/level_zero/sysman/test/unit_tests/CMakeLists.txt @@ -71,6 +71,7 @@ target_link_libraries(${TARGET_NAME} ) target_sources(${TARGET_NAME} PRIVATE + $ $ $ $ diff --git a/level_zero/tools/test/unit_tests/CMakeLists.txt b/level_zero/tools/test/unit_tests/CMakeLists.txt index 67114252b6..506b662060 100644 --- a/level_zero/tools/test/unit_tests/CMakeLists.txt +++ b/level_zero/tools/test/unit_tests/CMakeLists.txt @@ -71,6 +71,7 @@ target_link_libraries(${TARGET_NAME} ) target_sources(${TARGET_NAME} PRIVATE + $ $ $ $ diff --git a/opencl/source/CMakeLists.txt b/opencl/source/CMakeLists.txt index b5a1141fb3..9406de6767 100644 --- a/opencl/source/CMakeLists.txt +++ b/opencl/source/CMakeLists.txt @@ -121,12 +121,12 @@ if(${GENERATE_EXECUTABLE}) $ ${NEO_SOURCE_DIR}/shared/source/aub/aub_stream_interface.cpp ) + target_link_libraries(${NEO_DYNAMIC_LIB_NAME} PRIVATE ${AUB_STREAM_PROJECT_NAME}) else() target_sources(${NEO_DYNAMIC_LIB_NAME} PRIVATE - ${NEO_SOURCE_DIR}/shared/source/aub/aub_stream_interface_stub.cpp + $ ) - endif() if(UNIX) diff --git a/opencl/test/unit_test/CMakeLists.txt b/opencl/test/unit_test/CMakeLists.txt index b7d55f1195..b9c2a7ac00 100644 --- a/opencl/test/unit_test/CMakeLists.txt +++ b/opencl/test/unit_test/CMakeLists.txt @@ -55,6 +55,7 @@ set(NEO_IGDRCL_TESTS__TARGET_OBJECTS $ $ $ + $ $ $ $ diff --git a/opencl/test/unit_test/aub_tests/CMakeLists.txt b/opencl/test/unit_test/aub_tests/CMakeLists.txt index aaf50246df..2ff67f559c 100644 --- a/opencl/test/unit_test/aub_tests/CMakeLists.txt +++ b/opencl/test/unit_test/aub_tests/CMakeLists.txt @@ -53,6 +53,8 @@ if(NOT NEO_SKIP_AUB_TESTS AND DEFINED AUB_STREAM_PROJECT_NAME) target_link_libraries(igdrcl_aub_tests ${NEO_MOCKABLE_LIB_NAME} ${NEO_SHARED_MOCKABLE_LIB_NAME}) target_link_libraries(igdrcl_aub_tests igdrcl_mocks) target_link_libraries(igdrcl_aub_tests gmock-gtest ${NEO_EXTRA_LIBS}) + target_link_libraries(igdrcl_aub_tests ${AUB_STREAM_PROJECT_NAME}) + if(UNIX) target_link_libraries(igdrcl_aub_tests ${GMM_LINK_NAME}) else() diff --git a/opencl/test/unit_test/linux/CMakeLists.txt b/opencl/test/unit_test/linux/CMakeLists.txt index 30c4067c61..0074f3c8df 100644 --- a/opencl/test/unit_test/linux/CMakeLists.txt +++ b/opencl/test/unit_test/linux/CMakeLists.txt @@ -14,6 +14,7 @@ add_executable(igdrcl_${target_name} $ $ $ + $ $ ${CMAKE_CURRENT_SOURCE_DIR}/drm_wrap.h ${CMAKE_CURRENT_SOURCE_DIR}/main_linux_dll.cpp diff --git a/opencl/test/unit_test/mt_tests/CMakeLists.txt b/opencl/test/unit_test/mt_tests/CMakeLists.txt index 47620047e3..e45a8396be 100644 --- a/opencl/test/unit_test/mt_tests/CMakeLists.txt +++ b/opencl/test/unit_test/mt_tests/CMakeLists.txt @@ -1,5 +1,5 @@ # -# Copyright (C) 2018-2023 Intel Corporation +# Copyright (C) 2018-2024 Intel Corporation # # SPDX-License-Identifier: MIT # @@ -19,6 +19,7 @@ add_executable(igdrcl_mt_tests EXCLUDE_FROM_ALL $ $ $ + $ $ $ ) diff --git a/opencl/test/unit_test/windows/CMakeLists.txt b/opencl/test/unit_test/windows/CMakeLists.txt index 4ee34f2b94..c02c55ab72 100644 --- a/opencl/test/unit_test/windows/CMakeLists.txt +++ b/opencl/test/unit_test/windows/CMakeLists.txt @@ -13,6 +13,7 @@ if(WIN32) $ $ $ + $ $ ) diff --git a/shared/source/CMakeLists.txt b/shared/source/CMakeLists.txt index 0b06ed44c2..4e4f90ffad 100644 --- a/shared/source/CMakeLists.txt +++ b/shared/source/CMakeLists.txt @@ -73,10 +73,6 @@ function(generate_shared_lib LIB_NAME MOCKABLE) endif() endif() - if(DEFINED AUB_STREAM_PROJECT_NAME) - target_link_libraries(${LIB_NAME} ${AUB_STREAM_PROJECT_NAME}) - endif() - endfunction() set(NEO_CORE_COMPILE_DEFS "") diff --git a/shared/source/aub_mem_dump/CMakeLists.txt b/shared/source/aub_mem_dump/CMakeLists.txt index 4c9a97ea15..ca3e97ff49 100644 --- a/shared/source/aub_mem_dump/CMakeLists.txt +++ b/shared/source/aub_mem_dump/CMakeLists.txt @@ -1,5 +1,5 @@ # -# Copyright (C) 2020-2023 Intel Corporation +# Copyright (C) 2020-2024 Intel Corporation # # SPDX-License-Identifier: MIT # @@ -17,19 +17,6 @@ set(NEO_CORE_AUB_MEM_DUMP ${CMAKE_CURRENT_SOURCE_DIR}/page_table_entry_bits.h ) -if(NOT DEFINED AUB_STREAM_PROJECT_NAME) - list(APPEND NEO_CORE_AUB_MEM_DUMP - ${CMAKE_CURRENT_SOURCE_DIR}/aub_stream_stubs.cpp - ) -else() - add_library(aub_stream_stubs STATIC - ${CMAKE_CURRENT_SOURCE_DIR}/aub_stream_stubs.cpp - ) - target_include_directories(aub_stream_stubs PRIVATE - ${AUB_STREAM_HEADERS_DIR} - ) -endif() - if(SUPPORT_XEHP_AND_LATER) list(APPEND NEO_CORE_AUB_MEM_DUMP ${CMAKE_CURRENT_SOURCE_DIR}/aub_mem_dump_xehp_and_later.inl diff --git a/shared/source/aub_stream_stubs/CMakeLists.txt b/shared/source/aub_stream_stubs/CMakeLists.txt new file mode 100644 index 0000000000..46d02cc556 --- /dev/null +++ b/shared/source/aub_stream_stubs/CMakeLists.txt @@ -0,0 +1,15 @@ +# +# Copyright (C) 2024 Intel Corporation +# +# SPDX-License-Identifier: MIT +# + +if(NOT DEFINED AUB_STREAM_PROJECT_NAME) + add_library(aub_stream_stubs OBJECT EXCLUDE_FROM_ALL + ${CMAKE_CURRENT_SOURCE_DIR}/aub_stream_interface_stub.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/aub_stream_stubs.cpp + ) + target_include_directories(aub_stream_stubs PRIVATE + ${AUB_STREAM_HEADERS_DIR} + ) +endif() diff --git a/shared/source/aub/aub_stream_interface_stub.cpp b/shared/source/aub_stream_stubs/aub_stream_interface_stub.cpp similarity index 70% rename from shared/source/aub/aub_stream_interface_stub.cpp rename to shared/source/aub_stream_stubs/aub_stream_interface_stub.cpp index 27c1e52d45..ab956138ff 100644 --- a/shared/source/aub/aub_stream_interface_stub.cpp +++ b/shared/source/aub_stream_stubs/aub_stream_interface_stub.cpp @@ -1,11 +1,11 @@ /* - * Copyright (C) 2022 Intel Corporation + * Copyright (C) 2022-2024 Intel Corporation * * SPDX-License-Identifier: MIT * */ -#include "shared/source/aub/aub_center.h" +#include "aubstream/aub_manager.h" namespace NEO { aub_stream::AubManager *createAubManager(const aub_stream::AubManagerOptions &options) { diff --git a/shared/source/aub_stream_stubs/aub_stream_stubs.cpp b/shared/source/aub_stream_stubs/aub_stream_stubs.cpp new file mode 100644 index 0000000000..81ba43b856 --- /dev/null +++ b/shared/source/aub_stream_stubs/aub_stream_stubs.cpp @@ -0,0 +1,22 @@ +/* + * Copyright (C) 2018-2024 Intel Corporation + * + * SPDX-License-Identifier: MIT + * + */ + +#include "aubstream/aubstream.h" + +#include + +namespace aub_stream { + +extern "C" { +void injectMMIOList(MMIOList mmioList){}; +void setTbxServerPort(uint16_t port){}; +void setTbxServerIp(std::string server){}; +void setTbxFrontdoorMode(bool frontdoor){}; +void setAubStreamCaller(uint32_t caller){}; +} + +} // namespace aub_stream diff --git a/shared/test/common/mock_aubstream/CMakeLists.txt b/shared/test/common/mock_aubstream/CMakeLists.txt new file mode 100644 index 0000000000..5dcfcf4d15 --- /dev/null +++ b/shared/test/common/mock_aubstream/CMakeLists.txt @@ -0,0 +1,17 @@ +# +# Copyright (C) 2024 Intel Corporation +# +# SPDX-License-Identifier: MIT +# + +project(mock_aubstream) + +add_library( + mock_aubstream EXCLUDE_FROM_ALL OBJECT + ${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt + ${CMAKE_CURRENT_SOURCE_DIR}/mock_aubstream.cpp +) + +create_project_source_tree(mock_aubstream) +set_target_properties(mock_aubstream PROPERTIES FOLDER "test mocks") +target_include_directories(mock_aubstream PRIVATE ${AUB_STREAM_HEADERS_DIR}) diff --git a/shared/source/aub_mem_dump/aub_stream_stubs.cpp b/shared/test/common/mock_aubstream/mock_aubstream.cpp similarity index 52% rename from shared/source/aub_mem_dump/aub_stream_stubs.cpp rename to shared/test/common/mock_aubstream/mock_aubstream.cpp index cba42b719a..4a850f61f0 100644 --- a/shared/source/aub_mem_dump/aub_stream_stubs.cpp +++ b/shared/test/common/mock_aubstream/mock_aubstream.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018-2023 Intel Corporation + * Copyright (C) 2018-2024 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -7,28 +7,33 @@ #include "aubstream/aubstream.h" -#include - namespace aub_stream_stubs { uint16_t tbxServerPort = 4321; std::string tbxServerIp = "127.0.0.1"; bool tbxFrontdoorMode = false; -uint32_t aubStreamCaller = std::numeric_limits::max(); +aub_stream::MMIOList mmioListInjected; } // namespace aub_stream_stubs namespace aub_stream { -extern "C" { -void injectMMIOList(MMIOList mmioList){}; -void setTbxServerPort(uint16_t port) { aub_stream_stubs::tbxServerPort = port; }; +void injectMMIOList(MMIOList mmioList) { + aub_stream_stubs::mmioListInjected = mmioList; + aub_stream_stubs::mmioListInjected.shrink_to_fit(); +} +void setTbxServerPort(uint16_t port) { + aub_stream_stubs::tbxServerPort = port; +} void setTbxServerIp(std::string server) { // better to avoid reassigning global variables which assume memory allocations since // we could step into false-positive memory leak detection with embedded leak check helper - if (aub_stream_stubs::tbxServerIp != server) + if (aub_stream_stubs::tbxServerIp != server) { aub_stream_stubs::tbxServerIp = server; -}; -void setTbxFrontdoorMode(bool frontdoor) { aub_stream_stubs::tbxFrontdoorMode = frontdoor; }; -void setAubStreamCaller(uint32_t caller) { aub_stream_stubs::aubStreamCaller = caller; }; + } +} +void setTbxFrontdoorMode(bool frontdoor) { + aub_stream_stubs::tbxFrontdoorMode = frontdoor; +} +void setAubStreamCaller(uint32_t caller) { } } // namespace aub_stream diff --git a/shared/test/common/mock_gmm/CMakeLists.txt b/shared/test/common/mock_gmm/CMakeLists.txt index 0ede440dd1..a67a147d72 100644 --- a/shared/test/common/mock_gmm/CMakeLists.txt +++ b/shared/test/common/mock_gmm/CMakeLists.txt @@ -1,5 +1,5 @@ # -# Copyright (C) 2020-2021 Intel Corporation +# Copyright (C) 2020-2024 Intel Corporation # # SPDX-License-Identifier: MIT # @@ -21,5 +21,3 @@ target_include_directories(${target_name} PRIVATE create_project_source_tree(${target_name}) set_target_properties(${target_name} PROPERTIES FOLDER "test mocks") -target_compile_definitions(${target_name} PUBLIC) - diff --git a/shared/test/unit_test/CMakeLists.txt b/shared/test/unit_test/CMakeLists.txt index 0664261038..9479438151 100644 --- a/shared/test/unit_test/CMakeLists.txt +++ b/shared/test/unit_test/CMakeLists.txt @@ -23,6 +23,7 @@ add_executable(neo_shared_tests ${NEO_SHARED_TEST_DIRECTORY}/common/common_main.cpp ${NEO_SHARED_TEST_DIRECTORY}/common/helpers/virtual_file_system_listener.cpp ${NEO_SHARED_TEST_DIRECTORY}/common/tests_configuration.h + $ $ $ $ diff --git a/shared/test/unit_test/aub/CMakeLists.txt b/shared/test/unit_test/aub/CMakeLists.txt index f515dbe644..8a952d6081 100644 --- a/shared/test/unit_test/aub/CMakeLists.txt +++ b/shared/test/unit_test/aub/CMakeLists.txt @@ -1,5 +1,5 @@ # -# Copyright (C) 2018-2022 Intel Corporation +# Copyright (C) 2018-2024 Intel Corporation # # SPDX-License-Identifier: MIT # @@ -10,8 +10,6 @@ target_sources(neo_shared_tests PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/aub_helper_tests.cpp ) -if(NOT DEFINED AUB_STREAM_PROJECT_NAME) - target_sources(neo_shared_tests PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/aub_center_using_aubstream_stubs_tests.cpp) -endif() +target_sources(neo_shared_tests PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/aub_center_using_aubstream_stubs_tests.cpp) add_subdirectories() diff --git a/shared/test/unit_test/aub/aub_center_using_aubstream_stubs_tests.cpp b/shared/test/unit_test/aub/aub_center_using_aubstream_stubs_tests.cpp index 98b4716153..e723fbbf44 100644 --- a/shared/test/unit_test/aub/aub_center_using_aubstream_stubs_tests.cpp +++ b/shared/test/unit_test/aub/aub_center_using_aubstream_stubs_tests.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018-2023 Intel Corporation + * Copyright (C) 2018-2024 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -30,28 +30,31 @@ TEST(AubCenter, GivenUseAubStreamAndTbxServerIpDebugVariableSetWhenAubCenterIsCr debugManager.flags.TbxServer.set("10.10.10.10"); VariableBackup backup(&aub_stream_stubs::tbxServerIp); + ASSERT_STRNE("10.10.10.10", aub_stream_stubs::tbxServerIp.c_str()); + MockExecutionEnvironment executionEnvironment{}; auto &rootDeviceEnvironment = *executionEnvironment.rootDeviceEnvironments[0]; - MockAubCenter aubCenter(rootDeviceEnvironment, false, "", CommandStreamReceiverType::CSR_TBX); + MockAubCenter aubCenter(rootDeviceEnvironment, false, "", CommandStreamReceiverType::tbx); EXPECT_STREQ("10.10.10.10", aub_stream_stubs::tbxServerIp.c_str()); } -TEST(AubCenter, GivenUseAubStreamAndTbxServerPortDebugVariableSetWhenAubCenterIsCreatedThenServerIpIsModified) { +TEST(AubCenter, GivenUseAubStreamAndTbxServerPortDebugVariableSetWhenAubCenterIsCreatedThenServerPortIsModified) { DebugManagerStateRestore restorer; debugManager.flags.UseAubStream.set(true); debugManager.flags.TbxPort.set(1234); VariableBackup backup(&aub_stream_stubs::tbxServerPort); + aub_stream_stubs::tbxServerPort = 4321u; uint16_t port = 1234u; - EXPECT_NE(port, aub_stream_stubs::tbxServerPort); + ASSERT_NE(port, aub_stream_stubs::tbxServerPort); MockExecutionEnvironment executionEnvironment{}; auto &rootDeviceEnvironment = *executionEnvironment.rootDeviceEnvironments[0]; - MockAubCenter aubCenter(rootDeviceEnvironment, false, "", CommandStreamReceiverType::CSR_TBX); + MockAubCenter aubCenter(rootDeviceEnvironment, false, "", CommandStreamReceiverType::tbx); EXPECT_EQ(port, aub_stream_stubs::tbxServerPort); } @@ -62,11 +65,12 @@ TEST(AubCenter, GivenUseAubStreamAndTbxFrontdoorModeDebugVariableSetWhenAubCente VariableBackup backup(&aub_stream_stubs::tbxFrontdoorMode); + aub_stream_stubs::tbxFrontdoorMode = false; EXPECT_FALSE(aub_stream_stubs::tbxFrontdoorMode); MockExecutionEnvironment executionEnvironment{}; auto &rootDeviceEnvironment = *executionEnvironment.rootDeviceEnvironments[0]; - MockAubCenter aubCenter(rootDeviceEnvironment, false, "", CommandStreamReceiverType::CSR_TBX); + MockAubCenter aubCenter(rootDeviceEnvironment, false, "", CommandStreamReceiverType::tbx); EXPECT_TRUE(aub_stream_stubs::tbxFrontdoorMode); }