From 1cb9d2bc0da7ec8c9f37ebd7c2f929ab7afa9e91 Mon Sep 17 00:00:00 2001 From: Daniel Stone Date: Tue, 29 Nov 2016 11:17:05 +0000 Subject: Support skipped tests Knowing whether a test failed to run as its prerequisites were not available, or whether those prerequisites were available and produced unexpected/incorrect results, is a useful differentiation. Add support for skipped tests by testing for exit code 77, used through autotools/piglit/etc to denote a test which detected this and decided to skip. --- mesontest.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'mesontest.py') diff --git a/mesontest.py b/mesontest.py index 2834ec0..1a704f8 100755 --- a/mesontest.py +++ b/mesontest.py @@ -26,6 +26,10 @@ import concurrent.futures as conc import platform import signal +# GNU autotools interprets a return code of 77 from tests it executes to +# mean that the test should be skipped. +GNU_SKIP_RETURNCODE = 77 + def is_windows(): platname = platform.system().lower() return platname == 'windows' or 'mingw' in platname @@ -213,6 +217,8 @@ class TestHarness: stde = decode(stde) if timed_out: res = 'TIMEOUT' + if p.returncode == GNU_SKIP_RETURNCODE: + res = 'SKIP' elif (not test.should_fail and p.returncode == 0) or \ (test.should_fail and p.returncode != 0): res = 'OK' @@ -230,7 +236,8 @@ class TestHarness: (num, name, padding1, result.res, padding2, result.duration) print(result_str) result_str += "\n\n" + result.get_log() - if (result.returncode != 0) != result.should_fail: + if (result.returncode != GNU_SKIP_RETURNCODE) and \ + (result.returncode != 0) != result.should_fail: self.error_count += 1 if self.options.print_errorlogs: self.collected_logs.append(result_str) -- cgit v1.1