46 lines
1.5 KiB
CMake
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)
|
|
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 ()
|