diff options
author | Paolo Bonzini <pbonzini@redhat.com> | 2021-01-06 09:11:12 +0100 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2021-01-07 19:20:40 +0100 |
commit | 63e26ba05fe9f367b8e83800ebd22ccb06204eda (patch) | |
tree | 3a763bbb0f23a20ebba48939c61169edcce8e980 /mesonbuild/mtest.py | |
parent | d2da7565fd9454bb71077975c7578e875d2f1c56 (diff) | |
download | meson-63e26ba05fe9f367b8e83800ebd22ccb06204eda.zip meson-63e26ba05fe9f367b8e83800ebd22ccb06204eda.tar.gz meson-63e26ba05fe9f367b8e83800ebd22ccb06204eda.tar.bz2 |
mtest: handle should_fail in common code
This is common to all protocols, place the code in a single
place.
Diffstat (limited to 'mesonbuild/mtest.py')
-rw-r--r-- | mesonbuild/mtest.py | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/mesonbuild/mtest.py b/mesonbuild/mtest.py index f3879e2..454646d 100644 --- a/mesonbuild/mtest.py +++ b/mesonbuild/mtest.py @@ -766,8 +766,6 @@ class TestRun: res = TestResult.SKIP elif returncode == GNU_ERROR_RETURNCODE: res = TestResult.ERROR - elif self.should_fail: - res = TestResult.EXPECTEDFAIL if bool(returncode) else TestResult.UNEXPECTEDPASS else: res = TestResult.FAIL if bool(returncode) else TestResult.OK self.complete(returncode, res, stdo, stde, cmd, **kwargs) @@ -794,8 +792,6 @@ class TestRun: def complete_tap(self, returncode: int, res: TestResult, stdo: str, stde: str, cmd: T.List[str]) -> None: - if self.should_fail and res in (TestResult.OK, TestResult.FAIL): - res = TestResult.UNEXPECTEDPASS if res.is_ok() else TestResult.EXPECTEDFAIL if returncode != 0 and not res.was_killed(): res = TestResult.ERROR stde += '\n(test program exited with status code {})'.format(returncode,) @@ -803,12 +799,7 @@ class TestRun: self.complete(returncode, res, stdo, stde, cmd) def complete_rust(self, returncode: int, stdo: str, stde: str, cmd: T.List[str]) -> None: - self.results, result = parse_rust_test(stdo) - - if self.should_fail: - res = TestResult.EXPECTEDFAIL if result is TestResult.FAIL else TestResult.UNEXPECTEDPASS - else: - res = result + self.results, res = parse_rust_test(stdo) self.complete(returncode, res, stdo, stde, cmd) @@ -823,6 +814,9 @@ class TestRun: stdo: T.Optional[str], stde: T.Optional[str], cmd: T.List[str], *, junit: T.Optional[et.ElementTree] = None) -> None: assert isinstance(res, TestResult) + if self.should_fail and res in (TestResult.OK, TestResult.FAIL): + res = TestResult.UNEXPECTEDPASS if res.is_ok() else TestResult.EXPECTEDFAIL + self.res = res self.returncode = returncode self.duration = time.time() - self.starttime |