| 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(
|
|
|