From c733e21a84f788cb4c9ac4e723743cedb898b345 Mon Sep 17 00:00:00 2001 From: Simon McVittie Date: Thu, 1 Dec 2016 16:28:27 +0000 Subject: [PATCH] Terminate individual tests after (10 * $TEST_TIMEOUT_FACTOR) minutes While using the Automake parallel test harness, if a test hangs for long enough for an external watchdog to kill the entire build process (as happens in Debian sbuild after 150 minutes with no activity on stdout/stderr), the logs will not be shown. If we make an individual test time out sooner, logs are more likely to be shown. We use SIGABRT so that the process(es) under test will dump core, allowing the point at which ostree is blocking to be analyzed. After 1 minute, if any have not died, we kill them again with SIGKILL. To support slow platforms and slow debugging tools, if TEST_TIMEOUT_FACTOR is set, multiply the 10 minute timeout by that. Signed-off-by: Simon McVittie Closes: #607 Approved by: cgwalters --- buildutil/tap-test | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/buildutil/tap-test b/buildutil/tap-test index c8da31e7..ac729d8d 100755 --- a/buildutil/tap-test +++ b/buildutil/tap-test @@ -19,7 +19,11 @@ function skip_cleanup() { echo "Skipping cleanup of ${tempdir}" } cd ${tempdir} -${srcd}/${bn} -k --tap +timeout \ + --kill-after=60 \ + --signal=ABRT \ + $(( 600 * ${TEST_TIMEOUT_FACTOR:-1} )) \ + ${srcd}/${bn} -k --tap rc=$? case "${TEST_SKIP_CLEANUP:-}" in no|"") cleanup ;;