Chromium Code Reviews| 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..49a8628d3f9d04245f2eb322ce72a51f03239ce3 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 isolate non-Telemetry perf test . |
|
Ken Russell (switch to Gerrit)
2016/10/21 18:50:21
Suggest "isolate bundled" or "isolated".
eyaich1
2016/10/24 13:28:55
Done.
|
| -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,19 @@ 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) |
| except Exception: |
| traceback.print_exc() |
| valid = False |