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

Unified Diff: testing/scripts/run_isolated_script_test.py

Issue 2678153003: buildbot: Run the webkit layout tests under swarming on RandomOrder bots. (Closed)
Patch Set: Rebase onto master. Created 3 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « testing/buildbot/manage.py ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: testing/scripts/run_isolated_script_test.py
diff --git a/testing/scripts/run_isolated_script_test.py b/testing/scripts/run_isolated_script_test.py
new file mode 100755
index 0000000000000000000000000000000000000000..c2d2bd8a8f0b6be8b1161392dd1abd150a8da550
--- /dev/null
+++ b/testing/scripts/run_isolated_script_test.py
@@ -0,0 +1,74 @@
+#!/usr/bin/env python
+# Copyright 2015 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+"""Runs a script that can run as an isolate (or not).
+
+The main requirement is that
+
+ --isolated-script-test-output=[FILENAME]
+
+is passed on the command line to run_isolated_script_tests. This gets
+remapped to the command line argument --write-full-results-to.
+
+json is written to that file in the format produced by
+common.parse_common_test_results.
+
+This script is intended to be the base command invoked by the isolate,
+followed by a subsequent Python script. It could be generalized to
+invoke an arbitrary executable.
+"""
+
+# TODO(tansell): Remove this script once LayoutTests can accept the isolated
+# arguments and start xvfb itself.
+
+import argparse
+import json
+import os
+import pprint
+import sys
+
+
+import common
+
+# Add src/testing/ into sys.path for importing xvfb.
+sys.path.append(os.path.join(os.path.dirname(__file__), '..'))
+import xvfb
+
+
+def main():
+ parser = argparse.ArgumentParser()
+ parser.add_argument('--isolated-script-test-output', type=str,
+ required=True)
+ parser.add_argument('--xvfb', help='start xvfb', action='store_true')
+
+ # This argument is ignored for now.
+ parser.add_argument('--isolated-script-test-chartjson-output', type=str)
+
+ args, rest_args = parser.parse_known_args()
+
+ env = os.environ
+ cmd = [sys.executable] + rest_args
+ cmd += ['--write-full-results-to', args.isolated_script_test_output]
+ if args.xvfb:
+ return xvfb.run_executable(cmd, env)
+ else:
+ return common.run_command(cmd, env=env)
+
+
+# This is not really a "script test" so does not need to manually add
+# any additional compile targets.
+def main_compile_targets(args):
+ json.dump([], args.output)
+
+
+if __name__ == '__main__':
+ # Conform minimally to the protocol defined by ScriptTest.
+ if 'compile_targets' in sys.argv:
+ funcs = {
+ 'run': None,
+ 'compile_targets': main_compile_targets,
+ }
+ sys.exit(common.run_script(sys.argv[1:], funcs))
+ sys.exit(main())
« no previous file with comments | « testing/buildbot/manage.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698