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