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 |