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。当只有测试本身可以确定其所需资源何时可用时,应使用此属性。