diff --git a/llvm/utils/lit/tests/timeout-hang.py b/llvm/utils/lit/tests/timeout-hang.py index 486f07983708f..edb23affad578 100644 --- a/llvm/utils/lit/tests/timeout-hang.py +++ b/llvm/utils/lit/tests/timeout-hang.py @@ -8,20 +8,29 @@ # throwing an exception. We expect this to fail immediately, rather than # timeout. -# DEFINE: %{timeout}=1 +# lit should return immediately once it fails to execute the non-existent file. +# This will take a variable amount of time depending on process scheduling, but +# it should always be significantly less than the hard timeout, which is the +# point where lit would cancel the test. +# DEFINE: %{grace_period}=5 +# DEFINE: %{hard_timeout}=15 # RUN: not %{lit} %{inputs}/timeout-hang/run-nonexistent.txt \ -# RUN: --timeout=%{timeout} --param external=0 | %{python} %s %{timeout} +# RUN: --timeout=%{hard_timeout} --param external=0 | %{python} %s %{grace_period} import sys import re -timeout_time = float(sys.argv[1]) +grace_time = float(sys.argv[1]) testing_time = float(re.search(r"Testing Time: (.*)s", sys.stdin.read()).group(1)) -if testing_time < timeout_time: - print("Testing took less than timeout") +if testing_time <= grace_time: + print("Testing finished within the grace period") sys.exit(0) else: - print("Testing took as long or longer than timeout") + print( + "Testing took {}s, which is beyond the grace period of {}s".format( + testing_time, grace_time + ) + ) sys.exit(1)