summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mesonbuild/mtest.py1
-rw-r--r--unittests/allplatformstests.py8
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')