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

Side by Side Diff: testing/scripts/run_gtest_perf_test.py

Issue 2546443002: Returning correct failure code on swarmed perf test run. (Closed)
Patch Set: Remove extra line Created 4 years 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 unified diff | Download patch
« no previous file with comments | « testing/scripts/OWNERS ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright 2015 The Chromium Authors. All rights reserved. 2 # Copyright 2015 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 """Runs an isolated non-Telemetry perf test . 6 """Runs an isolated non-Telemetry perf test .
7 7
8 The main contract is that the caller passes the arguments: 8 The main contract is that the caller passes the arguments:
9 9
10 --isolated-script-test-output=[FILENAME] 10 --isolated-script-test-output=[FILENAME]
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
75 # Assume we want to set up the sandbox environment variables all the 75 # Assume we want to set up the sandbox environment variables all the
76 # time; doing so is harmless on non-Linux platforms and is needed 76 # time; doing so is harmless on non-Linux platforms and is needed
77 # all the time on Linux. 77 # all the time on Linux.
78 env[CHROME_SANDBOX_ENV] = CHROME_SANDBOX_PATH 78 env[CHROME_SANDBOX_ENV] = CHROME_SANDBOX_PATH
79 if args.xvfb and xvfb.should_start_xvfb(env): 79 if args.xvfb and xvfb.should_start_xvfb(env):
80 xvfb_proc, openbox_proc, xcompmgr_proc = xvfb.start_xvfb(env=env, 80 xvfb_proc, openbox_proc, xcompmgr_proc = xvfb.start_xvfb(env=env,
81 build_dir='.') 81 build_dir='.')
82 assert xvfb_proc and openbox_proc and xcompmgr_proc, 'Failed to start xvfb' 82 assert xvfb_proc and openbox_proc and xcompmgr_proc, 'Failed to start xvfb'
83 83
84 try: 84 try:
85 valid = True
86 rc = 0 85 rc = 0
87 try: 86 try:
88 executable = rest_args[0] 87 executable = rest_args[0]
89 extra_flags = [] 88 extra_flags = []
90 if len(rest_args) > 1: 89 if len(rest_args) > 1:
91 extra_flags = rest_args[1:] 90 extra_flags = rest_args[1:]
92 if IsWindows(): 91 if IsWindows():
93 executable = '.\%s.exe' % executable 92 executable = '.\%s.exe' % executable
94 else: 93 else:
95 executable = './%s' % executable 94 executable = './%s' % executable
96 with common.temporary_file() as tempfile_path: 95 with common.temporary_file() as tempfile_path:
97 valid = (common.run_command_with_output([executable] + extra_flags, 96 rc = common.run_command_with_output([executable] + extra_flags,
98 env=env, stdoutfile=tempfile_path) == 0) 97 env=env, stdoutfile=tempfile_path)
99 98
100 # Now get the correct json format from the stdout to write to the 99 # Now get the correct json format from the stdout to write to the
101 # perf results file 100 # perf results file
102 results_processor = ( 101 results_processor = (
103 generate_legacy_perf_dashboard_json.LegacyResultsProcessor()) 102 generate_legacy_perf_dashboard_json.LegacyResultsProcessor())
104 charts = results_processor.GenerateJsonResults(tempfile_path) 103 charts = results_processor.GenerateJsonResults(tempfile_path)
105 # Write the returned encoded json to a the charts output file 104 # Write the returned encoded json to a the charts output file
106 with open(args.isolated_script_test_chartjson_output, 'w') as f: 105 with open(args.isolated_script_test_chartjson_output, 'w') as f:
107 f.write(charts) 106 f.write(charts)
108 except Exception: 107 except Exception:
109 traceback.print_exc() 108 traceback.print_exc()
110 valid = False 109 rc = 1
111 110
111 valid = (rc == 0)
112 failures = [] if valid else ['(entire test suite)'] 112 failures = [] if valid else ['(entire test suite)']
113 with open(args.isolated_script_test_output, 'w') as fp: 113 with open(args.isolated_script_test_output, 'w') as fp:
114 json.dump({ 114 json.dump({
115 'valid': valid, 115 'valid': valid,
116 'failures': failures, 116 'failures': failures,
117 }, fp) 117 }, fp)
118 118
119 return rc 119 return rc
120 120
121 finally: 121 finally:
(...skipping 11 matching lines...) Expand all
133 if __name__ == '__main__': 133 if __name__ == '__main__':
134 # Conform minimally to the protocol defined by ScriptTest. 134 # Conform minimally to the protocol defined by ScriptTest.
135 if 'compile_targets' in sys.argv: 135 if 'compile_targets' in sys.argv:
136 funcs = { 136 funcs = {
137 'run': None, 137 'run': None,
138 'compile_targets': main_compile_targets, 138 'compile_targets': main_compile_targets,
139 } 139 }
140 sys.exit(common.run_script(sys.argv[1:], funcs)) 140 sys.exit(common.run_script(sys.argv[1:], funcs))
141 sys.exit(main()) 141 sys.exit(main())
142 142
OLDNEW
« no previous file with comments | « testing/scripts/OWNERS ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698