Index: tools/telemetry/telemetry/results/gtest_progress_reporter.py |
diff --git a/tools/telemetry/telemetry/results/gtest_test_results.py b/tools/telemetry/telemetry/results/gtest_progress_reporter.py |
similarity index 44% |
copy from tools/telemetry/telemetry/results/gtest_test_results.py |
copy to tools/telemetry/telemetry/results/gtest_progress_reporter.py |
index 244efe8af4d1df7c7efeb6a8e3baf760fd085811..b65f57178e9443bc3b5fffc35589a65e4ec48656 100644 |
--- a/tools/telemetry/telemetry/results/gtest_test_results.py |
+++ b/tools/telemetry/telemetry/results/gtest_progress_reporter.py |
@@ -5,26 +5,29 @@ |
import logging |
import time |
-from telemetry.results import page_test_results |
+from telemetry.results import progress_reporter |
from telemetry.value import failure |
from telemetry.value import skip |
-class GTestTestResults(page_test_results.PageTestResults): |
- def __init__(self, output_stream): |
- super(GTestTestResults, self).__init__(output_stream) |
+class GTestProgressReporter(progress_reporter.ProgressReporter): |
+ """A progress reporter that outputs the progress report in gtest style.""" |
+ |
+ def __init__(self, output_stream, output_skipped_tests_summary=False): |
+ super(GTestProgressReporter, self).__init__(output_stream) |
self._timestamp = None |
+ self._output_skipped_tests_summary = output_skipped_tests_summary |
def _GetMs(self): |
return (time.time() - self._timestamp) * 1000 |
def _EmitFailure(self, failure_value): |
- print >> self._output_stream, failure.GetStringFromExcInfo( |
+ print >> self.output_stream, failure.GetStringFromExcInfo( |
failure_value.exc_info) |
display_name = failure_value.page.display_name |
- print >> self._output_stream, '[ FAILED ]', display_name, ( |
+ print >> self.output_stream, '[ FAILED ]', display_name, ( |
'(%0.f ms)' % self._GetMs()) |
- self._output_stream.flush() |
+ self.output_stream.flush() |
def _EmitSkip(self, skip_value): |
page = skip_value.page |
@@ -33,17 +36,15 @@ class GTestTestResults(page_test_results.PageTestResults): |
page.display_name, reason) |
if self._timestamp == None: |
self._timestamp = time.time() |
- print >> self._output_stream, '[ OK ]', page.display_name, ( |
+ print >> self.output_stream, '[ OK ]', page.display_name, ( |
'(%0.f ms)' % self._GetMs()) |
- self._output_stream.flush() |
+ self.output_stream.flush() |
- def AddValue(self, value): |
+ def DidAddValue(self, value): |
+ super(GTestProgressReporter, self).DidAddValue(value) |
is_failure = isinstance(value, failure.FailureValue) |
is_skip = isinstance(value, skip.SkipValue) |
- assert is_failure or is_skip, ( |
- 'GTestTestResults only accepts FailureValue or SkipValue.') |
- super(GTestTestResults, self).AddValue(value) |
# TODO(eakuefner/chrishenry): move emit failure/skip output to DidRunPage. |
if is_failure: |
self._EmitFailure(value) |
@@ -51,39 +52,46 @@ class GTestTestResults(page_test_results.PageTestResults): |
self._EmitSkip(value) |
def WillRunPage(self, page): |
- super(GTestTestResults, self).WillRunPage(page) |
- print >> self._output_stream, '[ RUN ]', page.display_name |
- self._output_stream.flush() |
+ super(GTestProgressReporter, self).WillRunPage(page) |
+ print >> self.output_stream, '[ RUN ]', page.display_name |
+ self.output_stream.flush() |
self._timestamp = time.time() |
- def AddSuccess(self, page): |
- super(GTestTestResults, self).AddSuccess(page) |
- print >> self._output_stream, '[ OK ]', page.display_name, ( |
+ def DidAddSuccess(self, page): |
+ super(GTestProgressReporter, self).DidAddSuccess(page) |
+ print >> self.output_stream, '[ OK ]', page.display_name, ( |
'(%0.f ms)' % self._GetMs()) |
- self._output_stream.flush() |
+ self.output_stream.flush() |
- def PrintSummary(self): |
+ def DidFinishAllTests(self, page_test_results): |
+ super(GTestProgressReporter, self).DidFinishAllTests(page_test_results) |
successful_runs = [] |
failed_runs = [] |
- for run in self.all_page_runs: |
+ for run in page_test_results.all_page_runs: |
if run.failed: |
failed_runs.append(run) |
else: |
successful_runs.append(run) |
unit = 'test' if len(successful_runs) == 1 else 'tests' |
- print >> self._output_stream, '[ PASSED ]', ( |
+ print >> self.output_stream, '[ PASSED ]', ( |
'%d %s.' % (len(successful_runs), unit)) |
- if self.failures: |
+ if len(failed_runs) > 0: |
unit = 'test' if len(failed_runs) == 1 else 'tests' |
- print >> self._output_stream, '[ FAILED ]', ( |
- '%d %s, listed below:' % (len(self.failures), unit)) |
- for failure_value in self.failures: |
- print >> self._output_stream, '[ FAILED ] ', ( |
- failure_value.page.display_name) |
- print >> self._output_stream |
+ print >> self.output_stream, '[ FAILED ]', ( |
+ '%d %s, listed below:' % (len(page_test_results.failures), unit)) |
+ for failed_run in failed_runs: |
+ print >> self.output_stream, '[ FAILED ] ', ( |
+ failed_run.page.display_name) |
+ print >> self.output_stream |
count = len(failed_runs) |
unit = 'TEST' if count == 1 else 'TESTS' |
- print >> self._output_stream, '%d FAILED %s' % (count, unit) |
- print >> self._output_stream |
- self._output_stream.flush() |
+ print >> self.output_stream, '%d FAILED %s' % (count, unit) |
+ print >> self.output_stream |
+ |
+ if self._output_skipped_tests_summary: |
+ if len(page_test_results.skipped_values) > 0: |
+ print >> self.output_stream, 'Skipped pages:\n%s\n' % ('\n'.join( |
+ v.page.display_name for v in page_test_results.skipped_values)) |
+ |
+ self.output_stream.flush() |