diff -r 17d64d38b956 -r 284b74f149d1 tests/SConscript --- a/tests/SConscript Mon Jun 06 17:42:54 2016 +0100 +++ b/tests/SConscript Mon Jun 06 17:43:13 2016 +0100 @@ -120,19 +120,16 @@ assert len(result) == 1 result = result[0] - run = result.results[0] - assert run.name == "gem5" - formatter = None - if not run: - status = color_message(termcap.Red, "FAILED!") + if result.skipped(): + status = color_message(termcap.Cyan, "skipped.") + elif result.changed(): + status = color_message(termcap.Yellow, "CHANGED!") formatter = results.Text() - elif run.skipped(): - status = color_message(termcap.Cyan, "skipped.") elif result: status = color_message(termcap.Green, "passed.") else: - status = color_message(termcap.Yellow, "CHANGED!") + status = color_message(termcap.Red, "FAILED!") formatter = results.Text() if formatter: @@ -164,10 +161,7 @@ assert len(result) == 1 result = result[0] - run = result.results[0] - assert run.name == "gem5" - - if run.skipped(): + if result.skipped(): print "*** %s: %s: Test skipped, not updating." % ( source[0].dir, color_message(termcap.Yellow, "WARNING"), ) return 0 @@ -175,7 +169,7 @@ print "*** %s: %s: Test successful, not updating." % ( source[0].dir, color_message(termcap.Green, "skipped"), ) return 0 - elif not run.success(): + elif result.failed_run(): print "*** %s: %s: Test failed, not updating." % ( source[0].dir, color_message(termcap.Red, "ERROR"), ) return 1 diff -r 17d64d38b956 -r 284b74f149d1 tests/testing/results.py --- a/tests/testing/results.py Mon Jun 06 17:42:54 2016 +0100 +++ b/tests/testing/results.py Mon Jun 06 17:43:13 2016 +0100 @@ -105,27 +105,41 @@ class TestResult(object): """Results for from a single test consisting of one or more units.""" - def __init__(self, name, results=[]): + def __init__(self, name, run_results=[], verify_results=[]): self.name = name - self.results = results + self.results = run_results + verify_results + self.run_results = run_results + self.verify_results = verify_results def success(self): - return all([ r.success() for r in self.results]) + return self.success_run() and self.success_verify() + + def success_run(self): + return all([ r.success() for r in self.run_results ]) + + def success_verify(self): + return all([ r.success() for r in self.verify_results ]) + + def failed(self): + return self.failed_run() or self.failed_verify() + + def failed_run(self): + return any([ not r for r in self.run_results ]) + + def failed_verify(self): + return any([ not r for r in self.verify_results ]) def skipped(self): - return all([ r.skipped() for r in self.results]) + return all([ r.skipped() for r in self.run_results ]) def changed(self): - return self.results[0].success() and self.failed() - - def failed(self): - return any([ not r for r in self.results]) + return self.success_run() and self.failed_verify() def runtime(self): return sum([ r.runtime for r in self.results ]) def __nonzero__(self): - return all([r for r in self.results]) + return all([ r for r in self.results ]) class ResultFormatter(object): __metaclass__ = ABCMeta diff -r 17d64d38b956 -r 284b74f149d1 tests/testing/tests.py --- a/tests/testing/tests.py Mon Jun 06 17:42:54 2016 +0100 +++ b/tests/testing/tests.py Mon Jun 06 17:43:13 2016 +0100 @@ -213,7 +213,9 @@ for u in self.verify_units() ] - return TestResult(self.test_name, run_results + verify_results) + return TestResult(self.test_name, + run_results=run_results, + verify_results=verify_results) def __str__(self): return self.test_name