I have a test fixture for starting a database server:
# pg_setup.cmake add_test(NAME setupPostgres COMMAND /path/to/pg-setup) add_test(NAME teardownPostgres COMMAND /path/to/pg-teardown) set_tests_properties(setupPostgres PROPERTIES FIXTURES_SETUP postgresFixture) set_tests_properties(teardownPostgres PROPERTIES FIXTURES_CLEANUP postgresFixture)
and several other tests that use the fixture, like this:
include(pg_setup) add_test(NAME foo ...) set_tests_properties(foo PROPERTIES FIXTURES_REQUIRED postgresFixture)
These tests are in different directories, sprinkled throughout a large source tree, with multiple
CMakeLists.txt files defining tests that depend on
postgresFixture in this way.
When I run
ctest in one of these directories, things work as expected:
setupPostgresruns before all tests that require it
teardownPostgresruns after all tests that require it
- All tests in between run in parallel when I use
However, when I run
ctest at the top level, I see multiple instances of
setupPostgres running in parallel, which is not what I want. How can I avoid this?