1FIXTURES_CLEANUP 2---------------- 3 4.. versionadded:: 3.7 5 6Specifies a list of fixtures for which the test is to be treated as a cleanup 7test. These fixture names are distinct from test case names and are not 8required to have any similarity to the names of tests associated with them. 9 10Fixture cleanup tests are ordinary tests with all of the usual test 11functionality. Setting the ``FIXTURES_CLEANUP`` property for a test has two 12primary effects: 13 14- CTest will ensure the test executes after all other tests which list any of 15 the fixtures in its :prop_test:`FIXTURES_REQUIRED` property. 16 17- If CTest is asked to run only a subset of tests (e.g. using regular 18 expressions or the ``--rerun-failed`` option) and the cleanup test is not in 19 the set of tests to run, it will automatically be added if any tests in the 20 set require any fixture listed in ``FIXTURES_CLEANUP``. 21 22A cleanup test can have multiple fixtures listed in its ``FIXTURES_CLEANUP`` 23property. It will execute only once for the whole CTest run, not once for each 24fixture. A fixture can also have more than one cleanup test defined. If there 25are multiple cleanup tests for a fixture, projects can control their order with 26the usual :prop_test:`DEPENDS` test property if necessary. 27 28A cleanup test is allowed to require other fixtures, but not any fixture listed 29in its ``FIXTURES_CLEANUP`` property. For example: 30 31.. code-block:: cmake 32 33 # Ok: Dependent fixture is different to cleanup 34 set_tests_properties(cleanupFoo PROPERTIES 35 FIXTURES_CLEANUP Foo 36 FIXTURES_REQUIRED Bar 37 ) 38 39 # Error: cannot require same fixture as cleanup 40 set_tests_properties(cleanupFoo PROPERTIES 41 FIXTURES_CLEANUP Foo 42 FIXTURES_REQUIRED Foo 43 ) 44 45Cleanup tests will execute even if setup or regular tests for that fixture fail 46or are skipped. 47 48See :prop_test:`FIXTURES_REQUIRED` for a more complete discussion of how to use 49test fixtures. 50