Changeset 112404 in webkit
- Timestamp:
- Mar 28, 2012 8:47:15 AM (12 years ago)
- Location:
- trunk/Tools
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Tools/ChangeLog
r112397 r112404 1 2012-03-28 Carlos Garcia Campos <cgarcia@igalia.com> 2 3 [GTK] Use gtester -s to skip individual test cases instead of unit tests as a whole 4 https://bugs.webkit.org/show_bug.cgi?id=82333 5 6 Reviewed by Martin Robinson. 7 8 * Scripts/run-gtk-tests: 9 (TestRunner.SkippedTest): Add SkippedTest class to store more 10 information about skipped tests. 11 (TestRunner._setup_testing_environment): Use SkippedTest to add 12 TestWebKitAccessibility to the skipped list. 13 (TestRunner._find_skipped_test): Return the SkippedTest object for 14 a given test path. 15 (TestRunner._test_cases_to_skip): Returns the list of test cases 16 that should be skipped for a given test path. 17 (TestRunner._should_run_test): Helper funtion to decide whether 18 the given test path should be run or not. Tests in the skipped 19 list that don't have a list of failing test cases are not run at 20 all. Tests in the skipped list that contain a list of test cases 21 are run with gtester -s to skip the individual test cases. 22 (TestRunner._run_test): Helper funtion to run a given test. 23 (TestRunner.run_tests): Build the list of tests to run based on 24 _should_run_test() and use helper function _run_test() to run 25 every test. 26 1 27 2012-03-28 Csaba Osztrogonác <ossy@webkit.org> 2 28 -
trunk/Tools/Scripts/run-gtk-tests
r112261 r112404 27 27 TIMEOUT=180 # seconds 28 28 29 class SkippedTest: 30 def __init__(self, test, reason, bug=None, test_cases=[]): 31 self.test = test 32 self.reason = reason 33 self.bug = bug 34 self.test_cases = test_cases 35 36 def __str__(self): 37 skipped_test_str = "%s" % self.test 38 if self.test_cases: 39 skipped_test_str += " [%s]" % ", ".join(self.test_cases) 40 skipped_test_str += ": %s " % self.reason 41 if self.bug is not None: 42 skipped_test_str += "(https://bugs.webkit.org/show_bug.cgi?id=%d)" % self.bug 43 return skipped_test_str 44 29 45 class TestRunner: 30 46 31 47 TEST_DIRS = [ "unittests", "WebKit2APITests" ] 32 # FIXME: https://bugs.webkit.org/show_bug.cgi?id=74717 48 33 49 SKIPPED = [ 34 # https://bugs.webkit.org/show_bug.cgi?id=82329 35 "unittests/testdownload", 36 # https://bugs.webkit.org/show_bug.cgi?id=82328 37 "unittests/testwebview", 38 # https://bugs.webkit.org/show_bug.cgi?id=82330 39 "unittests/testwebresource" 50 SkippedTest("unittests/testdownload", 51 "Test fails in GTK Linux 64-bit Release bot", 52 82329, 53 ["/webkit/download/not-found"]), 54 SkippedTest("unittests/testwebview", 55 "Test times out in GTK Linux 64-bit Release bot", 56 82328, 57 ["/webkit/webview/icon-uri"]), 58 SkippedTest("unittests/testwebresource", 59 "Test fails in GTK Linux 64-bit Release bot", 60 82330, 61 ["/webkit/webresource/sub_resource_loading"]) 40 62 ] 41 63 … … 166 188 if not self._start_accessibility_daemons(): 167 189 print "Could not start accessibility bus, so skipping TestWebKitAccessibility" 168 self._skipped_tests.append("TestWebKitAccessibility") 190 self._skipped_tests.append(SkippedTest("WebKit2APITests/TestWebKitAccessibility", 191 "Could not start accessibility bus")) 169 192 return True 170 193 … … 176 199 self._xvfb.kill(); 177 200 178 def _remove_skipped_tests(self): 179 tests_to_remove = [] 180 for test in self._tests: 181 for skipped in self._skipped_tests: 182 if test.find(skipped) != -1: 183 tests_to_remove.append(test) 184 continue 185 186 for test in tests_to_remove: 187 self._tests.remove(test) 188 print "Skipping %s" % test 201 def _find_skipped_test(self, test): 202 for skipped in self._skipped_tests: 203 if test.endswith(skipped.test): 204 return skipped 205 return None 206 207 def _test_cases_to_skip(self, test): 208 skipped = self._find_skipped_test(test) 209 if skipped is not None: 210 return skipped.test_cases 211 return [] 212 213 def _should_run_test(self, test): 214 skipped = self._find_skipped_test(test) 215 return skipped is None or skipped.test_cases 216 217 def _run_test(self, test): 218 tester_command = ['gtester'] 219 if self._options.verbose: 220 tester_command.append('--verbose') 221 for test_case in self._test_cases_to_skip(test): 222 tester_command.extend(['-s', test_case]) 223 tester_command.append(test) 224 225 return not self._create_process(tester_command, env=self._test_env).wait() 189 226 190 227 def run_tests(self): … … 199 236 # Remove skipped tests now instead of when we find them, because 200 237 # some tests might be skipped while setting up the test environment. 201 self._ remove_skipped_tests()238 self._tests = [test for test in self._tests if self._should_run_test(test)] 202 239 203 240 failed_tests = [] … … 205 242 start_time = time.time() 206 243 for test in self._tests: 207 tester_command = ['gtester', test] 208 if self._options.verbose: 209 tester_command.insert(1, '--verbose') 210 process = self._create_process(tester_command, env=self._test_env) 211 if process.wait(): 244 if not self._run_test(test): 212 245 failed_tests.append(test) 213 246 … … 221 254 222 255 if failed_tests: 223 names = [ os.path.basename(test) for test in failed_tests]256 names = [test.lstrip(self._programs_path) for test in failed_tests] 224 257 sys.stdout.write("Tests failed: %s\n" % ", ".join(names)) 258 sys.stdout.flush() 259 260 if self._skipped_tests: 261 sys.stdout.write("Tests skipped:\n%s\n" % "\n".join([str(skipped) for skipped in self._skipped_tests])) 225 262 sys.stdout.flush() 226 263
Note: See TracChangeset
for help on using the changeset viewer.