diff options
| -rw-r--r-- | mesonbuild/mtest.py | 1 | ||||
| -rw-r--r-- | unittests/allplatformstests.py | 8 |
2 files changed, 8 insertions, 1 deletions
diff --git a/mesonbuild/mtest.py b/mesonbuild/mtest.py index a299a794f..535703865 100644 --- a/mesonbuild/mtest.py +++ b/mesonbuild/mtest.py @@ -793,6 +793,7 @@ class JsonLogfileBuilder(TestFileLogger): 'name': result.name, 'stdout': result.stdo, 'result': result.res.value, + 'is_fail': result.res.is_bad(), 'starttime': result.starttime, 'duration': result.duration, 'returncode': result.returncode, diff --git a/unittests/allplatformstests.py b/unittests/allplatformstests.py index 557fe2a52..2dc3eacf0 100644 --- a/unittests/allplatformstests.py +++ b/unittests/allplatformstests.py @@ -895,7 +895,13 @@ class AllPlatformTests(BasePlatformTests): self._run(command) self.assertEqual(0, failure_count, 'Expected %d tests to fail.' % failure_count) except subprocess.CalledProcessError as e: - self.assertEqual(e.returncode, failure_count) + actual_fails = 0 + with open(os.path.join(self.logdir, 'testlog.json'), encoding='utf-8') as f: + for line in f: + res = json.loads(line) + if res['is_fail']: + actual_fails += 1 + self.assertEqual(actual_fails, failure_count) def test_suite_selection(self): testdir = os.path.join(self.unit_test_dir, '4 suite selection') |
