Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(98)

Unified Diff: telemetry/telemetry/internal/story_runner.py

Issue 2074183002: [telemetry] Try to print browser logs and capture a screenshot upon story failure (Closed) Base URL: git@github.com:catapult-project/catapult.git@master
Patch Set: Add DumpStateUponFailure to _FakeBrowser Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: telemetry/telemetry/internal/story_runner.py
diff --git a/telemetry/telemetry/internal/story_runner.py b/telemetry/telemetry/internal/story_runner.py
index 4d736cd6d6dd6f3e6e705ed32855d9764a0ba113..f657bc4fbbed3c70822337f46165ab157fd37e04 100644
--- a/telemetry/telemetry/internal/story_runner.py
+++ b/telemetry/telemetry/internal/story_runner.py
@@ -69,8 +69,9 @@ def ProcessCommandLineArgs(parser, args):
def _RunStoryAndProcessErrorIfNeeded(story, results, state, test):
- def ProcessError():
- results.AddValue(failure.FailureValue(story, sys.exc_info()))
+ def ProcessError(description=None):
+ state.DumpStateUponFailure(story, results)
+ results.AddValue(failure.FailureValue(story, sys.exc_info(), description))
try:
if isinstance(test, story_test.StoryTest):
test.WillRunStory(state.platform)
@@ -94,9 +95,7 @@ def _RunStoryAndProcessErrorIfNeeded(story, results, state, test):
results.AddValue(
skip.SkipValue(story, 'Unsupported page action: %s' % e))
except Exception:
- results.AddValue(
- failure.FailureValue(
- story, sys.exc_info(), 'Unhandlable exception raised.'))
+ ProcessError(description='Unhandlable exception raised.')
raise
finally:
has_existing_exception = (sys.exc_info() != (None, None, None))
@@ -110,6 +109,7 @@ def _RunStoryAndProcessErrorIfNeeded(story, results, state, test):
test.DidRunPage(state.platform)
except Exception:
if not has_existing_exception:
+ state.DumpStateUponFailure(story, results)
raise
# Print current exception and propagate existing exception.
exception_formatter.PrintFormattedException(
« no previous file with comments | « telemetry/telemetry/internal/browser/browser.py ('k') | telemetry/telemetry/internal/story_runner_unittest.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698