Chromium Code Reviews| Index: build/android/pylib/base/base_test_result.py |
| diff --git a/build/android/pylib/base/base_test_result.py b/build/android/pylib/base/base_test_result.py |
| index c425d5cd5845650849f6c16ea10d5e97ac62aeda..1f904c43f87864e07a36d020927333e57af17252 100644 |
| --- a/build/android/pylib/base/base_test_result.py |
| +++ b/build/android/pylib/base/base_test_result.py |
| @@ -7,6 +7,7 @@ |
| class ResultType(object): |
| """Class enumerating test types.""" |
| PASS = 'PASS' |
| + SKIP = 'SKIP' |
| FAIL = 'FAIL' |
| CRASH = 'CRASH' |
| TIMEOUT = 'TIMEOUT' |
| @@ -15,8 +16,8 @@ class ResultType(object): |
| @staticmethod |
| def GetTypes(): |
| """Get a list of all test types.""" |
| - return [ResultType.PASS, ResultType.FAIL, ResultType.CRASH, |
| - ResultType.TIMEOUT, ResultType.UNKNOWN] |
| + return [ResultType.PASS, ResultType.SKIP, ResultType.FAIL, |
| + ResultType.CRASH, ResultType.TIMEOUT, ResultType.UNKNOWN] |
| class BaseTestResult(object): |
| @@ -97,19 +98,26 @@ class TestRunResults(object): |
| s.append('[==========] %s ran.' % (tests(len(self.GetAll())))) |
| s.append('[ PASSED ] %s.' % (tests(len(self.GetPass())))) |
| - not_passed = self.GetNotPass() |
| - if len(not_passed) > 0: |
| - s.append('[ FAILED ] %s, listed below:' % tests(len(self.GetNotPass()))) |
| - for t in self.GetFail(): |
| + skipped = self.GetSkip() |
| + if len(skipped): |
| + s.append('[ SKIPPED ] Skipped %s, listed below:' % tests(len(skipped))) |
| + for t in sorted(skipped): |
| + s.append('[ SKIPPED ] %s' % str(t)) |
| + |
| + all_failures = (self.GetFail() | self.GetCrash() | self.GetTimeout() | |
|
craigdh
2014/09/18 16:30:15
nit: explicitly use union()
jbudorick
2014/09/18 16:52:18
Done.
|
| + self.GetUnknown()) |
| + if len(all_failures): |
|
craigdh
2014/09/18 16:30:15
"if len(all_failures)" is the same as "if all_fail
jbudorick
2014/09/18 16:52:18
Done.
|
| + s.append('[ FAILED ] %s, listed below:' % tests(len(all_failures))) |
| + for t in sorted(self.GetFail()): |
| s.append('[ FAILED ] %s' % str(t)) |
| - for t in self.GetCrash(): |
| + for t in sorted(self.GetCrash()): |
| s.append('[ FAILED ] %s (CRASHED)' % str(t)) |
| - for t in self.GetTimeout(): |
| + for t in sorted(self.GetTimeout()): |
| s.append('[ FAILED ] %s (TIMEOUT)' % str(t)) |
| - for t in self.GetUnknown(): |
| + for t in sorted(self.GetUnknown()): |
| s.append('[ FAILED ] %s (UNKNOWN)' % str(t)) |
| s.append('') |
| - s.append(plural(len(not_passed), 'FAILED TEST', 'FAILED TESTS')) |
| + s.append(plural(len(all_failures), 'FAILED TEST', 'FAILED TESTS')) |
| return '\n'.join(s) |
| def GetShortForm(self): |
| @@ -163,6 +171,10 @@ class TestRunResults(object): |
| """Get the set of all passed test results.""" |
| return self._GetType(ResultType.PASS) |
| + def GetSkip(self): |
| + """Get the set of all skipped test results.""" |
| + return self._GetType(ResultType.SKIP) |
| + |
| def GetFail(self): |
| """Get the set of all failed test results.""" |
| return self._GetType(ResultType.FAIL) |
| @@ -185,4 +197,5 @@ class TestRunResults(object): |
| def DidRunPass(self): |
| """Return whether the test run was successful.""" |
| - return not self.GetNotPass() |
| + return not (self.GetNotPass() - self.GetSkip()) |
| + |