pgLab/tests/integration/CMakeLists.txt
2026-10-18 12:46:38 +02:00

46 lines
1.5 KiB
CMake

add_executable(IntegrationTests
main.cpp
tst_Smoke.cpp
tst_CatalogLoad.cpp
tst_DatabaseSizes.cpp
)
target_link_libraries(IntegrationTests PRIVATE
pgintegration
pglablib
GTest::gtest
Qt6::Core
)
target_compile_definitions(IntegrationTests PRIVATE
PGTEST_FIXTURE_DIR="${CMAKE_CURRENT_SOURCE_DIR}/fixtures"
)
set_target_properties(IntegrationTests PROPERTIES
CXX_STANDARD 20
CXX_STANDARD_REQUIRED ON
)
option(PGLAB_INTEGRATION_TESTS "Register Docker based PostgreSQL integration tests" OFF)
if (PGLAB_INTEGRATION_TESTS)
set(PGTEST_COMPOSE_FILE ${CMAKE_CURRENT_SOURCE_DIR}/docker-compose.yml)
add_test(NAME db_up
COMMAND docker compose -f ${PGTEST_COMPOSE_FILE} up -d --wait)
add_test(NAME db_down
COMMAND docker compose -f ${PGTEST_COMPOSE_FILE} down -v)
set_tests_properties(db_up PROPERTIES FIXTURES_SETUP pgcluster LABELS integration)
set_tests_properties(db_down PROPERTIES FIXTURES_CLEANUP pgcluster LABELS integration)
foreach (v 14 15 16 17 18)
add_test(NAME integration_pg${v} COMMAND IntegrationTests)
set_tests_properties(integration_pg${v} PROPERTIES
FIXTURES_REQUIRED pgcluster
LABELS integration
ENVIRONMENT "TEST_DATABASE_URL=postgresql://postgres:test@localhost:543${v}/postgres")
endforeach ()
else ()
add_test(NAME IntegrationTests COMMAND IntegrationTests)
set_tests_properties(IntegrationTests PROPERTIES LABELS integration)
endif ()