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

Side by Side Diff: webkit/tools/layout_tests/run_webkit_tests.py

Issue 146112: Allow layout tests to be located both in src/webkit/data/layout_tests and... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 5 months 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 | Annotate | Revision Log
« no previous file with comments | « webkit/tools/layout_tests/rebaseline.py ('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 #!/bin/env python 1 #!/bin/env python
2 # Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2006-2008 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 """Run layout tests using the test_shell. 6 """Run layout tests using the test_shell.
7 7
8 This is a port of the existing webkit test script run-webkit-tests. 8 This is a port of the existing webkit test script run-webkit-tests.
9 9
10 The TestRunner class runs a series of tests (TestType interface) against a set 10 The TestRunner class runs a series of tests (TestType interface) against a set
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
139 self._http_server.Stop() 139 self._http_server.Stop()
140 140
141 def _GatherTestFiles(self, paths): 141 def _GatherTestFiles(self, paths):
142 """Generate a set of test files and place them in self._test_files 142 """Generate a set of test files and place them in self._test_files
143 143
144 Args: 144 Args:
145 paths: a list of command line paths relative to the webkit/tests 145 paths: a list of command line paths relative to the webkit/tests
146 directory. glob patterns are ok. 146 directory. glob patterns are ok.
147 """ 147 """
148 paths_to_walk = set() 148 paths_to_walk = set()
149 # if paths is empty, provide a pre-defined list.
150 if not paths:
151 paths = TestRunner._shardable_directories
149 for path in paths: 152 for path in paths:
150 # If there's an * in the name, assume it's a glob pattern. 153 # If there's an * in the name, assume it's a glob pattern.
151 path = os.path.join(path_utils.LayoutDataDir(), path) 154 path = os.path.join(path_utils.LayoutTestsDir(path), path)
152 if path.find('*') > -1: 155 if path.find('*') > -1:
153 filenames = glob.glob(path) 156 filenames = glob.glob(path)
154 paths_to_walk.update(filenames) 157 paths_to_walk.update(filenames)
155 else: 158 else:
156 paths_to_walk.add(path) 159 paths_to_walk.add(path)
157 160
158 # Now walk all the paths passed in on the command line and get filenames 161 # Now walk all the paths passed in on the command line and get filenames
159 for path in paths_to_walk: 162 for path in paths_to_walk:
160 if os.path.isfile(path) and self._HasSupportedExtension(path): 163 if os.path.isfile(path) and self._HasSupportedExtension(path):
161 self._test_files.add(os.path.normpath(path)) 164 self._test_files.add(os.path.normpath(path))
(...skipping 507 matching lines...) Expand 10 before | Expand all | Expand 10 after
669 print 672 print
670 self._PrintTestListTiming("Tests marked as SLOW:", slow_tests) 673 self._PrintTestListTiming("Tests marked as SLOW:", slow_tests)
671 print 674 print
672 self._PrintTestListTiming("Tests that timed out or crashed:", 675 self._PrintTestListTiming("Tests that timed out or crashed:",
673 timeout_or_crash_tests) 676 timeout_or_crash_tests)
674 print 677 print
675 678
676 def _PrintTestListTiming(self, title, test_list): 679 def _PrintTestListTiming(self, title, test_list):
677 logging.debug(title) 680 logging.debug(title)
678 for test_tuple in test_list: 681 for test_tuple in test_list:
679 filename = test_tuple.filename[len(path_utils.LayoutDataDir()) + 1:] 682 filename = test_tuple.filename[len(path_utils.LayoutTestsDir()) + 1:]
680 filename = filename.replace('\\', '/') 683 filename = filename.replace('\\', '/')
681 test_run_time = round(test_tuple.test_run_time, 1) 684 test_run_time = round(test_tuple.test_run_time, 1)
682 logging.debug("%s took %s seconds" % (filename, test_run_time)) 685 logging.debug("%s took %s seconds" % (filename, test_run_time))
683 686
684 def _PrintDirectoryTimings(self, directory_test_timings): 687 def _PrintDirectoryTimings(self, directory_test_timings):
685 timings = [] 688 timings = []
686 for directory in directory_test_timings: 689 for directory in directory_test_timings:
687 num_tests, time_for_directory = directory_test_timings[directory] 690 num_tests, time_for_directory = directory_test_timings[directory]
688 timings.append((round(time_for_directory, 1), directory, num_tests)) 691 timings.append((round(time_for_directory, 1), directory, num_tests))
689 timings.sort() 692 timings.sort()
(...skipping 305 matching lines...) Expand 10 before | Expand all | Expand 10 after
995 options.time_out_ms = str(2 * TestRunner.DEFAULT_TEST_TIMEOUT_MS) 998 options.time_out_ms = str(2 * TestRunner.DEFAULT_TEST_TIMEOUT_MS)
996 else: 999 else:
997 options.time_out_ms = str(TestRunner.DEFAULT_TEST_TIMEOUT_MS) 1000 options.time_out_ms = str(TestRunner.DEFAULT_TEST_TIMEOUT_MS)
998 1001
999 # Include all tests if none are specified. 1002 # Include all tests if none are specified.
1000 paths = args 1003 paths = args
1001 if not paths: 1004 if not paths:
1002 paths = [] 1005 paths = []
1003 if options.test_list: 1006 if options.test_list:
1004 paths += ReadTestFiles(options.test_list) 1007 paths += ReadTestFiles(options.test_list)
1005 if not paths:
1006 paths = ['.']
1007 1008
1008 test_runner = TestRunner(options, paths, platform_new_results_dir) 1009 test_runner = TestRunner(options, paths, platform_new_results_dir)
1009 1010
1010 if options.lint_test_files: 1011 if options.lint_test_files:
1011 # Just creating the TestRunner checks the syntax of the test lists. 1012 # Just creating the TestRunner checks the syntax of the test lists.
1012 print ("If there are no fail messages, errors or exceptions, then the " 1013 print ("If there are no fail messages, errors or exceptions, then the "
1013 "lint succeeded.") 1014 "lint succeeded.")
1014 return 1015 return
1015 1016
1016 try: 1017 try:
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
1144 option_parser.add_option("", "--run-part", 1145 option_parser.add_option("", "--run-part",
1145 default=None, 1146 default=None,
1146 help=("Run a specified part (n:m), the nth of m" 1147 help=("Run a specified part (n:m), the nth of m"
1147 " parts, of the layout tests")) 1148 " parts, of the layout tests"))
1148 option_parser.add_option("", "--batch-size", 1149 option_parser.add_option("", "--batch-size",
1149 default=None, 1150 default=None,
1150 help=("Run a the tests in batches (n), after every " 1151 help=("Run a the tests in batches (n), after every "
1151 "n tests, the test shell is relaunched.")) 1152 "n tests, the test shell is relaunched."))
1152 options, args = option_parser.parse_args() 1153 options, args = option_parser.parse_args()
1153 main(options, args) 1154 main(options, args)
OLDNEW
« no previous file with comments | « webkit/tools/layout_tests/rebaseline.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698