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

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, 9 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 | « DEPS ('k') | scripts/slave/webpagereplay.py » ('j') | 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 122337)
+++ scripts/slave/runtest.py (working copy)
@@ -37,6 +37,7 @@
from common import chromium_utils
from slave import gtest_slave_utils
from slave import slave_utils
+from slave import webpagereplay
from slave import xvfb
import config
@@ -171,6 +172,27 @@
(e, output_dir))
return http_server
+def start_wpr_server(platform, build_dir, test_exe_path, data_dir,
James Simonsen 2012/04/05 00:34:03 platform is unused.
+ wpr_dir=None):
+ """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.
+ """
+ # Name the output directory for the exe, without its path or suffix.
+ # e.g., chrome-release/httpd_logs/unit_tests/
+ test_exe_name = os.path.splitext(os.path.basename(test_exe_path))[0]
+ output_dir = os.path.join(slave_utils.SlaveBaseDir(build_dir),
+ 'webpagereplay_logs',
+ test_exe_name)
+ if wpr_dir is None:
+ wpr_dir = os.path.abspath(os.path.join(
+ __file__, '..', '..', '..', 'third_party', 'webpagereplay'))
+ data_dir = os.path.abspath(data_dir)
+ wpr_server = webpagereplay.ReplayLauncher(wpr_dir, data_dir, output_dir)
+ wpr_server.StartServer()
+ return wpr_server
+
def main_mac(options, args):
if len(args) < 1:
raise chromium_utils.MissingArgument('Usage: %s' % USAGE)
@@ -230,14 +252,21 @@
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(
+ 'mac', build_dir=build_dir, test_exe_path=test_exe_path,
+ data_dir=os.path.join(options.document_root, 'webpagereplay'))
result = _RunGTestCommand(command, results_tracker)
finally:
if http_server:
http_server.StopServer()
+ if webpagereplay_server:
+ webpagereplay_server.StopServer()
if options.generate_json_file:
_GenerateJSONForTestResults(options, results_tracker)
@@ -336,10 +365,15 @@
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(
+ 'linux', build_dir=build_dir, test_exe_path=test_exe_path,
+ data_dir=os.path.join(options.document_root, 'webpagereplay'))
if options.xvfb:
xvfb.StartVirtualX(
slave_name, bin_dir,
@@ -355,6 +389,8 @@
finally:
if http_server:
http_server.StopServer()
+ if webpagereplay_server:
+ webpagereplay_server.StopServer()
if options.xvfb:
xvfb.StopVirtualX(slave_name)
@@ -459,6 +495,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.')
@@ -523,6 +563,9 @@
help='factory properties in JSON format')
options, args = option_parser.parse_args()
+ if options.enable_wpr and not options.document_root:
+ sys.stderr.write('--enable-wpr requires --with-httpd for the document root.')
James Simonsen 2012/04/05 00:34:03 80 chars
+ return 1
if options.run_shell_script and options.run_python_script:
sys.stderr.write('Use either --run-shell-script OR --run-python-script, '
'not both.')
« no previous file with comments | « DEPS ('k') | scripts/slave/webpagereplay.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698