# Try system GTest first, fall back to FetchContent find_package(GTest QUIET) if(NOT GTest_FOUND) include(FetchContent) FetchContent_Declare( googletest GIT_REPOSITORY https://github.com/google/googletest.git GIT_TAG v1.14.0 GIT_SHALLOW TRUE ) set(BUILD_GMOCK OFF CACHE BOOL "" FORCE) set(INSTALL_GTEST OFF CACHE BOOL "" FORCE) FetchContent_MakeAvailable(googletest) endif() # ────────────────────────────────────────────── # Pipeline unit tests # ────────────────────────────────────────────── add_executable(test_pipeline test_pipeline.cpp ) target_link_libraries(test_pipeline PRIVATE converter_core GTest::gtest GTest::gtest_main ) target_include_directories(test_pipeline PRIVATE ${CMAKE_SOURCE_DIR}/src ) target_compile_definitions(test_pipeline PRIVATE TEST_DATA_DIR="${CMAKE_SOURCE_DIR}/import" ) add_test(NAME PipelineTests COMMAND test_pipeline) # ────────────────────────────────────────────── # RawLoader integration tests # ────────────────────────────────────────────── add_executable(test_rawloader test_rawloader.cpp ) target_link_libraries(test_rawloader PRIVATE converter_core GTest::gtest GTest::gtest_main ) target_include_directories(test_rawloader PRIVATE ${CMAKE_SOURCE_DIR}/src ) target_compile_definitions(test_rawloader PRIVATE TEST_DATA_DIR="${CMAKE_SOURCE_DIR}/import" ) add_test(NAME RawLoaderTests COMMAND test_rawloader) # ────────────────────────────────────────────── # OutputWriter tests # ────────────────────────────────────────────── add_executable(test_output test_output.cpp ) target_link_libraries(test_output PRIVATE converter_core GTest::gtest GTest::gtest_main ) target_include_directories(test_output PRIVATE ${CMAKE_SOURCE_DIR}/src ) add_test(NAME OutputWriterTests COMMAND test_output) # ────────────────────────────────────────────── # CliRunner tests # ────────────────────────────────────────────── add_executable(test_cli test_cli.cpp ) target_link_libraries(test_cli PRIVATE converter_core GTest::gtest GTest::gtest_main ) target_include_directories(test_cli PRIVATE ${CMAKE_SOURCE_DIR}/src ) add_test(NAME CliRunnerTests COMMAND test_cli) # ────────────────────────────────────────────── # RawLoader extended tests # ────────────────────────────────────────────── add_executable(test_rawloader_extended test_rawloader_extended.cpp ) target_link_libraries(test_rawloader_extended PRIVATE converter_core GTest::gtest GTest::gtest_main ) target_include_directories(test_rawloader_extended PRIVATE ${CMAKE_SOURCE_DIR}/src ) add_test(NAME RawLoaderExtendedTests COMMAND test_rawloader_extended)