mtest: add test methods to TestResult

Keep the list of "ok" and "bad" statuses close to the definition of
the enum.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
pull/8001/head
Paolo Bonzini 4 years ago
parent 9d29bd0225
commit eadbf3dbf5
  1. 18
      mesonbuild/mtest.py

@ -181,6 +181,13 @@ class TestResult(enum.Enum):
def maxlen() -> int:
return 14 # len(UNEXPECTEDPASS)
def is_ok(self) -> bool:
return self in {TestResult.OK, TestResult.EXPECTEDFAIL}
def is_bad(self) -> bool:
return self in {TestResult.FAIL, TestResult.TIMEOUT, TestResult.INTERRUPT,
TestResult.UNEXPECTEDPASS, TestResult.ERROR}
class TAPParser:
Plan = namedtuple('Plan', ['count', 'late', 'skipped', 'explanation'])
@ -961,9 +968,6 @@ class TestHarness:
sys.exit('Unknown test result encountered: {}'.format(result.res))
def print_stats(self, result: TestRun) -> None:
ok_statuses = (TestResult.OK, TestResult.EXPECTEDFAIL)
bad_statuses = (TestResult.FAIL, TestResult.TIMEOUT, TestResult.INTERRUPT,
TestResult.UNEXPECTEDPASS, TestResult.ERROR)
result_str = '{num:{numlen}}/{testcount} {name:{name_max_len}} {res:{reslen}} {dur:.2f}s'.format(
numlen=len(str(self.test_count)),
num=result.num,
@ -975,17 +979,17 @@ class TestHarness:
dur=result.duration)
if result.res is TestResult.FAIL:
result_str += ' ' + returncode_to_status(result.returncode)
if result.res in bad_statuses:
if result.res.is_bad():
self.collected_failures.append(result_str)
if not self.options.quiet or result.res not in ok_statuses:
if not self.options.quiet or not result.res.is_ok():
decorator = mlog.plain
if result.res in bad_statuses:
if result.res.is_bad():
decorator = mlog.red
elif result.res is TestResult.SKIP:
decorator = mlog.yellow
print(decorator(result_str).get_text(mlog.colorize_console()))
result_str += "\n\n" + result.get_log()
if result.res in bad_statuses:
if result.res.is_bad():
if self.options.print_errorlogs:
self.collected_logs.append(result_str)
if self.logfile:

Loading…
Cancel
Save