Chromium Code Reviews| Index: tools/telemetry/telemetry/record_wpr.py |
| diff --git a/tools/telemetry/telemetry/record_wpr.py b/tools/telemetry/telemetry/record_wpr.py |
| index 610ec8cab76b6cacf9604ee55f33c52dab9a9789..75484019ea2ec00bc0591e1afd71c4295c3598d1 100755 |
| --- a/tools/telemetry/telemetry/record_wpr.py |
| +++ b/tools/telemetry/telemetry/record_wpr.py |
| @@ -3,7 +3,10 @@ |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| import logging |
| +import os |
| +import shutil |
| import sys |
| +import tempfile |
| import time |
| from telemetry import all_page_actions # pylint: disable=W0611 |
| @@ -77,6 +80,12 @@ def Main(benchmark_dir): |
| ps = page_set.PageSet.FromFile(args[0]) |
| + # Set the archive path to something temporary. |
| + temp_target_wpr_file_path = tempfile.mkstemp()[1] |
| + for page in ps.pages: |
| + page.archive_path = temp_target_wpr_file_path |
| + |
| + # Do the actual recording. |
| options.wpr_mode = wpr_modes.WPR_RECORD |
| recorder.CustomizeBrowserOptions(options) |
| possible_browser = browser_finder.FindBrowser(options) |
| @@ -85,14 +94,27 @@ def Main(benchmark_dir): |
| Use --browser=list to figure out which are available.\n""" |
| sys.exit(1) |
| results = page_test.PageTestResults() |
| + pages_run = [] |
| with page_runner.PageRunner(ps) as runner: |
| - runner.Run(options, possible_browser, recorder, results) |
| + runner.Run(options, possible_browser, recorder, results, pages_run) |
| - if len(results.page_failures): |
| + if results.page_failures: |
| logging.warning('Failed pages: %s', '\n'.join( |
| [failure['page'].url for failure in results.page_failures])) |
| - if len(results.skipped_pages): |
| + if results.skipped_pages: |
| logging.warning('Skipped pages: %s', '\n'.join( |
| [skipped['page'].url for skipped in results.skipped_pages])) |
| + |
| + if not results.page_failures: |
| + # Update the metadata for the pages which were recorded. |
| + target_wpr_file_path = ps.wpr_archive_info.AddNewRecording(pages_run) |
|
dtu
2013/01/30 02:19:10
This method could take temp_target_wpr_file_path a
marja
2013/01/30 12:26:22
Done.
|
| + |
| + shutil.move(temp_target_wpr_file_path, target_wpr_file_path) |
| + ps.wpr_archive_info.WriteToFile() |
| + ps.wpr_archive_info.DeleteAbandonedWprFiles() |
| + |
| + else: |
| + os.remove(temp_target_wpr_file_path) |
| + |
| return min(255, len(results.page_failures)) |