Add integration tests for RHI module: - Add tests/RHI/integration/ directory with CMakeLists.txt - Add RHIIntegrationFixture for shared test utilities - Add minimal integration test (window creation, basic rendering) - Add compare_ppm.py for image comparison - Add run_integration_test.py test runner script These integration tests verify the complete rendering pipeline by comparing rendered output against ground truth PPM files.
58 lines
1.8 KiB
CMake
58 lines
1.8 KiB
CMake
cmake_minimum_required(VERSION 3.15)
|
|
|
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
|
|
|
|
project(rhi_integration_minimal)
|
|
|
|
set(ENGINE_ROOT_DIR ${CMAKE_SOURCE_DIR}/engine)
|
|
set(PACKAGE_DIR ${CMAKE_SOURCE_DIR}/tests/opengl/package)
|
|
|
|
get_filename_component(PROJECT_ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../../.. ABSOLUTE)
|
|
|
|
add_executable(rhi_integration_minimal
|
|
main.cpp
|
|
${CMAKE_CURRENT_SOURCE_DIR}/../fixtures/RHIIntegrationFixture.cpp
|
|
${PACKAGE_DIR}/src/glad.c
|
|
)
|
|
|
|
target_include_directories(rhi_integration_minimal PRIVATE
|
|
${CMAKE_CURRENT_SOURCE_DIR}
|
|
${CMAKE_CURRENT_SOURCE_DIR}/../fixtures
|
|
${ENGINE_ROOT_DIR}/include
|
|
${PACKAGE_DIR}/include
|
|
${PROJECT_ROOT_DIR}/engine/src
|
|
)
|
|
|
|
target_link_libraries(rhi_integration_minimal PRIVATE
|
|
d3d12
|
|
dxgi
|
|
d3dcompiler
|
|
winmm
|
|
opengl32
|
|
XCEngine
|
|
GTest::gtest
|
|
)
|
|
|
|
target_compile_definitions(rhi_integration_minimal PRIVATE
|
|
UNICODE
|
|
_UNICODE
|
|
XCENGINE_SUPPORT_OPENGL
|
|
)
|
|
|
|
add_custom_command(TARGET rhi_integration_minimal POST_BUILD
|
|
COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
|
${CMAKE_SOURCE_DIR}/tests/RHI/integration/compare_ppm.py
|
|
$<TARGET_FILE_DIR:rhi_integration_minimal>/
|
|
COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
|
${CMAKE_SOURCE_DIR}/tests/RHI/D3D12/integration/minimal/GT.ppm
|
|
$<TARGET_FILE_DIR:rhi_integration_minimal>/GT_D3D12.ppm
|
|
COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
|
${CMAKE_SOURCE_DIR}/tests/RHI/OpenGL/integration/minimal/GT.ppm
|
|
$<TARGET_FILE_DIR:rhi_integration_minimal>/GT_OpenGL.ppm
|
|
COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
|
${ENGINE_ROOT_DIR}/third_party/renderdoc/renderdoc.dll
|
|
$<TARGET_FILE_DIR:rhi_integration_minimal>/
|
|
)
|
|
|
|
include(GoogleTest)
|
|
gtest_discover_tests(rhi_integration_minimal) |