Index: telemetry/telemetry/internal/story_runner.py |
diff --git a/telemetry/telemetry/internal/story_runner.py b/telemetry/telemetry/internal/story_runner.py |
index 8928068ab3bdf89aaefb16edf51c7007a27ed7ea..073e4bcd22dbee92f4a97580ddbded197a409636 100644 |
--- a/telemetry/telemetry/internal/story_runner.py |
+++ b/telemetry/telemetry/internal/story_runner.py |
@@ -17,6 +17,7 @@ from telemetry.internal.actions import page_action |
from telemetry.internal.browser import browser_finder |
from telemetry.internal.results import results_options |
from telemetry.internal.util import exception_formatter |
+from telemetry.internal.util import log_stream |
from telemetry import page |
from telemetry.page import legacy_page_test |
from telemetry import story as story_module |
@@ -88,6 +89,9 @@ def _GenerateTagMapFromStorySet(stories): |
def _RunStoryAndProcessErrorIfNeeded(story, results, state, test): |
def ProcessError(description=None): |
+ # Flush all the existing log upon failure. |
+ log_stream.FlushLogStream(sys.stdout) |
+ |
state.DumpStateUponFailure(story, results) |
# Note: adding the FailureValue to the results object also normally |
# cause the progress_reporter to log it in the output. |
@@ -179,6 +183,7 @@ def Run(test, story_set, finder_options, results, max_failures=None, |
try: |
for storyset_repeat_counter in xrange(finder_options.pageset_repeat): |
for story in stories: |
+ log_stream.TruncateLogStream() |
if not state: |
# Construct shared state by using a copy of finder_options. Shared |
# state may update the finder_options. If we tear down the shared |