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

Unified Diff: testing/scripts/run_gtest_perf_test.py

Issue 2442663004: Adding isolate for cc_perftests and triggering job on FYI waterfall (Closed)
Patch Set: Using cc build target Created 4 years, 2 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/scripts/common.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_gtest_perf_test.py
diff --git a/testing/scripts/run_gpu_integration_test_as_googletest.py b/testing/scripts/run_gtest_perf_test.py
similarity index 70%
copy from testing/scripts/run_gpu_integration_test_as_googletest.py
copy to testing/scripts/run_gtest_perf_test.py
index fd48e06cf36e76e43993ac311afc1ebc78cd1992..ba4746cea1b20ba98cca1eb8ed65bc99b0eff75c 100755
--- a/testing/scripts/run_gpu_integration_test_as_googletest.py
+++ b/testing/scripts/run_gtest_perf_test.py
@@ -3,20 +3,20 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
-"""Runs an isolate bundled Telemetry GPU integration test.
+"""Runs an isolated non-Telemetry perf test .
-This script attempts to emulate the contract of gtest-style tests
-invoked via recipes. The main contract is that the caller passes the
-argument:
+The main contract is that the caller passes the arguments:
--isolated-script-test-output=[FILENAME]
-
json is written to that file in the format produced by
common.parse_common_test_results.
+ --isolated-script-test-chartjson-output=[FILE]
+stdout is written to this file containing chart results for the perf dashboard
+
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.
+followed by a subsequent non-python executable. It is modeled after
+run_gpu_integration_test_as_gtest.py
"""
import argparse
@@ -39,21 +39,22 @@ import xvfb
CHROME_SANDBOX_ENV = 'CHROME_DEVEL_SANDBOX'
CHROME_SANDBOX_PATH = '/opt/chromium/chrome_sandbox'
+
+def IsWindows():
+ return sys.platform == 'cygwin' or sys.platform.startswith('win')
+
+
def main():
parser = argparse.ArgumentParser()
parser.add_argument(
'--isolated-script-test-output', type=str,
required=True)
+ parser.add_argument(
+ '--isolated-script-test-chartjson-output', type=str,
+ required=True)
parser.add_argument('--xvfb', help='Start xvfb.', action='store_true')
+
args, rest_args = parser.parse_known_args()
- # Remove the chartjson extra arg until this script cares about chartjson
- # results from telemetry
- index = 0
- for arg in rest_args:
- if '--isolated-script-test-chartjson-output' in arg:
- rest_args.pop(index)
- break
- index += 1
xvfb_proc = None
openbox_proc = None
@@ -67,28 +68,23 @@ def main():
xvfb_proc, openbox_proc, xcompmgr_proc = xvfb.start_xvfb(env=env,
build_dir='.')
assert xvfb_proc and openbox_proc and xcompmgr_proc, 'Failed to start xvfb'
- # Compatibility with gtest-based sharding.
- total_shards = None
- shard_index = None
- if 'GTEST_TOTAL_SHARDS' in env:
- total_shards = int(env['GTEST_TOTAL_SHARDS'])
- del env['GTEST_TOTAL_SHARDS']
- if 'GTEST_SHARD_INDEX' in env:
- shard_index = int(env['GTEST_SHARD_INDEX'])
- del env['GTEST_SHARD_INDEX']
- sharding_args = []
- if total_shards is not None and shard_index is not None:
- sharding_args = [
- '--total-shards=%d' % total_shards,
- '--shard-index=%d' % shard_index
- ]
+
try:
valid = True
rc = 0
try:
- rc = common.run_command([sys.executable] + rest_args + sharding_args + [
+ executable = rest_args[0]
+ if IsWindows():
+ executable = '.\%s.exe' % executable
+ else:
+ executable = './%s' % executable
+
+ rc = common.run_command_with_output([executable] + [
'--write-abbreviated-json-results-to', args.isolated_script_test_output,
- ], env=env)
+ ], env=env, stdoutfile=args.isolated_script_test_chartjson_output)
+
+ # Now get the correct json format from the stdout to write to the
+ # perf results file
except Exception:
traceback.print_exc()
valid = False
@@ -124,3 +120,4 @@ if __name__ == '__main__':
}
sys.exit(common.run_script(sys.argv[1:], funcs))
sys.exit(main())
+
« no previous file with comments | « testing/scripts/common.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698