TIMEOUT_AFTER_MATCH

在 3.6 版本中添加。

在测试输出中遇到匹配行后,更改测试的超时持续时间。

用法

add_test(mytest ...)
set_property(TEST mytest PROPERTY TIMEOUT_AFTER_MATCH "${seconds}" "${regex}")

描述

允许测试在 regex 在其输出中被遇到后,有 seconds 秒的时间完成。

当测试输出一行与 regex 匹配的行时,其开始时间将重置为当前时间,并且其超时持续时间将更改为 seconds。在此之前,超时持续时间由 TIMEOUT 属性或 CTEST_TEST_TIMEOUT 变量确定(如果其中任何一个已设置)。由于测试的开始时间被重置,其执行时间将不包括任何等待匹配输出所花费的时间。

TIMEOUT_AFTER_MATCH 对于避免当您的测试必须等待某些系统资源变为可用才能执行时出现虚假超时非常有用。将 TIMEOUT 设置为更长的持续时间,以考虑资源获取,并使用 TIMEOUT_AFTER_MATCH 来控制实际测试允许运行多长时间。

如果所需的资源可以由 CTest 控制,则应使用 RESOURCE_LOCK 而不是 TIMEOUT_AFTER_MATCH。当只有测试本身可以确定其所需的资源何时可用时,才应使用此属性。

另请参见 TIMEOUT_SIGNAL_NAME