From fae520854e1b7518cd6f4f3882954f46d91119b4 Mon Sep 17 00:00:00 2001 From: ssdfasd <2156608475@qq.com> Date: Fri, 20 Mar 2026 02:58:33 +0800 Subject: [PATCH] refactor: reorganize unit tests into separate folder - Move test_*.cpp and fixtures/ to tests/RHI/D3D12/unit/ - Create unit/CMakeLists.txt with proper test configuration - Simplify parent CMakeLists.txt to use add_subdirectory - Integration tests remain in integration/ folder --- tests/RHI/D3D12/CMakeLists.txt | 51 +------------------ tests/RHI/D3D12/unit/CMakeLists.txt | 51 +++++++++++++++++++ .../{ => unit}/fixtures/D3D12TestFixture.cpp | 0 .../{ => unit}/fixtures/D3D12TestFixture.h | 0 tests/RHI/D3D12/{ => unit}/test_buffer.cpp | 0 .../{ => unit}/test_command_allocator.cpp | 0 .../D3D12/{ => unit}/test_command_list.cpp | 0 .../D3D12/{ => unit}/test_command_queue.cpp | 0 .../D3D12/{ => unit}/test_descriptor_heap.cpp | 0 tests/RHI/D3D12/{ => unit}/test_device.cpp | 0 tests/RHI/D3D12/{ => unit}/test_fence.cpp | 0 .../D3D12/{ => unit}/test_pipeline_state.cpp | 0 .../D3D12/{ => unit}/test_root_signature.cpp | 0 tests/RHI/D3D12/{ => unit}/test_shader.cpp | 0 tests/RHI/D3D12/{ => unit}/test_texture.cpp | 0 tests/RHI/D3D12/{ => unit}/test_views.cpp | 0 16 files changed, 52 insertions(+), 50 deletions(-) create mode 100644 tests/RHI/D3D12/unit/CMakeLists.txt rename tests/RHI/D3D12/{ => unit}/fixtures/D3D12TestFixture.cpp (100%) rename tests/RHI/D3D12/{ => unit}/fixtures/D3D12TestFixture.h (100%) rename tests/RHI/D3D12/{ => unit}/test_buffer.cpp (100%) rename tests/RHI/D3D12/{ => unit}/test_command_allocator.cpp (100%) rename tests/RHI/D3D12/{ => unit}/test_command_list.cpp (100%) rename tests/RHI/D3D12/{ => unit}/test_command_queue.cpp (100%) rename tests/RHI/D3D12/{ => unit}/test_descriptor_heap.cpp (100%) rename tests/RHI/D3D12/{ => unit}/test_device.cpp (100%) rename tests/RHI/D3D12/{ => unit}/test_fence.cpp (100%) rename tests/RHI/D3D12/{ => unit}/test_pipeline_state.cpp (100%) rename tests/RHI/D3D12/{ => unit}/test_root_signature.cpp (100%) rename tests/RHI/D3D12/{ => unit}/test_shader.cpp (100%) rename tests/RHI/D3D12/{ => unit}/test_texture.cpp (100%) rename tests/RHI/D3D12/{ => unit}/test_views.cpp (100%) diff --git a/tests/RHI/D3D12/CMakeLists.txt b/tests/RHI/D3D12/CMakeLists.txt index 6f43b833..ac615394 100644 --- a/tests/RHI/D3D12/CMakeLists.txt +++ b/tests/RHI/D3D12/CMakeLists.txt @@ -5,56 +5,7 @@ project(D3D12EngineTests) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) -# 项目根目录 = tests/D3D12_engine/test/../../.. = XCEngine/ -get_filename_component(PROJECT_ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../.. ABSOLUTE) - -find_package(GTest REQUIRED) - -set(TEST_SOURCES - fixtures/D3D12TestFixture.cpp - test_device.cpp - test_fence.cpp - test_command_queue.cpp - test_command_allocator.cpp - test_command_list.cpp - test_buffer.cpp - test_texture.cpp - test_descriptor_heap.cpp - test_shader.cpp - test_root_signature.cpp - test_pipeline_state.cpp - test_views.cpp -) - -add_executable(d3d12_engine_tests ${TEST_SOURCES}) - -target_link_libraries(d3d12_engine_tests PRIVATE - d3d12 - dxgi - d3dcompiler - XCEngine - GTest::gtest - GTest::gtest_main -) - -target_include_directories(d3d12_engine_tests PRIVATE - ${CMAKE_CURRENT_SOURCE_DIR}/fixtures - ${PROJECT_ROOT_DIR}/engine/include - ${PROJECT_ROOT_DIR}/engine/src -) - -target_compile_definitions(d3d12_engine_tests PRIVATE - TEST_RESOURCES_DIR="${PROJECT_ROOT_DIR}/tests/RHI/D3D12/integration/Res" -) - -add_custom_command(TARGET d3d12_engine_tests POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_directory - ${PROJECT_ROOT_DIR}/tests/RHI/D3D12/integration/Res - $/Res -) +add_subdirectory(unit) # Integration tests add_subdirectory(integration) - -enable_testing() -add_test(NAME D3D12EngineTests COMMAND d3d12_engine_tests) diff --git a/tests/RHI/D3D12/unit/CMakeLists.txt b/tests/RHI/D3D12/unit/CMakeLists.txt new file mode 100644 index 00000000..a8d8753e --- /dev/null +++ b/tests/RHI/D3D12/unit/CMakeLists.txt @@ -0,0 +1,51 @@ +cmake_minimum_required(VERSION 3.15) + +get_filename_component(PROJECT_ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../../.. ABSOLUTE) + +find_package(GTest REQUIRED) + +set(TEST_SOURCES + fixtures/D3D12TestFixture.cpp + test_device.cpp + test_fence.cpp + test_command_queue.cpp + test_command_allocator.cpp + test_command_list.cpp + test_buffer.cpp + test_texture.cpp + test_descriptor_heap.cpp + test_shader.cpp + test_root_signature.cpp + test_pipeline_state.cpp + test_views.cpp +) + +add_executable(d3d12_engine_tests ${TEST_SOURCES}) + +target_link_libraries(d3d12_engine_tests PRIVATE + d3d12 + dxgi + d3dcompiler + XCEngine + GTest::gtest + GTest::gtest_main +) + +target_include_directories(d3d12_engine_tests PRIVATE + ${CMAKE_CURRENT_SOURCE_DIR}/fixtures + ${PROJECT_ROOT_DIR}/engine/include + ${PROJECT_ROOT_DIR}/engine/src +) + +target_compile_definitions(d3d12_engine_tests PRIVATE + TEST_RESOURCES_DIR="${PROJECT_ROOT_DIR}/tests/RHI/D3D12/integration/Res" +) + +add_custom_command(TARGET d3d12_engine_tests POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_directory + ${PROJECT_ROOT_DIR}/tests/RHI/D3D12/integration/Res + $/Res +) + +enable_testing() +add_test(NAME D3D12EngineTests COMMAND d3d12_engine_tests) diff --git a/tests/RHI/D3D12/fixtures/D3D12TestFixture.cpp b/tests/RHI/D3D12/unit/fixtures/D3D12TestFixture.cpp similarity index 100% rename from tests/RHI/D3D12/fixtures/D3D12TestFixture.cpp rename to tests/RHI/D3D12/unit/fixtures/D3D12TestFixture.cpp diff --git a/tests/RHI/D3D12/fixtures/D3D12TestFixture.h b/tests/RHI/D3D12/unit/fixtures/D3D12TestFixture.h similarity index 100% rename from tests/RHI/D3D12/fixtures/D3D12TestFixture.h rename to tests/RHI/D3D12/unit/fixtures/D3D12TestFixture.h diff --git a/tests/RHI/D3D12/test_buffer.cpp b/tests/RHI/D3D12/unit/test_buffer.cpp similarity index 100% rename from tests/RHI/D3D12/test_buffer.cpp rename to tests/RHI/D3D12/unit/test_buffer.cpp diff --git a/tests/RHI/D3D12/test_command_allocator.cpp b/tests/RHI/D3D12/unit/test_command_allocator.cpp similarity index 100% rename from tests/RHI/D3D12/test_command_allocator.cpp rename to tests/RHI/D3D12/unit/test_command_allocator.cpp diff --git a/tests/RHI/D3D12/test_command_list.cpp b/tests/RHI/D3D12/unit/test_command_list.cpp similarity index 100% rename from tests/RHI/D3D12/test_command_list.cpp rename to tests/RHI/D3D12/unit/test_command_list.cpp diff --git a/tests/RHI/D3D12/test_command_queue.cpp b/tests/RHI/D3D12/unit/test_command_queue.cpp similarity index 100% rename from tests/RHI/D3D12/test_command_queue.cpp rename to tests/RHI/D3D12/unit/test_command_queue.cpp diff --git a/tests/RHI/D3D12/test_descriptor_heap.cpp b/tests/RHI/D3D12/unit/test_descriptor_heap.cpp similarity index 100% rename from tests/RHI/D3D12/test_descriptor_heap.cpp rename to tests/RHI/D3D12/unit/test_descriptor_heap.cpp diff --git a/tests/RHI/D3D12/test_device.cpp b/tests/RHI/D3D12/unit/test_device.cpp similarity index 100% rename from tests/RHI/D3D12/test_device.cpp rename to tests/RHI/D3D12/unit/test_device.cpp diff --git a/tests/RHI/D3D12/test_fence.cpp b/tests/RHI/D3D12/unit/test_fence.cpp similarity index 100% rename from tests/RHI/D3D12/test_fence.cpp rename to tests/RHI/D3D12/unit/test_fence.cpp diff --git a/tests/RHI/D3D12/test_pipeline_state.cpp b/tests/RHI/D3D12/unit/test_pipeline_state.cpp similarity index 100% rename from tests/RHI/D3D12/test_pipeline_state.cpp rename to tests/RHI/D3D12/unit/test_pipeline_state.cpp diff --git a/tests/RHI/D3D12/test_root_signature.cpp b/tests/RHI/D3D12/unit/test_root_signature.cpp similarity index 100% rename from tests/RHI/D3D12/test_root_signature.cpp rename to tests/RHI/D3D12/unit/test_root_signature.cpp diff --git a/tests/RHI/D3D12/test_shader.cpp b/tests/RHI/D3D12/unit/test_shader.cpp similarity index 100% rename from tests/RHI/D3D12/test_shader.cpp rename to tests/RHI/D3D12/unit/test_shader.cpp diff --git a/tests/RHI/D3D12/test_texture.cpp b/tests/RHI/D3D12/unit/test_texture.cpp similarity index 100% rename from tests/RHI/D3D12/test_texture.cpp rename to tests/RHI/D3D12/unit/test_texture.cpp diff --git a/tests/RHI/D3D12/test_views.cpp b/tests/RHI/D3D12/unit/test_views.cpp similarity index 100% rename from tests/RHI/D3D12/test_views.cpp rename to tests/RHI/D3D12/unit/test_views.cpp