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

Side by Side 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, 10 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 import logging 5 import logging
6 import os
7 import shutil
6 import sys 8 import sys
9 import tempfile
7 import time 10 import time
8 11
9 from telemetry import all_page_actions # pylint: disable=W0611 12 from telemetry import all_page_actions # pylint: disable=W0611
10 from telemetry import browser_finder 13 from telemetry import browser_finder
11 from telemetry import browser_options 14 from telemetry import browser_options
12 from telemetry import discover 15 from telemetry import discover
13 from telemetry import multi_page_benchmark 16 from telemetry import multi_page_benchmark
14 from telemetry import page_runner 17 from telemetry import page_runner
15 from telemetry import page_set 18 from telemetry import page_set
16 from telemetry import page_test 19 from telemetry import page_test
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
70 recorder.AddCommandLineOptions(parser) 73 recorder.AddCommandLineOptions(parser)
71 74
72 _, args = parser.parse_args() 75 _, args = parser.parse_args()
73 76
74 if len(args) != 1: 77 if len(args) != 1:
75 parser.print_usage() 78 parser.print_usage()
76 sys.exit(1) 79 sys.exit(1)
77 80
78 ps = page_set.PageSet.FromFile(args[0]) 81 ps = page_set.PageSet.FromFile(args[0])
79 82
83 # Set the archive path to something temporary.
84 temp_target_wpr_file_path = tempfile.mkstemp()[1]
85 for page in ps.pages:
86 page.archive_path = temp_target_wpr_file_path
87
88 # Do the actual recording.
80 options.wpr_mode = wpr_modes.WPR_RECORD 89 options.wpr_mode = wpr_modes.WPR_RECORD
81 recorder.CustomizeBrowserOptions(options) 90 recorder.CustomizeBrowserOptions(options)
82 possible_browser = browser_finder.FindBrowser(options) 91 possible_browser = browser_finder.FindBrowser(options)
83 if not possible_browser: 92 if not possible_browser:
84 print >> sys.stderr, """No browser found.\n 93 print >> sys.stderr, """No browser found.\n
85 Use --browser=list to figure out which are available.\n""" 94 Use --browser=list to figure out which are available.\n"""
86 sys.exit(1) 95 sys.exit(1)
87 results = page_test.PageTestResults() 96 results = page_test.PageTestResults()
97 pages_run = []
88 with page_runner.PageRunner(ps) as runner: 98 with page_runner.PageRunner(ps) as runner:
89 runner.Run(options, possible_browser, recorder, results) 99 runner.Run(options, possible_browser, recorder, results, pages_run)
90 100
91 if len(results.page_failures): 101 if results.page_failures:
92 logging.warning('Failed pages: %s', '\n'.join( 102 logging.warning('Failed pages: %s', '\n'.join(
93 [failure['page'].url for failure in results.page_failures])) 103 [failure['page'].url for failure in results.page_failures]))
94 104
95 if len(results.skipped_pages): 105 if results.skipped_pages:
96 logging.warning('Skipped pages: %s', '\n'.join( 106 logging.warning('Skipped pages: %s', '\n'.join(
97 [skipped['page'].url for skipped in results.skipped_pages])) 107 [skipped['page'].url for skipped in results.skipped_pages]))
108
109 if not results.page_failures:
110 # Update the metadata for the pages which were recorded.
111 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.
112
113 shutil.move(temp_target_wpr_file_path, target_wpr_file_path)
114 ps.wpr_archive_info.WriteToFile()
115 ps.wpr_archive_info.DeleteAbandonedWprFiles()
116
117 else:
118 os.remove(temp_target_wpr_file_path)
119
98 return min(255, len(results.page_failures)) 120 return min(255, len(results.page_failures))
OLDNEW
« 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