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

Unified Diff: scripts/slave/runtest.py

Issue 9965045: Add Web Page Replay support. (Closed) Base URL: http://src.chromium.org/svn/trunk/tools/build/
Patch Set: Created 8 years, 7 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: scripts/slave/runtest.py
===================================================================
--- scripts/slave/runtest.py (revision 132640)
+++ scripts/slave/runtest.py (working copy)
@@ -171,6 +171,22 @@
(e, output_dir))
return http_server
+def start_wpr_server(test_exe_path):
+ """Start Web Page Replay server.
+
+ WPR makes it easy to record all the resources for a web page and serve
+ that page with a simulated network.
+ """
+ # pylint: disable=F0401
+ import google.webpagereplay_utils
+ test_exe_name = os.path.splitext(os.path.basename(test_exe_path))[0]
+ paths = google.webpagereplay_utils.ChromiumPaths(
+ TEST_EXE_NAME=test_exe_name, TEST_NAME='2012Q2')
+ wpr_server = google.webpagereplay_utils.ReplayLauncher(
+ paths['replay'], paths['.wpr'], paths['logs'], ['--no-dns_forwarding'])
+ wpr_server.StartServer()
+ return wpr_server
+
def main_mac(options, args):
if len(args) < 1:
raise chromium_utils.MissingArgument('Usage: %s' % USAGE)
@@ -233,10 +249,13 @@
try:
http_server = None
+ webpagereplay_server = None
if options.document_root:
http_server = start_http_server('mac', build_dir=build_dir,
test_exe_path=test_exe_path,
document_root=options.document_root)
+ if options.enable_wpr:
+ webpagereplay_server = start_wpr_server(test_exe_path)
if options.factory_properties.get('asan', False):
symbolize = os.path.abspath(os.path.join('src', 'third_party', 'asan',
'scripts', 'asan_symbolize.py'))
@@ -247,6 +266,8 @@
finally:
if http_server:
http_server.StopServer()
+ if webpagereplay_server:
+ webpagereplay_server.StopServer()
if options.generate_json_file:
_GenerateJSONForTestResults(options, results_tracker)
@@ -353,10 +374,13 @@
try:
http_server = None
+ webpagereplay_server = None
if options.document_root:
http_server = start_http_server('linux', build_dir=build_dir,
test_exe_path=test_exe_path,
document_root=options.document_root)
+ if options.enable_wpr:
+ webpagereplay_server = start_wpr_server(test_exe_path)
if options.xvfb:
xvfb.StartVirtualX(
slave_name, bin_dir,
@@ -372,6 +396,8 @@
finally:
if http_server:
http_server.StopServer()
+ if webpagereplay_server:
+ webpagereplay_server.StopServer()
if options.xvfb:
xvfb.StopVirtualX(slave_name)
@@ -484,6 +510,10 @@
default=None, metavar='DOC_ROOT',
help='Start a local httpd server using the given '
'document root, relative to the current dir')
+ option_parser.add_option('', '--enable-wpr', action='store_true',
+ default=False,
+ help='Start the given Web Page Replay server using '
+ 'the httpd document root as the archive root.')
option_parser.add_option('', '--total-shards', dest='total_shards',
default=None, type="int",
help='Number of shards to split this test into.')
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698