tests: Run regression timeout as foreground
authorAndreas Hansson <andreas.hansson@arm.com>
Mon, 2 Mar 2015 09:00:29 +0000 (04:00 -0500)
committerAndreas Hansson <andreas.hansson@arm.com>
Mon, 2 Mar 2015 09:00:29 +0000 (04:00 -0500)
Allow the user to send signals such as Ctrl C to the gem5 runs. Note
that this assumes coreutils >= 8.13, which aligns with Ubuntu 12.04
and RHE6.

SConstruct
tests/SConscript

index 6a163f762623bc95670240ec0b660f98663280d9..c51c7b28cdee19996c608102a5fb8269eafaa6f6 100755 (executable)
@@ -784,10 +784,15 @@ if main['GCC'] and compareVersions(gcc_version, '4.9') >= 0 and \
 swig_flags=Split('-c++ -python -modern -templatereduce $_CPPINCFLAGS')
 main.Append(SWIGFLAGS=swig_flags)
 
-# Check for 'timeout' from GNU coreutils.  If present, regressions
-# will be run with a time limit.
-TIMEOUT_version = readCommand(['timeout', '--version'], exception=False)
-main['TIMEOUT'] = TIMEOUT_version and TIMEOUT_version.find('timeout') == 0
+# Check for 'timeout' from GNU coreutils. If present, regressions will
+# be run with a time limit. We require version 8.13 since we rely on
+# support for the '--foreground' option.
+timeout_lines = readCommand(['timeout', '--version'],
+                            exception='').splitlines()
+# Get the first line and tokenize it
+timeout_version = timeout_lines[0].split() if timeout_lines else []
+main['TIMEOUT'] =  timeout_version and \
+    compareVersions(timeout_version[-1], '8.13') >= 0
 
 # filter out all existing swig scanners, they mess up the dependency
 # stuff for some reason
index a4b259681622b4fdcbc8252ba721077241806d7c..3822de2347647d90a22428af25841bc326379459 100644 (file)
@@ -107,7 +107,7 @@ def run_test(target, source, env):
     # The slowest regression (bzip2) requires ~2.8 hours;
     # 4 hours was chosen to be conservative.
     elif env['TIMEOUT']:
-        cmd = 'timeout 4h %s' % cmd
+        cmd = 'timeout --foreground 4h %s' % cmd
 
     # Create a default value for the status string, changed as needed
     # based on the status.