blob: 0b44bea6ded777368074893daefa232de3250f81 [file]
CMP0224
-------
.. versionadded:: 4.5
Test fixtures use ``AROUND_EACH_REPEAT`` mode by default with
:option:`ctest --repeat`.
When :manual:`ctest(1)` repeats tests with its :ctest-option:`--repeat`
option, CMake 4.4 and below repeated fixture setup and cleanup tests along
with the tests that require them. Each test, including the fixture tests,
ran all of its repetitions before the next test started::
setup (xN) -> test (xN) -> cleanup (xN)
CMake 4.5 and above prefer to repeat the fixture as a whole, so that each
repetition of a test is surrounded by its own fixture setup and cleanup::
(setup -> test -> cleanup) xN
This policy provides compatibility with projects that rely on the old
behavior. It determines the default behavior when the
:prop_test:`FIXTURE_REPEAT_MODE` test property is not set. The ``OLD``
behavior for this policy is ``EACH_TEST_SEPARATELY``. The ``NEW`` behavior
for this policy is ``AROUND_EACH_REPEAT``.
The property describes a fixture rather than one test, so setting it on any
one of a fixture's setup or cleanup tests is enough to make this policy
irrelevant to that fixture.
Tests are not always created during the configure step by :command:`add_test`.
The :command:`discover_tests` and :command:`gtest_discover_tests` commands
defer test discovery to the build or test step, but they apply the policy
setting as recorded when they were called. If a project adds tests through
its own script listed in :prop_dir:`TEST_INCLUDE_FILES`, it should set
:prop_test:`FIXTURE_REPEAT_MODE` on its fixture tests explicitly.
.. |INTRODUCED_IN_CMAKE_VERSION| replace:: 4.5
.. |WARNS_OR_DOES_NOT_WARN| replace:: does *not* warn by default
.. include:: include/STANDARD_ADVICE.rst
See documentation of the
:variable:`CMAKE_POLICY_WARNING_CMP0224 <CMAKE_POLICY_WARNING_CMP<NNNN>>`
variable to control the warning.
.. include:: include/DEPRECATED.rst