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!")
- formatter = results.Text()
- elif run.skipped():
+ if result.skipped():
status = color_message(termcap.Cyan, "skipped.")
+ elif result.changed():
+ status = color_message(termcap.Yellow, "CHANGED!")
+ formatter = results.Text()
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:
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
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
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 skipped(self):
- return all([ r.skipped() for r in self.results])
+ def success_run(self):
+ return all([ r.success() for r in self.run_results ])
- def changed(self):
- return self.results[0].success() and self.failed()
+ def success_verify(self):
+ return all([ r.success() for r in self.verify_results ])
def failed(self):
- return any([ not r for r in self.results])
+ 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.run_results ])
+
+ def changed(self):
+ 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
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