summaryrefslogtreecommitdiffstats
path: root/Help/prop_test/REQUIRED_FILES.rst
blob: baf209cfb0c8728f0ea13c4d479be34a285d6e34 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
REQUIRED_FILES
--------------

List of files required to run the test.  The filenames are relative to the
test :prop_test:`WORKING_DIRECTORY` unless an absolute path is specified.

If set to a list of files, the test will not be run unless all of the
files exist.

Examples
~~~~~~~~

Suppose that ``test.txt`` is created by test ``baseTest`` and ``none.txt``
does not exist:

.. code-block:: cmake

  add_test(NAME baseTest ...)   # Assumed to create test.txt
  add_test(NAME fileTest ...)

  # The following ensures that if baseTest is successful, test.txt will
  # have been created before fileTest is run
  set_tests_properties(fileTest PROPERTIES
    DEPENDS baseTest
    REQUIRED_FILES test.txt
  )

  add_test(NAME notRunTest ...)

  # The following makes notRunTest depend on two files. Nothing creates
  # the none.txt file, so notRunTest will fail with status "Not Run".
  set_tests_properties(notRunTest PROPERTIES
    REQUIRED_FILES "test.txt;none.txt"
  )

The above example demonstrates how ``REQUIRED_FILES`` works, but it is not the
most robust way to implement test ordering with failure detection.  For that,
test fixtures are a better alternative (see :prop_test:`FIXTURES_REQUIRED`).