38 lines
1.3 KiB
ReStructuredText
38 lines
1.3 KiB
ReStructuredText
|
TIMEOUT_AFTER_MATCH
|
||
|
-------------------
|
||
|
|
||
|
Change a test's timeout duration after a matching line is encountered
|
||
|
in its output.
|
||
|
|
||
|
Usage
|
||
|
^^^^^
|
||
|
|
||
|
.. code-block:: cmake
|
||
|
|
||
|
add_test(mytest ...)
|
||
|
set_property(TEST mytest PROPERTY TIMEOUT_AFTER_MATCH "${seconds}" "${regex}")
|
||
|
|
||
|
Description
|
||
|
^^^^^^^^^^^
|
||
|
|
||
|
Allow a test ``seconds`` to complete after ``regex`` is encountered in
|
||
|
its output.
|
||
|
|
||
|
When the test outputs a line that matches ``regex`` its start time is
|
||
|
reset to the current time and its timeout duration is changed to
|
||
|
``seconds``. Prior to this, the timeout duration is determined by the
|
||
|
:prop_test:`TIMEOUT` property or the :variable:`CTEST_TEST_TIMEOUT`
|
||
|
variable if either of these are set.
|
||
|
|
||
|
:prop_test:`TIMEOUT_AFTER_MATCH` is useful for avoiding spurious
|
||
|
timeouts when your test must wait for some system resource to become
|
||
|
available before it can execute. Set :prop_test:`TIMEOUT` to a longer
|
||
|
duration that accounts for resource acquisition and use
|
||
|
:prop_test:`TIMEOUT_AFTER_MATCH` to control how long the actual test
|
||
|
is allowed to run.
|
||
|
|
||
|
If the required resource can be controlled by CTest you should use
|
||
|
:prop_test:`RESOURCE_LOCK` instead of :prop_test:`TIMEOUT_AFTER_MATCH`.
|
||
|
This property should be used when only the test itself can determine
|
||
|
when its required resources are available.
|