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