OLD | NEW |
1 # Copyright (C) 2010 Google Inc. All rights reserved. | 1 # Copyright (C) 2010 Google Inc. All rights reserved. |
2 # Copyright (C) 2010 Gabor Rapcsanyi (rgabor@inf.u-szeged.hu), University of Sze
ged | 2 # Copyright (C) 2010 Gabor Rapcsanyi (rgabor@inf.u-szeged.hu), University of Sze
ged |
3 # | 3 # |
4 # Redistribution and use in source and binary forms, with or without | 4 # Redistribution and use in source and binary forms, with or without |
5 # modification, are permitted provided that the following conditions are | 5 # modification, are permitted provided that the following conditions are |
6 # met: | 6 # met: |
7 # | 7 # |
8 # * Redistributions of source code must retain the above copyright | 8 # * Redistributions of source code must retain the above copyright |
9 # notice, this list of conditions and the following disclaimer. | 9 # notice, this list of conditions and the following disclaimer. |
10 # * Redistributions in binary form must reproduce the above | 10 # * Redistributions in binary form must reproduce the above |
(...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
206 | 206 |
207 exit_code = summarized_failing_results['num_regressions'] | 207 exit_code = summarized_failing_results['num_regressions'] |
208 if exit_code > exit_codes.MAX_FAILURES_EXIT_STATUS: | 208 if exit_code > exit_codes.MAX_FAILURES_EXIT_STATUS: |
209 _log.warning('num regressions (%d) exceeds max exit status (%d)', | 209 _log.warning('num regressions (%d) exceeds max exit status (%d)', |
210 exit_code, exit_codes.MAX_FAILURES_EXIT_STATUS) | 210 exit_code, exit_codes.MAX_FAILURES_EXIT_STATUS) |
211 exit_code = exit_codes.MAX_FAILURES_EXIT_STATUS | 211 exit_code = exit_codes.MAX_FAILURES_EXIT_STATUS |
212 | 212 |
213 if not self._options.dry_run: | 213 if not self._options.dry_run: |
214 self._write_json_files(summarized_full_results, summarized_failing_r
esults, initial_results, running_all_tests) | 214 self._write_json_files(summarized_full_results, summarized_failing_r
esults, initial_results, running_all_tests) |
215 | 215 |
216 if self._options.write_full_results_to: | |
217 self._filesystem.copyfile(self._filesystem.join(self._results_di
rectory, "full_results.json"), | |
218 self._options.write_full_results_to) | |
219 | |
220 self._upload_json_files() | 216 self._upload_json_files() |
221 | 217 |
222 results_path = self._filesystem.join(self._results_directory, "resul
ts.html") | 218 results_path = self._filesystem.join(self._results_directory, "resul
ts.html") |
223 self._copy_results_html_file(results_path) | 219 self._copy_results_html_file(results_path) |
224 if initial_results.keyboard_interrupted: | 220 if initial_results.keyboard_interrupted: |
225 exit_code = exit_codes.INTERRUPTED_EXIT_STATUS | 221 exit_code = exit_codes.INTERRUPTED_EXIT_STATUS |
226 else: | 222 else: |
227 if initial_results.interrupted: | 223 if initial_results.interrupted: |
228 exit_code = exit_codes.EARLY_EXIT_STATUS | 224 exit_code = exit_codes.EARLY_EXIT_STATUS |
229 if self._options.show_results and ( | 225 if self._options.show_results and ( |
(...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
488 self._filesystem.write_text_file(stats_path, json.dumps(stats_trie)) | 484 self._filesystem.write_text_file(stats_path, json.dumps(stats_trie)) |
489 | 485 |
490 full_results_path = self._filesystem.join(self._results_directory, "full
_results.json") | 486 full_results_path = self._filesystem.join(self._results_directory, "full
_results.json") |
491 json_results_generator.write_json(self._filesystem, summarized_full_resu
lts, full_results_path) | 487 json_results_generator.write_json(self._filesystem, summarized_full_resu
lts, full_results_path) |
492 | 488 |
493 full_results_path = self._filesystem.join(self._results_directory, "fail
ing_results.json") | 489 full_results_path = self._filesystem.join(self._results_directory, "fail
ing_results.json") |
494 # We write failing_results.json out as jsonp because we need to load it | 490 # We write failing_results.json out as jsonp because we need to load it |
495 # from a file url for results.html and Chromium doesn't allow that. | 491 # from a file url for results.html and Chromium doesn't allow that. |
496 json_results_generator.write_json(self._filesystem, summarized_failing_r
esults, full_results_path, callback="ADD_RESULTS") | 492 json_results_generator.write_json(self._filesystem, summarized_failing_r
esults, full_results_path, callback="ADD_RESULTS") |
497 | 493 |
| 494 # Write out the JSON files suitable for other tools to process. |
| 495 # As the output can be quite large (as there are 60k+ tests) we also |
| 496 # support only outputting the failing results. |
| 497 if self._options.json_failing_test_results: |
| 498 # FIXME(tansell): Make sure this includes an *unexpected* results |
| 499 # (IE Passing when expected to be failing.) |
| 500 json_results_generator.write_json(self._filesystem, summarized_faili
ng_results, self._options.json_failing_test_results) |
498 if self._options.json_test_results: | 501 if self._options.json_test_results: |
499 json_results_generator.write_json(self._filesystem, summarized_faili
ng_results, self._options.json_test_results) | 502 json_results_generator.write_json(self._filesystem, summarized_full_
results, self._options.json_test_results) |
500 | 503 |
501 _log.debug("Finished writing JSON files.") | 504 _log.debug("Finished writing JSON files.") |
502 | 505 |
503 def _upload_json_files(self): | 506 def _upload_json_files(self): |
504 if not self._options.test_results_server: | 507 if not self._options.test_results_server: |
505 return | 508 return |
506 | 509 |
507 if not self._options.master_name: | 510 if not self._options.master_name: |
508 _log.error("--test-results-server was set, but --master-name was not
. Not uploading JSON files.") | 511 _log.error("--test-results-server was set, but --master-name was not
. Not uploading JSON files.") |
509 return | 512 return |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
546 | 549 |
547 stats = {} | 550 stats = {} |
548 for result in initial_results.results_by_name.values(): | 551 for result in initial_results.results_by_name.values(): |
549 if result.type != test_expectations.SKIP: | 552 if result.type != test_expectations.SKIP: |
550 stats[result.test_name] = {'results': (_worker_number(result.wor
ker_name), result.test_number, result.pid, int( | 553 stats[result.test_name] = {'results': (_worker_number(result.wor
ker_name), result.test_number, result.pid, int( |
551 result.test_run_time * 1000), int(result.total_run_time * 10
00))} | 554 result.test_run_time * 1000), int(result.total_run_time * 10
00))} |
552 stats_trie = {} | 555 stats_trie = {} |
553 for name, value in stats.iteritems(): | 556 for name, value in stats.iteritems(): |
554 json_results_generator.add_path_to_trie(name, value, stats_trie) | 557 json_results_generator.add_path_to_trie(name, value, stats_trie) |
555 return stats_trie | 558 return stats_trie |
OLD | NEW |