buildbot: Run the webkit layout tests under swarming on RandomOrder bots.
This CL enables the RandomOrder FYI bots to run the webkit layout tests on
swarming. It does this by;
* Creating a dummy webkit_layout_tests_exparchive build target which tells
recipes to use 'isolate exparchive' for uploading (rather than 'isolate
batcharchive'). See;
- https://chromium-review.googlesource.com/c/436324/
- https://chromium-review.googlesource.com/c/422460/
* Updates the testing/buildbot/chromium.fyi.json to include the RandomOrder
bots.
This CL is based on Dirk's CL at http://crrev.com/2595793002#ps40001
BUG=524758
NOTRY=true
Review-Url: https://codereview.chromium.org/2678153003
Cr-Commit-Position: refs/heads/master@{#450911}
diff --git a/testing/scripts/run_isolated_script_test.py b/testing/scripts/run_isolated_script_test.py
new file mode 100755
index 0000000..c2d2bd8a
--- /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())