Commit b3ffb4c6 authored by chrishenry@google.com's avatar chrishenry@google.com

Move output of [OK] and [FAILED] from AddValue to DidRunPage for gtest output.

Kill AddSuccess and GTestTestResults (the latter is already unused, but
was left out from deletion during
https://codereview.chromium.org/430383003/)

BUG=383639

Review URL: https://codereview.chromium.org/439553002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@287486 0039d316-1c4b-4281-b951-d872f2087c98
parent c71fdba3
...@@ -242,11 +242,12 @@ def _PrepareAndRunPage(test, page_set, expectations, finder_options, ...@@ -242,11 +242,12 @@ def _PrepareAndRunPage(test, page_set, expectations, finder_options,
if page.archive_path and os.path.isfile(page.archive_path) if page.archive_path and os.path.isfile(page.archive_path)
else wpr_modes.WPR_OFF) else wpr_modes.WPR_OFF)
tries = test.attempts max_attempts = test.attempts
while tries: attempt_num = 0
tries -= 1 while attempt_num < max_attempts:
attempt_num = attempt_num + 1
try: try:
results.WillAttemptPageRun() results.WillAttemptPageRun(attempt_num, max_attempts)
if test.RestartBrowserBeforeEachPage() or page.startup_url: if test.RestartBrowserBeforeEachPage() or page.startup_url:
state.StopBrowser() state.StopBrowser()
...@@ -287,7 +288,7 @@ def _PrepareAndRunPage(test, page_set, expectations, finder_options, ...@@ -287,7 +288,7 @@ def _PrepareAndRunPage(test, page_set, expectations, finder_options,
return return
except exceptions.BrowserGoneException as e: except exceptions.BrowserGoneException as e:
state.StopBrowser() state.StopBrowser()
if not tries: if attempt_num == max_attempts:
logging.error('Aborting after too many retries') logging.error('Aborting after too many retries')
raise raise
if test.is_multi_tab_test: if test.is_multi_tab_test:
...@@ -519,7 +520,6 @@ def _RunPage(test, page, state, expectation, results, finder_options): ...@@ -519,7 +520,6 @@ def _RunPage(test, page, state, expectation, results, finder_options):
def ProcessError(): def ProcessError():
if expectation == 'fail': if expectation == 'fail':
msg = 'Expected exception while running %s' % page.url msg = 'Expected exception while running %s' % page.url
results.AddSuccess(page)
else: else:
msg = 'Exception while running %s' % page.url msg = 'Exception while running %s' % page.url
results.AddValue(failure.FailureValue(page, sys.exc_info())) results.AddValue(failure.FailureValue(page, sys.exc_info()))
...@@ -538,7 +538,6 @@ def _RunPage(test, page, state, expectation, results, finder_options): ...@@ -538,7 +538,6 @@ def _RunPage(test, page, state, expectation, results, finder_options):
if expectation == 'fail': if expectation == 'fail':
exception_formatter.PrintFormattedException( exception_formatter.PrintFormattedException(
msg='Expected failure while running %s' % page.url) msg='Expected failure while running %s' % page.url)
results.AddSuccess(page)
else: else:
exception_formatter.PrintFormattedException( exception_formatter.PrintFormattedException(
msg='Failure while running %s' % page.url) msg='Failure while running %s' % page.url)
...@@ -559,7 +558,6 @@ def _RunPage(test, page, state, expectation, results, finder_options): ...@@ -559,7 +558,6 @@ def _RunPage(test, page, state, expectation, results, finder_options):
else: else:
if expectation == 'fail': if expectation == 'fail':
logging.warning('%s was expected to fail, but passed.\n', page.url) logging.warning('%s was expected to fail, but passed.\n', page.url)
results.AddSuccess(page)
finally: finally:
page_state.CleanUpPage(test) page_state.CleanUpPage(test)
......
...@@ -33,13 +33,11 @@ class BuildbotOutputFormatterTest( ...@@ -33,13 +33,11 @@ class BuildbotOutputFormatterTest(
measurement_results.WillRunPage(test_page_set.pages[0]) measurement_results.WillRunPage(test_page_set.pages[0])
measurement_results.AddValue(scalar.ScalarValue( measurement_results.AddValue(scalar.ScalarValue(
test_page_set.pages[0], 'a', 'seconds', 3)) test_page_set.pages[0], 'a', 'seconds', 3))
measurement_results.AddSuccess(test_page_set.pages[0])
measurement_results.DidRunPage(test_page_set.pages[0]) measurement_results.DidRunPage(test_page_set.pages[0])
measurement_results.WillRunPage(test_page_set.pages[1]) measurement_results.WillRunPage(test_page_set.pages[1])
measurement_results.AddValue(scalar.ScalarValue( measurement_results.AddValue(scalar.ScalarValue(
test_page_set.pages[1], 'a', 'seconds', 7)) test_page_set.pages[1], 'a', 'seconds', 7))
measurement_results.AddSuccess(test_page_set.pages[1])
measurement_results.DidRunPage(test_page_set.pages[1]) measurement_results.DidRunPage(test_page_set.pages[1])
formatter = buildbot_output_formatter.BuildbotOutputFormatter( formatter = buildbot_output_formatter.BuildbotOutputFormatter(
...@@ -63,7 +61,6 @@ class BuildbotOutputFormatterTest( ...@@ -63,7 +61,6 @@ class BuildbotOutputFormatterTest(
measurement_results.WillRunPage(test_page_set.pages[0]) measurement_results.WillRunPage(test_page_set.pages[0])
measurement_results.AddValue(scalar.ScalarValue( measurement_results.AddValue(scalar.ScalarValue(
test_page_set.pages[0], 'a', 'seconds', 3)) test_page_set.pages[0], 'a', 'seconds', 3))
measurement_results.AddSuccess(test_page_set.pages[0])
measurement_results.DidRunPage(test_page_set.pages[0]) measurement_results.DidRunPage(test_page_set.pages[0])
formatter = buildbot_output_formatter.BuildbotOutputFormatter( formatter = buildbot_output_formatter.BuildbotOutputFormatter(
...@@ -86,7 +83,6 @@ class BuildbotOutputFormatterTest( ...@@ -86,7 +83,6 @@ class BuildbotOutputFormatterTest(
test_page_set.pages[0], 'a', 'seconds', 3)) test_page_set.pages[0], 'a', 'seconds', 3))
measurement_results.AddValue( measurement_results.AddValue(
scalar.ScalarValue(test_page_set.pages[0], 'b', 'seconds', 10)) scalar.ScalarValue(test_page_set.pages[0], 'b', 'seconds', 10))
measurement_results.AddSuccess(test_page_set.pages[0])
measurement_results.DidRunPage(test_page_set.pages[0]) measurement_results.DidRunPage(test_page_set.pages[0])
measurement_results.WillRunPage(test_page_set.pages[1]) measurement_results.WillRunPage(test_page_set.pages[1])
...@@ -94,14 +90,12 @@ class BuildbotOutputFormatterTest( ...@@ -94,14 +90,12 @@ class BuildbotOutputFormatterTest(
test_page_set.pages[1], 'a', 'seconds', 3)) test_page_set.pages[1], 'a', 'seconds', 3))
measurement_results.AddValue(scalar.ScalarValue( measurement_results.AddValue(scalar.ScalarValue(
test_page_set.pages[1], 'b', 'seconds', 10)) test_page_set.pages[1], 'b', 'seconds', 10))
measurement_results.AddSuccess(test_page_set.pages[1])
measurement_results.DidRunPage(test_page_set.pages[1]) measurement_results.DidRunPage(test_page_set.pages[1])
measurement_results.WillRunPage(test_page_set.pages[2]) measurement_results.WillRunPage(test_page_set.pages[2])
measurement_results.AddValue(scalar.ScalarValue( measurement_results.AddValue(scalar.ScalarValue(
test_page_set.pages[2], 'a', 'seconds', 7)) test_page_set.pages[2], 'a', 'seconds', 7))
# Note, page[2] does not report a 'b' metric. # Note, page[2] does not report a 'b' metric.
measurement_results.AddSuccess(test_page_set.pages[2])
measurement_results.DidRunPage(test_page_set.pages[1]) measurement_results.DidRunPage(test_page_set.pages[1])
formatter = buildbot_output_formatter.BuildbotOutputFormatter( formatter = buildbot_output_formatter.BuildbotOutputFormatter(
...@@ -137,7 +131,6 @@ class BuildbotOutputFormatterTest( ...@@ -137,7 +131,6 @@ class BuildbotOutputFormatterTest(
measurement_results.WillRunPage(test_page_set.pages[1]) measurement_results.WillRunPage(test_page_set.pages[1])
measurement_results.AddValue(scalar.ScalarValue( measurement_results.AddValue(scalar.ScalarValue(
test_page_set.pages[1], 'a', 'seconds', 7)) test_page_set.pages[1], 'a', 'seconds', 7))
measurement_results.AddSuccess(test_page_set.pages[1])
measurement_results.DidRunPage(test_page_set.pages[1]) measurement_results.DidRunPage(test_page_set.pages[1])
formatter = buildbot_output_formatter.BuildbotOutputFormatter( formatter = buildbot_output_formatter.BuildbotOutputFormatter(
...@@ -172,13 +165,11 @@ class BuildbotOutputFormatterTest( ...@@ -172,13 +165,11 @@ class BuildbotOutputFormatterTest(
measurement_results.WillRunPage(test_page_set.pages[0]) measurement_results.WillRunPage(test_page_set.pages[0])
measurement_results.AddValue(scalar.ScalarValue( measurement_results.AddValue(scalar.ScalarValue(
test_page_set.pages[0], 'a', 'seconds', 4)) test_page_set.pages[0], 'a', 'seconds', 4))
measurement_results.AddSuccess(test_page_set.pages[0])
measurement_results.DidRunPage(test_page_set.pages[0]) measurement_results.DidRunPage(test_page_set.pages[0])
measurement_results.WillRunPage(test_page_set.pages[1]) measurement_results.WillRunPage(test_page_set.pages[1])
measurement_results.AddValue(scalar.ScalarValue( measurement_results.AddValue(scalar.ScalarValue(
test_page_set.pages[1], 'a', 'seconds', 8)) test_page_set.pages[1], 'a', 'seconds', 8))
measurement_results.AddSuccess(test_page_set.pages[1])
measurement_results.DidRunPage(test_page_set.pages[1]) measurement_results.DidRunPage(test_page_set.pages[1])
formatter = buildbot_output_formatter.BuildbotOutputFormatter( formatter = buildbot_output_formatter.BuildbotOutputFormatter(
...@@ -204,25 +195,21 @@ class BuildbotOutputFormatterTest( ...@@ -204,25 +195,21 @@ class BuildbotOutputFormatterTest(
measurement_results.WillRunPage(test_page_set.pages[0]) measurement_results.WillRunPage(test_page_set.pages[0])
measurement_results.AddValue(scalar.ScalarValue( measurement_results.AddValue(scalar.ScalarValue(
test_page_set.pages[0], 'a', 'seconds', 3)) test_page_set.pages[0], 'a', 'seconds', 3))
measurement_results.AddSuccess(test_page_set.pages[0])
measurement_results.DidRunPage(test_page_set.pages[0]) measurement_results.DidRunPage(test_page_set.pages[0])
measurement_results.WillRunPage(test_page_set.pages[1]) measurement_results.WillRunPage(test_page_set.pages[1])
measurement_results.AddValue(scalar.ScalarValue( measurement_results.AddValue(scalar.ScalarValue(
test_page_set.pages[1], 'a', 'seconds', 7)) test_page_set.pages[1], 'a', 'seconds', 7))
measurement_results.AddSuccess(test_page_set.pages[1])
measurement_results.DidRunPage(test_page_set.pages[1]) measurement_results.DidRunPage(test_page_set.pages[1])
measurement_results.WillRunPage(test_page_set.pages[0]) measurement_results.WillRunPage(test_page_set.pages[0])
measurement_results.AddValue(scalar.ScalarValue( measurement_results.AddValue(scalar.ScalarValue(
test_page_set.pages[0], 'a', 'seconds', 4)) test_page_set.pages[0], 'a', 'seconds', 4))
measurement_results.AddSuccess(test_page_set.pages[0])
measurement_results.DidRunPage(test_page_set.pages[0]) measurement_results.DidRunPage(test_page_set.pages[0])
measurement_results.WillRunPage(test_page_set.pages[1]) measurement_results.WillRunPage(test_page_set.pages[1])
measurement_results.AddValue(scalar.ScalarValue( measurement_results.AddValue(scalar.ScalarValue(
test_page_set.pages[1], 'a', 'seconds', 8)) test_page_set.pages[1], 'a', 'seconds', 8))
measurement_results.AddSuccess(test_page_set.pages[1])
measurement_results.DidRunPage(test_page_set.pages[1]) measurement_results.DidRunPage(test_page_set.pages[1])
formatter = buildbot_output_formatter.BuildbotOutputFormatter( formatter = buildbot_output_formatter.BuildbotOutputFormatter(
...@@ -252,25 +239,21 @@ class BuildbotOutputFormatterTest( ...@@ -252,25 +239,21 @@ class BuildbotOutputFormatterTest(
measurement_results.WillRunPage(test_page_set.pages[0]) measurement_results.WillRunPage(test_page_set.pages[0])
measurement_results.AddValue(scalar.ScalarValue( measurement_results.AddValue(scalar.ScalarValue(
test_page_set.pages[0], 'a', 'seconds', 3)) test_page_set.pages[0], 'a', 'seconds', 3))
measurement_results.AddSuccess(test_page_set.pages[0])
measurement_results.DidRunPage(test_page_set.pages[0]) measurement_results.DidRunPage(test_page_set.pages[0])
measurement_results.WillRunPage(test_page_set.pages[0]) measurement_results.WillRunPage(test_page_set.pages[0])
measurement_results.AddValue(scalar.ScalarValue( measurement_results.AddValue(scalar.ScalarValue(
test_page_set.pages[0], 'a', 'seconds', 4)) test_page_set.pages[0], 'a', 'seconds', 4))
measurement_results.AddSuccess(test_page_set.pages[0])
measurement_results.DidRunPage(test_page_set.pages[0]) measurement_results.DidRunPage(test_page_set.pages[0])
measurement_results.WillRunPage(test_page_set.pages[1]) measurement_results.WillRunPage(test_page_set.pages[1])
measurement_results.AddValue(scalar.ScalarValue( measurement_results.AddValue(scalar.ScalarValue(
test_page_set.pages[1], 'a', 'seconds', 7)) test_page_set.pages[1], 'a', 'seconds', 7))
measurement_results.AddSuccess(test_page_set.pages[1])
measurement_results.DidRunPage(test_page_set.pages[1]) measurement_results.DidRunPage(test_page_set.pages[1])
measurement_results.WillRunPage(test_page_set.pages[1]) measurement_results.WillRunPage(test_page_set.pages[1])
measurement_results.AddValue(scalar.ScalarValue( measurement_results.AddValue(scalar.ScalarValue(
test_page_set.pages[1], 'a', 'seconds', 8)) test_page_set.pages[1], 'a', 'seconds', 8))
measurement_results.AddSuccess(test_page_set.pages[1])
measurement_results.DidRunPage(test_page_set.pages[1]) measurement_results.DidRunPage(test_page_set.pages[1])
formatter = buildbot_output_formatter.BuildbotOutputFormatter( formatter = buildbot_output_formatter.BuildbotOutputFormatter(
...@@ -303,13 +286,11 @@ class BuildbotOutputFormatterTest( ...@@ -303,13 +286,11 @@ class BuildbotOutputFormatterTest(
measurement_results.WillRunPage(test_page_set.pages[0]) measurement_results.WillRunPage(test_page_set.pages[0])
measurement_results.AddValue(scalar.ScalarValue( measurement_results.AddValue(scalar.ScalarValue(
test_page_set.pages[0], 'b', 'seconds', 2)) test_page_set.pages[0], 'b', 'seconds', 2))
measurement_results.AddSuccess(test_page_set.pages[0])
measurement_results.DidRunPage(test_page_set.pages[0]) measurement_results.DidRunPage(test_page_set.pages[0])
measurement_results.WillRunPage(test_page_set.pages[1]) measurement_results.WillRunPage(test_page_set.pages[1])
measurement_results.AddValue(scalar.ScalarValue( measurement_results.AddValue(scalar.ScalarValue(
test_page_set.pages[1], 'b', 'seconds', 3)) test_page_set.pages[1], 'b', 'seconds', 3))
measurement_results.AddSuccess(test_page_set.pages[1])
measurement_results.DidRunPage(test_page_set.pages[1]) measurement_results.DidRunPage(test_page_set.pages[1])
measurement_results.AddSummaryValue( measurement_results.AddSummaryValue(
...@@ -340,13 +321,11 @@ class BuildbotOutputFormatterTest( ...@@ -340,13 +321,11 @@ class BuildbotOutputFormatterTest(
measurement_results.WillRunPage(test_page_set.pages[0]) measurement_results.WillRunPage(test_page_set.pages[0])
measurement_results.AddValue(scalar.ScalarValue( measurement_results.AddValue(scalar.ScalarValue(
test_page_set.pages[0], 'b', 'seconds', 2)) test_page_set.pages[0], 'b', 'seconds', 2))
measurement_results.AddSuccess(test_page_set.pages[0])
measurement_results.DidRunPage(test_page_set.pages[0]) measurement_results.DidRunPage(test_page_set.pages[0])
measurement_results.WillRunPage(test_page_set.pages[0]) measurement_results.WillRunPage(test_page_set.pages[0])
measurement_results.AddValue(scalar.ScalarValue( measurement_results.AddValue(scalar.ScalarValue(
test_page_set.pages[0], 'b', 'seconds', 3)) test_page_set.pages[0], 'b', 'seconds', 3))
measurement_results.AddSuccess(test_page_set.pages[0])
measurement_results.DidRunPage(test_page_set.pages[0]) measurement_results.DidRunPage(test_page_set.pages[0])
formatter = buildbot_output_formatter.BuildbotOutputFormatter( formatter = buildbot_output_formatter.BuildbotOutputFormatter(
...@@ -374,13 +353,11 @@ class BuildbotOutputFormatterTest( ...@@ -374,13 +353,11 @@ class BuildbotOutputFormatterTest(
measurement_results.WillRunPage(test_page_set.pages[0]) measurement_results.WillRunPage(test_page_set.pages[0])
measurement_results.AddValue(scalar.ScalarValue( measurement_results.AddValue(scalar.ScalarValue(
test_page_set.pages[0], 'b', 'seconds', 2, important=False)) test_page_set.pages[0], 'b', 'seconds', 2, important=False))
measurement_results.AddSuccess(test_page_set.pages[0])
measurement_results.DidRunPage(test_page_set.pages[0]) measurement_results.DidRunPage(test_page_set.pages[0])
measurement_results.WillRunPage(test_page_set.pages[1]) measurement_results.WillRunPage(test_page_set.pages[1])
measurement_results.AddValue(scalar.ScalarValue( measurement_results.AddValue(scalar.ScalarValue(
test_page_set.pages[1], 'b', 'seconds', 3, important=False)) test_page_set.pages[1], 'b', 'seconds', 3, important=False))
measurement_results.AddSuccess(test_page_set.pages[1])
measurement_results.DidRunPage(test_page_set.pages[1]) measurement_results.DidRunPage(test_page_set.pages[1])
formatter = buildbot_output_formatter.BuildbotOutputFormatter( formatter = buildbot_output_formatter.BuildbotOutputFormatter(
...@@ -408,13 +385,11 @@ class BuildbotOutputFormatterTest( ...@@ -408,13 +385,11 @@ class BuildbotOutputFormatterTest(
measurement_results.WillRunPage(test_page_set.pages[0]) measurement_results.WillRunPage(test_page_set.pages[0])
measurement_results.AddValue(list_of_scalar_values.ListOfScalarValues( measurement_results.AddValue(list_of_scalar_values.ListOfScalarValues(
test_page_set.pages[0], 'b', 'seconds', [2, 2])) test_page_set.pages[0], 'b', 'seconds', [2, 2]))
measurement_results.AddSuccess(test_page_set.pages[0])
measurement_results.DidRunPage(test_page_set.pages[0]) measurement_results.DidRunPage(test_page_set.pages[0])
measurement_results.WillRunPage(test_page_set.pages[1]) measurement_results.WillRunPage(test_page_set.pages[1])
measurement_results.AddValue(list_of_scalar_values.ListOfScalarValues( measurement_results.AddValue(list_of_scalar_values.ListOfScalarValues(
test_page_set.pages[1], 'b', 'seconds', [3, 3])) test_page_set.pages[1], 'b', 'seconds', [3, 3]))
measurement_results.AddSuccess(test_page_set.pages[1])
measurement_results.DidRunPage(test_page_set.pages[1]) measurement_results.DidRunPage(test_page_set.pages[1])
formatter = buildbot_output_formatter.BuildbotOutputFormatter( formatter = buildbot_output_formatter.BuildbotOutputFormatter(
...@@ -442,7 +417,6 @@ class BuildbotOutputFormatterTest( ...@@ -442,7 +417,6 @@ class BuildbotOutputFormatterTest(
test_page_set.pages[0], 'a', 'units', test_page_set.pages[0], 'a', 'units',
raw_value_json='{"buckets": [{"low": 1, "high": 2, "count": 1}]}', raw_value_json='{"buckets": [{"low": 1, "high": 2, "count": 1}]}',
important=False)) important=False))
measurement_results.AddSuccess(test_page_set.pages[0])
measurement_results.DidRunPage(test_page_set.pages[0]) measurement_results.DidRunPage(test_page_set.pages[0])
measurement_results.WillRunPage(test_page_set.pages[1]) measurement_results.WillRunPage(test_page_set.pages[1])
...@@ -450,7 +424,6 @@ class BuildbotOutputFormatterTest( ...@@ -450,7 +424,6 @@ class BuildbotOutputFormatterTest(
test_page_set.pages[1], 'a', 'units', test_page_set.pages[1], 'a', 'units',
raw_value_json='{"buckets": [{"low": 2, "high": 3, "count": 1}]}', raw_value_json='{"buckets": [{"low": 2, "high": 3, "count": 1}]}',
important=False)) important=False))
measurement_results.AddSuccess(test_page_set.pages[1])
measurement_results.DidRunPage(test_page_set.pages[1]) measurement_results.DidRunPage(test_page_set.pages[1])
formatter = buildbot_output_formatter.BuildbotOutputFormatter( formatter = buildbot_output_formatter.BuildbotOutputFormatter(
......
...@@ -2,7 +2,6 @@ ...@@ -2,7 +2,6 @@
# Use of this source code is governed by a BSD-style license that can be # Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file. # found in the LICENSE file.
import logging
import time import time
from telemetry.results import progress_reporter from telemetry.results import progress_reporter
...@@ -19,50 +18,53 @@ class GTestProgressReporter(progress_reporter.ProgressReporter): ...@@ -19,50 +18,53 @@ class GTestProgressReporter(progress_reporter.ProgressReporter):
self._output_skipped_tests_summary = output_skipped_tests_summary self._output_skipped_tests_summary = output_skipped_tests_summary
def _GetMs(self): def _GetMs(self):
assert self._timestamp is not None, 'Did not call WillRunPage.'
return (time.time() - self._timestamp) * 1000 return (time.time() - self._timestamp) * 1000
def _EmitFailure(self, failure_value):
print >> self.output_stream, failure.GetStringFromExcInfo(
failure_value.exc_info)
display_name = failure_value.page.display_name
print >> self.output_stream, '[ FAILED ]', display_name, (
'(%0.f ms)' % self._GetMs())
self.output_stream.flush()
def _EmitSkip(self, skip_value):
page = skip_value.page
reason = skip_value.reason
logging.warning('===== SKIPPING TEST %s: %s =====',
page.display_name, reason)
if self._timestamp == None:
self._timestamp = time.time()
print >> self.output_stream, '[ OK ]', page.display_name, (
'(%0.f ms)' % self._GetMs())
self.output_stream.flush()
def DidAddValue(self, value): def DidAddValue(self, value):
super(GTestProgressReporter, self).DidAddValue(value) super(GTestProgressReporter, self).DidAddValue(value)
is_failure = isinstance(value, failure.FailureValue) if isinstance(value, failure.FailureValue):
is_skip = isinstance(value, skip.SkipValue) print >> self.output_stream, failure.GetStringFromExcInfo(
value.exc_info)
# TODO(eakuefner/chrishenry): move emit failure/skip output to DidRunPage. self.output_stream.flush()
if is_failure: elif isinstance(value, skip.SkipValue):
self._EmitFailure(value) print >> self.output_stream, '===== SKIPPING TEST %s: %s =====' % (
elif is_skip: value.page.display_name, value.reason)
self._EmitSkip(value) # TODO(chrishenry): Consider outputting metric values as well. For
# e.g., it can replace BuildbotOutputFormatter in
def WillRunPage(self, page): # --output-format=html, which we used only so that users can grep
super(GTestProgressReporter, self).WillRunPage(page) # the results without opening results.html.
print >> self.output_stream, '[ RUN ]', page.display_name
def WillRunPage(self, page_test_results):
super(GTestProgressReporter, self).WillRunPage(page_test_results)
print >> self.output_stream, '[ RUN ]', (
page_test_results.current_page.display_name)
self.output_stream.flush() self.output_stream.flush()
self._timestamp = time.time() self._timestamp = time.time()
def DidAddSuccess(self, page): def DidRunPage(self, page_test_results):
super(GTestProgressReporter, self).DidAddSuccess(page) super(GTestProgressReporter, self).DidRunPage(page_test_results)
print >> self.output_stream, '[ OK ]', page.display_name, ( page = page_test_results.current_page
'(%0.f ms)' % self._GetMs()) if page_test_results.current_page_run.failed:
print >> self.output_stream, '[ FAILED ]', page.display_name, (
'(%0.f ms)' % self._GetMs())
else:
print >> self.output_stream, '[ OK ]', page.display_name, (
'(%0.f ms)' % self._GetMs())
self.output_stream.flush() self.output_stream.flush()
def WillAttemptPageRun(self, page_test_results, attempt_count, max_attempts):
super(GTestProgressReporter, self).WillAttemptPageRun(
page_test_results, attempt_count, max_attempts)
# A failed attempt will have at least 1 value.
if attempt_count != 1:
print >> self.output_stream, (
'===== RETRYING PAGE RUN (attempt %s out of %s allowed) =====' % (
attempt_count, max_attempts))
print >> self.output_stream, (
'Page run attempt failed and will be retried. '
'Discarding previous results.')
def DidFinishAllTests(self, page_test_results): def DidFinishAllTests(self, page_test_results):
super(GTestProgressReporter, self).DidFinishAllTests(page_test_results) super(GTestProgressReporter, self).DidFinishAllTests(page_test_results)
successful_runs = [] successful_runs = []
......
...@@ -46,7 +46,6 @@ class GTestProgressReporterTest( ...@@ -46,7 +46,6 @@ class GTestProgressReporterTest(
progress_reporter=self._reporter) progress_reporter=self._reporter)
results.WillRunPage(test_page_set.pages[0]) results.WillRunPage(test_page_set.pages[0])
self._mock_timer.SetTime(0.007) self._mock_timer.SetTime(0.007)
results.AddSuccess(test_page_set.pages[0])
results.DidRunPage(test_page_set.pages[0]) results.DidRunPage(test_page_set.pages[0])
results.PrintSummary() results.PrintSummary()
...@@ -88,6 +87,8 @@ class GTestProgressReporterTest( ...@@ -88,6 +87,8 @@ class GTestProgressReporterTest(
results.PrintSummary() results.PrintSummary()
expected = ('[ RUN ] http://www.foo.com/\n' expected = ('[ RUN ] http://www.foo.com/\n'
'===== SKIPPING TEST http://www.foo.com/:'
' Page skipped for testing reason =====\n'
'[ OK ] http://www.foo.com/ (7 ms)\n' '[ OK ] http://www.foo.com/ (7 ms)\n'
'[ PASSED ] 1 test.\n\n') '[ PASSED ] 1 test.\n\n')
self.assertEquals(expected, ''.join(self._output_stream.output_data)) self.assertEquals(expected, ''.join(self._output_stream.output_data))
...@@ -100,7 +101,6 @@ class GTestProgressReporterTest( ...@@ -100,7 +101,6 @@ class GTestProgressReporterTest(
results.WillRunPage(test_page_set.pages[0]) results.WillRunPage(test_page_set.pages[0])
self._mock_timer.SetTime(0.007) self._mock_timer.SetTime(0.007)
results.AddSuccess(test_page_set.pages[0])
results.DidRunPage(test_page_set.pages[0]) results.DidRunPage(test_page_set.pages[0])
results.WillRunPage(test_page_set.pages[1]) results.WillRunPage(test_page_set.pages[1])
...@@ -115,7 +115,6 @@ class GTestProgressReporterTest( ...@@ -115,7 +115,6 @@ class GTestProgressReporterTest(
results.WillRunPage(test_page_set.pages[3]) results.WillRunPage(test_page_set.pages[3])
self._mock_timer.SetTime(0.020) self._mock_timer.SetTime(0.020)
results.AddSuccess(test_page_set.pages[3])
results.DidRunPage(test_page_set.pages[3]) results.DidRunPage(test_page_set.pages[3])
results.PrintSummary() results.PrintSummary()
...@@ -137,6 +136,30 @@ class GTestProgressReporterTest( ...@@ -137,6 +136,30 @@ class GTestProgressReporterTest(
'2 FAILED TESTS\n\n' % (exception_trace, exception_trace)) '2 FAILED TESTS\n\n' % (exception_trace, exception_trace))
self.assertEquals(expected, ''.join(self._output_stream.output_data)) self.assertEquals(expected, ''.join(self._output_stream.output_data))
def testWillAttemptPageRun(self):
test_page_set = _MakePageSet()
results = page_test_results.PageTestResults(
progress_reporter=self._reporter)
results.WillRunPage(test_page_set.pages[0])
results.WillAttemptPageRun(1, 5)
results.WillAttemptPageRun(2, 5)
results.WillAttemptPageRun(3, 5)
self._mock_timer.SetTime(0.007)
results.DidRunPage(test_page_set.pages[0])
results.PrintSummary()
expected = ('[ RUN ] http://www.foo.com/\n'
'===== RETRYING PAGE RUN (attempt 2 out of 5 allowed) =====\n'
'Page run attempt failed and will be retried.'
' Discarding previous results.\n'
'===== RETRYING PAGE RUN (attempt 3 out of 5 allowed) =====\n'
'Page run attempt failed and will be retried.'
' Discarding previous results.\n'
'[ OK ] http://www.foo.com/ (7 ms)\n'
'[ PASSED ] 1 test.\n\n')
self.assertEquals(expected, ''.join(self._output_stream.output_data))
def testStreamingResults(self): def testStreamingResults(self):
test_page_set = _MakePageSet() test_page_set = _MakePageSet()
results = page_test_results.PageTestResults( results = page_test_results.PageTestResults(
...@@ -145,7 +168,6 @@ class GTestProgressReporterTest( ...@@ -145,7 +168,6 @@ class GTestProgressReporterTest(
results.WillRunPage(test_page_set.pages[0]) results.WillRunPage(test_page_set.pages[0])
self._mock_timer.SetTime(0.007) self._mock_timer.SetTime(0.007)
results.AddSuccess(test_page_set.pages[0])
results.DidRunPage(test_page_set.pages[0]) results.DidRunPage(test_page_set.pages[0])
expected = ('[ RUN ] http://www.foo.com/\n' expected = ('[ RUN ] http://www.foo.com/\n'
'[ OK ] http://www.foo.com/ (7 ms)\n') '[ OK ] http://www.foo.com/ (7 ms)\n')
...@@ -176,6 +198,8 @@ class GTestProgressReporterTest( ...@@ -176,6 +198,8 @@ class GTestProgressReporterTest(
results.PrintSummary() results.PrintSummary()
expected = ('[ RUN ] http://www.foo.com/\n' expected = ('[ RUN ] http://www.foo.com/\n'
'===== SKIPPING TEST http://www.foo.com/:'
' Page skipped for testing reason =====\n'
'[ OK ] http://www.foo.com/ (7 ms)\n' '[ OK ] http://www.foo.com/ (7 ms)\n'
'[ PASSED ] 1 test.\n' '[ PASSED ] 1 test.\n'
'\n' '\n'
......
# Copyright 2014 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import logging
import time
from telemetry.results import page_test_results
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)
self._timestamp = None
def _GetMs(self):
return (time.time() - self._timestamp) * 1000
def _EmitFailure(self, failure_value):
print >> self._output_stream, failure.GetStringFromExcInfo(
failure_value.exc_info)
display_name = failure_value.page.display_name
print >> self._output_stream, '[ FAILED ]', display_name, (
'(%0.f ms)' % self._GetMs())
self._output_stream.flush()
def _EmitSkip(self, skip_value):
page = skip_value.page
reason = skip_value.reason
logging.warning('===== SKIPPING TEST %s: %s =====',
page.display_name, reason)
if self._timestamp == None:
self._timestamp = time.time()
print >> self._output_stream, '[ OK ]', page.display_name, (
'(%0.f ms)' % self._GetMs())
self._output_stream.flush()
def AddValue(self, 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)
elif is_skip:
self._EmitSkip(value)
def WillRunPage(self, page):
super(GTestTestResults, 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, (
'(%0.f ms)' % self._GetMs())
self._output_stream.flush()
def PrintSummary(self):
successful_runs = []
failed_runs = []
for run in self.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 ]', (
'%d %s.' % (len(successful_runs), unit))
if self.failures:
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
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()
# Copyright 2014 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import os
import traceback
from telemetry.page import page_set
from telemetry.results import base_test_results_unittest
from telemetry.results import gtest_test_results
from telemetry.unittest import simple_mock
from telemetry.value import failure
from telemetry.value import skip
def _MakePageSet():
ps = page_set.PageSet(file_path=os.path.dirname(__file__))
ps.AddPageWithDefaultRunNavigate('http://www.foo.com/')
ps.AddPageWithDefaultRunNavigate('http://www.bar.com/')
ps.AddPageWithDefaultRunNavigate('http://www.baz.com/')
ps.AddPageWithDefaultRunNavigate('http://www.roz.com/')
return ps
class SummaryGtestTestResults(
gtest_test_results.GTestTestResults):
def __init__(self):
super(SummaryGtestTestResults, self).__init__(
base_test_results_unittest.TestOutputStream())
self.output_data = self._output_stream.output_data
class GTestTestResultsTest(
base_test_results_unittest.BaseTestResultsUnittest):
def setUp(self):
super(GTestTestResultsTest, self).setUp()
self._mock_timer = simple_mock.MockTimer()
self._real_gtest_time_time = gtest_test_results.time.time
gtest_test_results.time.time = self._mock_timer.GetTime
def testSingleSuccessPage(self):
test_page_set = _MakePageSet()
results = SummaryGtestTestResults()
results.WillRunPage(test_page_set.pages[0])
self._mock_timer.SetTime(0.007)
results.AddSuccess(test_page_set.pages[0])
results.DidRunPage(test_page_set.pages[0])
results.PrintSummary()
expected = ('[ RUN ] http://www.foo.com/\n'
'[ OK ] http://www.foo.com/ (7 ms)\n'
'[ PASSED ] 1 test.\n\n')
self.assertEquals(expected, ''.join(results.output_data))
def testSingleFailedPage(self):
test_page_set = _MakePageSet()
results = SummaryGtestTestResults()
results.WillRunPage(test_page_set.pages[0])
exc_info = self.CreateException()
results.AddValue(failure.FailureValue(test_page_set.pages[0], exc_info))
results.DidRunPage(test_page_set.pages[0])
results.PrintSummary()
exception_trace = ''.join(traceback.format_exception(*exc_info))
expected = ('[ RUN ] http://www.foo.com/\n'
'%s\n'
'[ FAILED ] http://www.foo.com/ (0 ms)\n'
'[ PASSED ] 0 tests.\n'
'[ FAILED ] 1 test, listed below:\n'
'[ FAILED ] http://www.foo.com/\n\n'
'1 FAILED TEST\n\n' % exception_trace)
self.assertEquals(expected, ''.join(results.output_data))
def testSingleSkippedPage(self):
test_page_set = _MakePageSet()
results = SummaryGtestTestResults()
results.WillRunPage(test_page_set.pages[0])
self._mock_timer.SetTime(0.007)
results.AddValue(skip.SkipValue(test_page_set.pages[0],
'Page skipped for testing reason'))
results.DidRunPage(test_page_set.pages[0])
results.PrintSummary()
expected = ('[ RUN ] http://www.foo.com/\n'
'[ OK ] http://www.foo.com/ (7 ms)\n'
'[ PASSED ] 1 test.\n\n')
self.assertEquals(expected, ''.join(results.output_data))
def testPassAndFailedPages(self):
test_page_set = _MakePageSet()
results = SummaryGtestTestResults()
exc_info = self.CreateException()
results.WillRunPage(test_page_set.pages[0])
self._mock_timer.SetTime(0.007)
results.AddSuccess(test_page_set.pages[0])
results.DidRunPage(test_page_set.pages[0])
results.WillRunPage(test_page_set.pages[1])
self._mock_timer.SetTime(0.009)
results.AddValue(failure.FailureValue(test_page_set.pages[1], exc_info))
results.DidRunPage(test_page_set.pages[1])
results.WillRunPage(test_page_set.pages[2])
self._mock_timer.SetTime(0.015)
results.AddValue(failure.FailureValue(test_page_set.pages[2], exc_info))
results.DidRunPage(test_page_set.pages[2])
results.WillRunPage(test_page_set.pages[3])
self._mock_timer.SetTime(0.020)
results.AddSuccess(test_page_set.pages[3])
results.DidRunPage(test_page_set.pages[3])
results.PrintSummary()
exception_trace = ''.join(traceback.format_exception(*exc_info))
expected = ('[ RUN ] http://www.foo.com/\n'
'[ OK ] http://www.foo.com/ (7 ms)\n'
'[ RUN ] http://www.bar.com/\n'
'%s\n'
'[ FAILED ] http://www.bar.com/ (2 ms)\n'
'[ RUN ] http://www.baz.com/\n'
'%s\n'
'[ FAILED ] http://www.baz.com/ (6 ms)\n'
'[ RUN ] http://www.roz.com/\n'
'[ OK ] http://www.roz.com/ (5 ms)\n'
'[ PASSED ] 2 tests.\n'
'[ FAILED ] 2 tests, listed below:\n'
'[ FAILED ] http://www.bar.com/\n'
'[ FAILED ] http://www.baz.com/\n\n'
'2 FAILED TESTS\n\n' % (exception_trace, exception_trace))
self.assertEquals(expected, ''.join(results.output_data))
def testStreamingResults(self):
test_page_set = _MakePageSet()
results = SummaryGtestTestResults()
exc_info = self.CreateException()
results.WillRunPage(test_page_set.pages[0])
self._mock_timer.SetTime(0.007)
results.AddSuccess(test_page_set.pages[0])
results.DidRunPage(test_page_set.pages[0])
expected = ('[ RUN ] http://www.foo.com/\n'
'[ OK ] http://www.foo.com/ (7 ms)\n')
self.assertEquals(expected, ''.join(results.output_data))
results.WillRunPage(test_page_set.pages[1])
self._mock_timer.SetTime(0.009)
exception_trace = ''.join(traceback.format_exception(*exc_info))
results.AddValue(failure.FailureValue(test_page_set.pages[1], exc_info))
results.DidRunPage(test_page_set.pages[1])
expected = ('[ RUN ] http://www.foo.com/\n'
'[ OK ] http://www.foo.com/ (7 ms)\n'
'[ RUN ] http://www.bar.com/\n'
'%s\n'
'[ FAILED ] http://www.bar.com/ (2 ms)\n' % exception_trace)
def tearDown(self):
gtest_test_results.time.time = self._real_gtest_time_time
...@@ -48,13 +48,11 @@ class HtmlOutputFormatterTest(unittest.TestCase): ...@@ -48,13 +48,11 @@ class HtmlOutputFormatterTest(unittest.TestCase):
results.WillRunPage(test_page_set.pages[0]) results.WillRunPage(test_page_set.pages[0])
results.AddValue(scalar.ScalarValue( results.AddValue(scalar.ScalarValue(
test_page_set.pages[0], 'a', 'seconds', 3)) test_page_set.pages[0], 'a', 'seconds', 3))
results.AddSuccess(test_page_set.pages[0])
results.DidRunPage(test_page_set.pages[0]) results.DidRunPage(test_page_set.pages[0])
results.WillRunPage(test_page_set.pages[1]) results.WillRunPage(test_page_set.pages[1])
results.AddValue(scalar.ScalarValue( results.AddValue(scalar.ScalarValue(
test_page_set.pages[1], 'a', 'seconds', 7)) test_page_set.pages[1], 'a', 'seconds', 7))
results.AddSuccess(test_page_set.pages[1])
results.DidRunPage(test_page_set.pages[1]) results.DidRunPage(test_page_set.pages[1])
formatter = DeterministicHtmlOutputFormatter( formatter = DeterministicHtmlOutputFormatter(
...@@ -105,13 +103,11 @@ class HtmlOutputFormatterTest(unittest.TestCase): ...@@ -105,13 +103,11 @@ class HtmlOutputFormatterTest(unittest.TestCase):
results.WillRunPage(test_page_set.pages[0]) results.WillRunPage(test_page_set.pages[0])
results.AddValue(scalar.ScalarValue( results.AddValue(scalar.ScalarValue(
test_page_set.pages[0], 'a', 'seconds', 4)) test_page_set.pages[0], 'a', 'seconds', 4))
results.AddSuccess(test_page_set.pages[0])
results.DidRunPage(test_page_set.pages[0]) results.DidRunPage(test_page_set.pages[0])
results.WillRunPage(test_page_set.pages[1]) results.WillRunPage(test_page_set.pages[1])
results.AddValue(scalar.ScalarValue( results.AddValue(scalar.ScalarValue(
test_page_set.pages[1], 'a', 'seconds', 8)) test_page_set.pages[1], 'a', 'seconds', 8))
results.AddSuccess(test_page_set.pages[1])
results.DidRunPage(test_page_set.pages[1]) results.DidRunPage(test_page_set.pages[1])
formatter = DeterministicHtmlOutputFormatter( formatter = DeterministicHtmlOutputFormatter(
...@@ -201,13 +197,11 @@ class HtmlOutputFormatterTest(unittest.TestCase): ...@@ -201,13 +197,11 @@ class HtmlOutputFormatterTest(unittest.TestCase):
results.WillRunPage(test_page_set.pages[0]) results.WillRunPage(test_page_set.pages[0])
results.AddValue(scalar.ScalarValue( results.AddValue(scalar.ScalarValue(
test_page_set.pages[0], 'a', 'seconds', 5)) test_page_set.pages[0], 'a', 'seconds', 5))
results.AddSuccess(test_page_set.pages[0])
results.DidRunPage(test_page_set.pages[0]) results.DidRunPage(test_page_set.pages[0])
results.WillRunPage(test_page_set.pages[1]) results.WillRunPage(test_page_set.pages[1])
results.AddValue(scalar.ScalarValue( results.AddValue(scalar.ScalarValue(
test_page_set.pages[1], 'a', 'seconds', 9)) test_page_set.pages[1], 'a', 'seconds', 9))
results.AddSuccess(test_page_set.pages[1])
results.DidRunPage(test_page_set.pages[1]) results.DidRunPage(test_page_set.pages[1])
formatter = DeterministicHtmlOutputFormatter( formatter = DeterministicHtmlOutputFormatter(
......
...@@ -70,6 +70,11 @@ class PageTestResults(object): ...@@ -70,6 +70,11 @@ class PageTestResults(object):
assert self._current_page_run, 'Not currently running test.' assert self._current_page_run, 'Not currently running test.'
return self._current_page_run.page return self._current_page_run.page
@property
def current_page_run(self):
assert self._current_page_run, 'Not currently running test.'
return self._current_page_run
@property @property
def all_page_runs(self): def all_page_runs(self):
return self._all_page_runs return self._all_page_runs
...@@ -106,7 +111,7 @@ class PageTestResults(object): ...@@ -106,7 +111,7 @@ class PageTestResults(object):
def WillRunPage(self, page): def WillRunPage(self, page):
assert not self._current_page_run, 'Did not call DidRunPage.' assert not self._current_page_run, 'Did not call DidRunPage.'
self._current_page_run = page_run.PageRun(page) self._current_page_run = page_run.PageRun(page)
self._progress_reporter.WillRunPage(page) self._progress_reporter.WillRunPage(self)
def DidRunPage(self, page, discard_run=False): # pylint: disable=W0613 def DidRunPage(self, page, discard_run=False): # pylint: disable=W0613
""" """
...@@ -116,16 +121,25 @@ class PageTestResults(object): ...@@ -116,16 +121,25 @@ class PageTestResults(object):
associated results. associated results.
""" """
assert self._current_page_run, 'Did not call WillRunPage.' assert self._current_page_run, 'Did not call WillRunPage.'
self._progress_reporter.DidRunPage(self)
if not discard_run: if not discard_run:
self._all_page_runs.append(self._current_page_run) self._all_page_runs.append(self._current_page_run)
self._current_page_run = None self._current_page_run = None
def WillAttemptPageRun(self): def WillAttemptPageRun(self, attempt_count, max_attempts):
"""To be called when a single attempt on a page run is starting. """To be called when a single attempt on a page run is starting.
This is called between WillRunPage and DidRunPage and can be This is called between WillRunPage and DidRunPage and can be
called multiple times, one for each attempt. called multiple times, one for each attempt.
Args:
attempt_count: The current attempt number, start at 1
(attempt_count == 1 for the first attempt, 2 for second
attempt, and so on).
max_attempts: Maximum number of page run attempts before failing.
""" """
self._progress_reporter.WillAttemptPageRun(
self, attempt_count, max_attempts)
# Clear any values from previous attempts for this page run. # Clear any values from previous attempts for this page run.
self._current_page_run.ClearValues() self._current_page_run.ClearValues()
...@@ -149,10 +163,6 @@ class PageTestResults(object): ...@@ -149,10 +163,6 @@ class PageTestResults(object):
value.name] value.name]
assert value.IsMergableWith(representative_value) assert value.IsMergableWith(representative_value)
# TODO(chrishenry): Kill this in a separate patch.
def AddSuccess(self, page):
self._progress_reporter.DidAddSuccess(page)
def PrintSummary(self): def PrintSummary(self):
self._progress_reporter.DidFinishAllTests(self) self._progress_reporter.DidFinishAllTests(self)
for output_formatter in self._output_formatters: for output_formatter in self._output_formatters:
......
...@@ -36,7 +36,6 @@ class PageTestResultsTest(base_test_results_unittest.BaseTestResultsUnittest): ...@@ -36,7 +36,6 @@ class PageTestResultsTest(base_test_results_unittest.BaseTestResultsUnittest):
results.DidRunPage(self.pages[0]) results.DidRunPage(self.pages[0])
results.WillRunPage(self.pages[1]) results.WillRunPage(self.pages[1])
results.AddSuccess(self.pages[1])
results.DidRunPage(self.pages[1]) results.DidRunPage(self.pages[1])
self.assertEqual(set([self.pages[0]]), results.pages_that_failed) self.assertEqual(set([self.pages[0]]), results.pages_that_failed)
...@@ -53,7 +52,6 @@ class PageTestResultsTest(base_test_results_unittest.BaseTestResultsUnittest): ...@@ -53,7 +52,6 @@ class PageTestResultsTest(base_test_results_unittest.BaseTestResultsUnittest):
results.DidRunPage(self.pages[0]) results.DidRunPage(self.pages[0])
results.WillRunPage(self.pages[1]) results.WillRunPage(self.pages[1])
results.AddSuccess(self.pages[1])
results.DidRunPage(self.pages[1]) results.DidRunPage(self.pages[1])
self.assertTrue(results.all_page_runs[0].skipped) self.assertTrue(results.all_page_runs[0].skipped)
......
...@@ -17,13 +17,23 @@ class ProgressReporter(object): ...@@ -17,13 +17,23 @@ class ProgressReporter(object):
def __init__(self, output_stream): def __init__(self, output_stream):
self.output_stream = output_stream self.output_stream = output_stream
def WillRunPage(self, page): def DidAddValue(self, value):
pass pass
def DidAddValue(self, value): def WillRunPage(self, page_test_results):
pass
def DidRunPage(self, page_test_results):
pass pass
def DidAddSuccess(self, page): def WillAttemptPageRun(self, page_test_results, attempt_count, max_attempts):
"""
Args:
attempt_count: The current attempt number, start at 1
(attempt_count == 1 for the first attempt, 2 for second
attempt, and so on).
max_attempts: Maximum number of page run attempts before failing.
"""
pass pass
def DidFinishAllTests(self, page_test_results): def DidFinishAllTests(self, page_test_results):
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment