mirror of
https://github.com/Kitware/CMake.git
synced 2026-04-29 02:19:18 -05:00
ctest: Print custom timeout signal properties in show-only output
This was missed in commit 54c5654f7d (ctest: Optionally terminate tests
with a custom signal on timeout, 2023-05-11, v3.27.0-rc1~18^2).
This commit is contained in:
@@ -1202,6 +1202,15 @@ static Json::Value DumpCTestProperties(
|
|||||||
properties.append(
|
properties.append(
|
||||||
DumpCTestProperty("TIMEOUT", testProperties.Timeout->count()));
|
DumpCTestProperty("TIMEOUT", testProperties.Timeout->count()));
|
||||||
}
|
}
|
||||||
|
if (testProperties.TimeoutSignal) {
|
||||||
|
properties.append(DumpCTestProperty("TIMEOUT_SIGNAL_NAME",
|
||||||
|
testProperties.TimeoutSignal->Name));
|
||||||
|
}
|
||||||
|
if (testProperties.TimeoutGracePeriod) {
|
||||||
|
properties.append(
|
||||||
|
DumpCTestProperty("TIMEOUT_SIGNAL_GRACE_PERIOD",
|
||||||
|
testProperties.TimeoutGracePeriod->count()));
|
||||||
|
}
|
||||||
if (!testProperties.TimeoutRegularExpressions.empty()) {
|
if (!testProperties.TimeoutRegularExpressions.empty()) {
|
||||||
properties.append(DumpCTestProperty(
|
properties.append(DumpCTestProperty(
|
||||||
"TIMEOUT_AFTER_MATCH", DumpTimeoutAfterMatch(testProperties)));
|
"TIMEOUT_AFTER_MATCH", DumpTimeoutAfterMatch(testProperties)));
|
||||||
|
|||||||
@@ -469,10 +469,13 @@ function(run_ShowOnly)
|
|||||||
file(WRITE "${RunCMake_TEST_BINARY_DIR}/CTestTestfile.cmake" "
|
file(WRITE "${RunCMake_TEST_BINARY_DIR}/CTestTestfile.cmake" "
|
||||||
add_test(ShowOnly \"${CMAKE_COMMAND}\" -E echo)
|
add_test(ShowOnly \"${CMAKE_COMMAND}\" -E echo)
|
||||||
set_tests_properties(ShowOnly PROPERTIES
|
set_tests_properties(ShowOnly PROPERTIES
|
||||||
WILL_FAIL true
|
|
||||||
RESOURCE_GROUPS \"2,threads:2,gpus:4;gpus:2,threads:4\"
|
RESOURCE_GROUPS \"2,threads:2,gpus:4;gpus:2,threads:4\"
|
||||||
REQUIRED_FILES RequiredFileDoesNotExist
|
REQUIRED_FILES RequiredFileDoesNotExist
|
||||||
_BACKTRACE_TRIPLES \"file1;1;add_test;file0;;\"
|
_BACKTRACE_TRIPLES \"file1;1;add_test;file0;;\"
|
||||||
|
TIMEOUT 1234.5
|
||||||
|
TIMEOUT_SIGNAL_NAME SIGINT
|
||||||
|
TIMEOUT_SIGNAL_GRACE_PERIOD 2.1
|
||||||
|
WILL_FAIL true
|
||||||
USER_DEFINED_A \"User defined property A value\"
|
USER_DEFINED_A \"User defined property A value\"
|
||||||
USER_DEFINED_B \"User defined property B value\"
|
USER_DEFINED_B \"User defined property B value\"
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
import sys
|
||||||
|
|
||||||
from show_only_json_check import *
|
from show_only_json_check import *
|
||||||
|
|
||||||
def check_kind(k):
|
def check_kind(k):
|
||||||
@@ -72,6 +74,30 @@ def check_reqfiles_property(p):
|
|||||||
assert len(p["value"]) == 1
|
assert len(p["value"]) == 1
|
||||||
assert p["value"][0] == "RequiredFileDoesNotExist"
|
assert p["value"][0] == "RequiredFileDoesNotExist"
|
||||||
|
|
||||||
|
def check_timeout_property(p):
|
||||||
|
assert is_dict(p)
|
||||||
|
assert sorted(p.keys()) == ["name", "value"]
|
||||||
|
assert is_string(p["name"])
|
||||||
|
assert is_float(p["value"])
|
||||||
|
assert p["name"] == "TIMEOUT"
|
||||||
|
assert p["value"] == 1234.5
|
||||||
|
|
||||||
|
def check_timeout_signal_name_property(p):
|
||||||
|
assert is_dict(p)
|
||||||
|
assert sorted(p.keys()) == ["name", "value"]
|
||||||
|
assert is_string(p["name"])
|
||||||
|
assert is_string(p["value"])
|
||||||
|
assert p["name"] == "TIMEOUT_SIGNAL_NAME"
|
||||||
|
assert p["value"] == "SIGINT"
|
||||||
|
|
||||||
|
def check_timeout_signal_grace_property(p):
|
||||||
|
assert is_dict(p)
|
||||||
|
assert sorted(p.keys()) == ["name", "value"]
|
||||||
|
assert is_string(p["name"])
|
||||||
|
assert is_float(p["value"])
|
||||||
|
assert p["name"] == "TIMEOUT_SIGNAL_GRACE_PERIOD"
|
||||||
|
assert p["value"] == 2.1
|
||||||
|
|
||||||
def check_willfail_property(p):
|
def check_willfail_property(p):
|
||||||
assert is_dict(p)
|
assert is_dict(p)
|
||||||
assert sorted(p.keys()) == ["name", "value"]
|
assert sorted(p.keys()) == ["name", "value"]
|
||||||
@@ -155,12 +181,24 @@ def check_defined_properties(p_list):
|
|||||||
|
|
||||||
def check_properties(p):
|
def check_properties(p):
|
||||||
assert is_list(p)
|
assert is_list(p)
|
||||||
assert len(p) == 6
|
if sys.platform in ("win32"):
|
||||||
check_resource_groups_property(p[0])
|
assert len(p) == 7
|
||||||
check_reqfiles_property(p[1])
|
check_resource_groups_property(p[0])
|
||||||
check_willfail_property(p[2])
|
check_reqfiles_property(p[1])
|
||||||
check_workingdir_property(p[3])
|
check_timeout_property(p[2])
|
||||||
check_defined_properties(p[4:5])
|
check_willfail_property(p[3])
|
||||||
|
check_workingdir_property(p[4])
|
||||||
|
check_defined_properties(p[5:6])
|
||||||
|
else:
|
||||||
|
assert len(p) == 9
|
||||||
|
check_resource_groups_property(p[0])
|
||||||
|
check_reqfiles_property(p[1])
|
||||||
|
check_timeout_property(p[2])
|
||||||
|
check_timeout_signal_name_property(p[3])
|
||||||
|
check_timeout_signal_grace_property(p[4])
|
||||||
|
check_willfail_property(p[5])
|
||||||
|
check_workingdir_property(p[6])
|
||||||
|
check_defined_properties(p[7:8])
|
||||||
|
|
||||||
def check_tests(t):
|
def check_tests(t):
|
||||||
assert is_list(t)
|
assert is_list(t)
|
||||||
|
|||||||
@@ -14,6 +14,9 @@ def is_list(x):
|
|||||||
def is_int(x):
|
def is_int(x):
|
||||||
return isinstance(x, int) or isinstance(x, long)
|
return isinstance(x, int) or isinstance(x, long)
|
||||||
|
|
||||||
|
def is_float(x):
|
||||||
|
return isinstance(x, float)
|
||||||
|
|
||||||
def is_string(x):
|
def is_string(x):
|
||||||
return isinstance(x, str) or isinstance(x, unicode)
|
return isinstance(x, str) or isinstance(x, unicode)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user