| 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())
|
| +
|
|
|