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

Unified Diff: tools/telemetry/telemetry/record_wpr.py

Issue 11881051: Telemetry: add a metadata layer between page set and .wpr. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 7 years, 11 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: 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))
« tools/telemetry/telemetry/page_set.py ('K') | « tools/telemetry/telemetry/page_set_unittest.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698