Changeset 106442 in webkit
- Timestamp:
- Feb 1, 2012 1:15:18 AM (12 years ago)
- Location:
- trunk/Tools
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Tools/ChangeLog
r106438 r106442 1 2012-02-01 Ryosuke Niwa <rniwa@webkit.org> 2 3 run-perf-tests should restart DRT for each test 4 https://bugs.webkit.org/show_bug.cgi?id=77506 5 6 Reviewed by Adam Barth. 7 8 Always restart DRT when running performance tests in order to minimize the dependency between tests. 9 10 * Scripts/webkitpy/layout_tests/port/chromium.py: 11 (ChromiumDriver.stop): 12 * Scripts/webkitpy/performance_tests/perftestsrunner.py: 13 (PerfTestsRunner._run_tests_set): 14 (PerfTestsRunner._run_single_test): 15 * Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py: 16 (create_runner): 17 (test_run_passing_test): 18 (test_run_silent_test): 19 (test_run_failed_test): 20 (test_run_tonguey_test): 21 (test_run_timeout_test): 22 (test_run_crash_test): 23 (test_run_test_set_kills_drt_per_run): 24 (test_run_test_set_kills_drt_per_run.TestDriverWithStopCount): 25 (test_run_test_set_kills_drt_per_run.TestDriverWithStopCount.__init__): 26 (test_run_test_set_kills_drt_per_run.TestDriverWithStopCount.stop): 27 1 28 2012-01-31 Hans Wennborg <hans@chromium.org> 2 29 -
trunk/Tools/Scripts/webkitpy/layout_tests/port/chromium.py
r105443 r106442 604 604 self._proc.stderr.close() 605 605 time_out_ms = self._port.get_option('time_out_ms') 606 if time_out_ms: 606 if time_out_ms and not self._no_timeout: 607 # FIXME: Port object shouldn't be dependent on layout test manager. 607 608 kill_timeout_seconds = 3.0 * int(time_out_ms) / Manager.DEFAULT_TEST_TIMEOUT_MS 608 609 else: -
trunk/Tools/Scripts/webkitpy/performance_tests/perftestsrunner.py
r106409 r106442 1 1 #!/usr/bin/env python 2 # Copyright (C) 201 1Google Inc. All rights reserved.2 # Copyright (C) 2012 Google Inc. All rights reserved. 3 3 # 4 4 # Redistribution and use in source and binary forms, with or without … … 203 203 expected = 0 204 204 unexpected = 0 205 driver_need_restart = False206 driver = None207 205 208 206 for test in tests: 209 if driver_need_restart: 210 _log.error("%s killing driver" % test) 211 driver.stop() 212 driver = None 213 if not driver: 214 driver = port.create_driver(worker_number=1, no_timeout=True) 207 driver = port.create_driver(worker_number=1, no_timeout=True) 215 208 216 209 relative_test_path = self._host.filesystem.relpath(test, self._base_path) … … 218 211 219 212 is_chromium_style = self._host.filesystem.split(relative_test_path)[0] in self._test_directories_for_chromium_style_tests 220 test_failed, driver_need_restart = self._run_single_test(test, driver, is_chromium_style) 221 if test_failed: 213 if self._run_single_test(test, driver, is_chromium_style): 214 expected = expected + 1 215 else: 222 216 unexpected = unexpected + 1 223 else:224 expected = expected + 1225 217 226 218 self._printer.write('') 227 219 228 if driver:229 220 driver.stop() 230 221 … … 291 282 def _run_single_test(self, test, driver, is_chromium_style): 292 283 test_failed = False 293 driver_need_restart = False294 284 output = driver.run_test(DriverInput(test, self._options.time_out_ms, None, False)) 295 285 … … 299 289 self._printer.write('timeout: %s' % test[self._webkit_base_dir_len + 1:]) 300 290 test_failed = True 301 driver_need_restart = True302 291 elif output.crash: 303 292 self._printer.write('crash: %s' % test[self._webkit_base_dir_len + 1:]) 304 driver_need_restart = True305 293 test_failed = True 306 294 else: … … 317 305 self._printer.write('FAILED') 318 306 319 return test_failed, driver_need_restart307 return not test_failed -
trunk/Tools/Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py
r106062 r106442 1 1 #!/usr/bin/python 2 # Copyright (C) 201 1Google Inc. All rights reserved.2 # Copyright (C) 2012 Google Inc. All rights reserved. 3 3 # 4 4 # Redistribution and use in source and binary forms, with or without … … 105 105 """do nothing""" 106 106 107 def create_runner(self, buildbot_output=None, args=[], regular_output=None ):107 def create_runner(self, buildbot_output=None, args=[], regular_output=None, driver_class=TestDriver): 108 108 buildbot_output = buildbot_output or array_stream.ArrayStream() 109 109 regular_output = regular_output or array_stream.ArrayStream() … … 111 111 options, parsed_args = PerfTestsRunner._parse_args(args) 112 112 test_port = TestPort(host=MockHost(), options=options) 113 test_port.create_driver = lambda worker_number=None, no_timeout=False: MainTest.TestDriver()113 test_port.create_driver = lambda worker_number=None, no_timeout=False: driver_class() 114 114 115 115 runner = PerfTestsRunner(regular_output, buildbot_output, args=args, port=test_port) … … 125 125 126 126 def test_run_passing_test(self): 127 test_failed, driver_need_restart = self.run_test('pass.html') 128 self.assertFalse(test_failed) 129 self.assertFalse(driver_need_restart) 127 self.assertTrue(self.run_test('pass.html')) 130 128 131 129 def test_run_silent_test(self): 132 test_failed, driver_need_restart = self.run_test('silent.html') 133 self.assertTrue(test_failed) 134 self.assertFalse(driver_need_restart) 130 self.assertFalse(self.run_test('silent.html')) 135 131 136 132 def test_run_failed_test(self): 137 test_failed, driver_need_restart = self.run_test('failed.html') 138 self.assertTrue(test_failed) 139 self.assertFalse(driver_need_restart) 133 self.assertFalse(self.run_test('failed.html')) 140 134 141 135 def test_run_tonguey_test(self): 142 test_failed, driver_need_restart = self.run_test('tonguey.html') 143 self.assertTrue(test_failed) 144 self.assertFalse(driver_need_restart) 136 self.assertFalse(self.run_test('tonguey.html')) 145 137 146 138 def test_run_timeout_test(self): 147 test_failed, driver_need_restart = self.run_test('timeout.html') 148 self.assertTrue(test_failed) 149 self.assertTrue(driver_need_restart) 139 self.assertFalse(self.run_test('timeout.html')) 150 140 151 141 def test_run_crash_test(self): 152 test_failed, driver_need_restart = self.run_test('crash.html') 153 self.assertTrue(test_failed) 154 self.assertTrue(driver_need_restart) 142 self.assertFalse(self.run_test('crash.html')) 155 143 156 144 def test_run_test_set(self): … … 164 152 self.assertEqual(len(buildbot_output.get()), 1) 165 153 self.assertEqual(buildbot_output.get()[0], 'RESULT group_name: test_name= 42 ms\n') 154 155 def test_run_test_set_kills_drt_per_run(self): 156 157 class TestDriverWithStopCount(MainTest.TestDriver): 158 stop_count = 0 159 160 def __init__(self): 161 TestDriverWithStopCount.sotp_count = 0 162 163 def stop(self): 164 TestDriverWithStopCount.stop_count += 1 165 166 buildbot_output = array_stream.ArrayStream() 167 runner = self.create_runner(buildbot_output, driver_class=TestDriverWithStopCount) 168 169 dirname = runner._base_path + '/inspector/' 170 tests = [dirname + 'pass.html', dirname + 'silent.html', dirname + 'failed.html', 171 dirname + 'tonguey.html', dirname + 'timeout.html', dirname + 'crash.html'] 172 173 unexpected_result_count = runner._run_tests_set(tests, runner._port) 174 self.assertEqual(TestDriverWithStopCount.stop_count, 6) 166 175 167 176 def test_run_test_set_for_parser_tests(self):
Note: See TracChangeset
for help on using the changeset viewer.