Chromium Code Reviews| 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 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 78 self._printer = printer | 78 self._printer = printer |
| 79 self._expectations = None | 79 self._expectations = None |
| 80 | 80 |
| 81 self.HTTP_SUBDIR = 'http' + port.TEST_PATH_SEPARATOR | 81 self.HTTP_SUBDIR = 'http' + port.TEST_PATH_SEPARATOR |
| 82 self.INSPECTOR_SUBDIR = 'inspector' + port.TEST_PATH_SEPARATOR | 82 self.INSPECTOR_SUBDIR = 'inspector' + port.TEST_PATH_SEPARATOR |
| 83 self.PERF_SUBDIR = 'perf' | 83 self.PERF_SUBDIR = 'perf' |
| 84 self.WEBSOCKET_SUBDIR = 'websocket' + port.TEST_PATH_SEPARATOR | 84 self.WEBSOCKET_SUBDIR = 'websocket' + port.TEST_PATH_SEPARATOR |
| 85 self.LAYOUT_TESTS_DIRECTORY = 'LayoutTests' | 85 self.LAYOUT_TESTS_DIRECTORY = 'LayoutTests' |
| 86 self.ARCHIVED_RESULTS_LIMIT = 25 | 86 self.ARCHIVED_RESULTS_LIMIT = 25 |
| 87 self._http_server_started = False | 87 self._http_server_started = False |
| 88 self._wptserve_started = False | |
| 88 self._websockets_server_started = False | 89 self._websockets_server_started = False |
| 89 | 90 |
| 90 self._results_directory = self._port.results_directory() | 91 self._results_directory = self._port.results_directory() |
| 91 self._finder = LayoutTestFinder(self._port, self._options) | 92 self._finder = LayoutTestFinder(self._port, self._options) |
| 92 self._runner = LayoutTestRunner(self._options, self._port, self._printer , self._results_directory, self._test_is_slow) | 93 self._runner = LayoutTestRunner(self._options, self._port, self._printer , self._results_directory, self._test_is_slow) |
| 93 | 94 |
| 94 def _collect_tests(self, args): | 95 def _collect_tests(self, args): |
| 95 return self._finder.find_tests(self._options, args) | 96 return self._finder.find_tests(self._options, args) |
| 96 | 97 |
| 97 def _is_http_test(self, test): | 98 def _is_http_test(self, test): |
| 99 if self._port.is_wpt_enabled() and self._port.is_wpt_test(test): | |
| 100 return False | |
|
Dirk Pranke
2015/06/11 23:17:01
I'm confused, when would a test be both an http te
burnik
2015/06/12 01:40:53
Whenever a test path matches *http/
e.g. imported
| |
| 101 | |
| 98 return self.HTTP_SUBDIR in test or self._is_websocket_test(test) | 102 return self.HTTP_SUBDIR in test or self._is_websocket_test(test) |
| 99 | 103 |
| 100 def _is_inspector_test(self, test): | 104 def _is_inspector_test(self, test): |
| 101 return self.INSPECTOR_SUBDIR in test | 105 return self.INSPECTOR_SUBDIR in test |
| 102 | 106 |
| 103 def _is_websocket_test(self, test): | 107 def _is_websocket_test(self, test): |
| 108 if self._port.is_wpt_enabled() and self._port.is_wpt_test(test): | |
| 109 return False | |
| 110 | |
| 104 return self.WEBSOCKET_SUBDIR in test | 111 return self.WEBSOCKET_SUBDIR in test |
| 105 | 112 |
| 106 def _http_tests(self, test_names): | 113 def _http_tests(self, test_names): |
| 107 return set(test for test in test_names if self._is_http_test(test)) | 114 return set(test for test in test_names if self._is_http_test(test)) |
| 108 | 115 |
| 109 def _is_perf_test(self, test): | 116 def _is_perf_test(self, test): |
| 110 return self.PERF_SUBDIR == test or (self.PERF_SUBDIR + self._port.TEST_P ATH_SEPARATOR) in test | 117 return self.PERF_SUBDIR == test or (self.PERF_SUBDIR + self._port.TEST_P ATH_SEPARATOR) in test |
| 111 | 118 |
| 112 def _prepare_lists(self, paths, test_names): | 119 def _prepare_lists(self, paths, test_names): |
| 113 tests_to_skip = self._finder.skip_tests(paths, test_names, self._expecta tions, self._http_tests(test_names)) | 120 tests_to_skip = self._finder.skip_tests(paths, test_names, self._expecta tions, self._http_tests(test_names)) |
| (...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 325 def _run_tests(self, tests_to_run, tests_to_skip, repeat_each, iterations, n um_workers, retrying): | 332 def _run_tests(self, tests_to_run, tests_to_skip, repeat_each, iterations, n um_workers, retrying): |
| 326 | 333 |
| 327 test_inputs = [] | 334 test_inputs = [] |
| 328 for _ in xrange(iterations): | 335 for _ in xrange(iterations): |
| 329 for test in tests_to_run: | 336 for test in tests_to_run: |
| 330 for _ in xrange(repeat_each): | 337 for _ in xrange(repeat_each): |
| 331 test_inputs.append(self._test_input_for_file(test)) | 338 test_inputs.append(self._test_input_for_file(test)) |
| 332 return self._runner.run_tests(self._expectations, test_inputs, tests_to_ skip, num_workers, retrying) | 339 return self._runner.run_tests(self._expectations, test_inputs, tests_to_ skip, num_workers, retrying) |
| 333 | 340 |
| 334 def _start_servers(self, tests_to_run): | 341 def _start_servers(self, tests_to_run): |
| 342 if self._port.is_wpt_enabled() and any(self._port.is_wpt_test(test) for test in tests_to_run): | |
| 343 self._printer.write_update('Starting WPTServe ...') | |
| 344 self._port.start_wptserve() | |
| 345 self._wptserve_started = True | |
| 346 | |
| 335 if self._port.requires_http_server() or any((self._is_http_test(test) or self._is_inspector_test(test)) for test in tests_to_run): | 347 if self._port.requires_http_server() or any((self._is_http_test(test) or self._is_inspector_test(test)) for test in tests_to_run): |
| 336 self._printer.write_update('Starting HTTP server ...') | 348 self._printer.write_update('Starting HTTP server ...') |
| 337 self._port.start_http_server(additional_dirs={}, number_of_drivers=s elf._options.max_locked_shards) | 349 self._port.start_http_server(additional_dirs={}, number_of_drivers=s elf._options.max_locked_shards) |
| 338 self._http_server_started = True | 350 self._http_server_started = True |
| 339 | 351 |
| 340 if any(self._is_websocket_test(test) for test in tests_to_run): | 352 if any(self._is_websocket_test(test) for test in tests_to_run): |
| 341 self._printer.write_update('Starting WebSocket server ...') | 353 self._printer.write_update('Starting WebSocket server ...') |
| 342 self._port.start_websocket_server() | 354 self._port.start_websocket_server() |
| 343 self._websockets_server_started = True | 355 self._websockets_server_started = True |
| 344 | 356 |
| 345 def _stop_servers(self): | 357 def _stop_servers(self): |
| 358 if self._wptserve_started: | |
| 359 self._printer.write_update('Stopping WPTServe ...') | |
| 360 self._wptserve_started = False | |
| 361 self._port.stop_wptserve() | |
| 346 if self._http_server_started: | 362 if self._http_server_started: |
| 347 self._printer.write_update('Stopping HTTP server ...') | 363 self._printer.write_update('Stopping HTTP server ...') |
| 348 self._http_server_started = False | 364 self._http_server_started = False |
| 349 self._port.stop_http_server() | 365 self._port.stop_http_server() |
| 350 if self._websockets_server_started: | 366 if self._websockets_server_started: |
| 351 self._printer.write_update('Stopping WebSocket server ...') | 367 self._printer.write_update('Stopping WebSocket server ...') |
| 352 self._websockets_server_started = False | 368 self._websockets_server_started = False |
| 353 self._port.stop_websocket_server() | 369 self._port.stop_websocket_server() |
| 354 | 370 |
| 355 def _clean_up_run(self): | 371 def _clean_up_run(self): |
| (...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 496 return int(worker_name.split('/')[1]) if worker_name else -1 | 512 return int(worker_name.split('/')[1]) if worker_name else -1 |
| 497 | 513 |
| 498 stats = {} | 514 stats = {} |
| 499 for result in initial_results.results_by_name.values(): | 515 for result in initial_results.results_by_name.values(): |
| 500 if result.type != test_expectations.SKIP: | 516 if result.type != test_expectations.SKIP: |
| 501 stats[result.test_name] = {'results': (_worker_number(result.wor ker_name), result.test_number, result.pid, int(result.test_run_time * 1000), int (result.total_run_time * 1000))} | 517 stats[result.test_name] = {'results': (_worker_number(result.wor ker_name), result.test_number, result.pid, int(result.test_run_time * 1000), int (result.total_run_time * 1000))} |
| 502 stats_trie = {} | 518 stats_trie = {} |
| 503 for name, value in stats.iteritems(): | 519 for name, value in stats.iteritems(): |
| 504 json_results_generator.add_path_to_trie(name, value, stats_trie) | 520 json_results_generator.add_path_to_trie(name, value, stats_trie) |
| 505 return stats_trie | 521 return stats_trie |
| OLD | NEW |