https://bugs.webkit.org/show_bug.cgi?id=77506
Reviewed by Hajime Morita.
PerformanceTests:
* resources/init.html: Added.
Tools:
Load an initialization page before each test after starting a DRT so that
warming up DRT won't affect the performance test results.
* Scripts/webkitpy/performance_tests/perftestsrunner.py:
(PerfTestsRunner):
(PerfTestsRunner.__init__):
(PerfTestsRunner._run_tests_set):
(PerfTestsRunner._run_single_test):
* Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py:
(MainTest.TestDriver.run_test):
(test_initial_page_loaded):
(test_initial_page_loaded.run_test):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@106543
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
+2012-02-02 Ryosuke Niwa <rniwa@webkit.org>
+
+ [PerformanceTests] tests have dependencies
+ https://bugs.webkit.org/show_bug.cgi?id=77506
+
+ Reviewed by Hajime Morita.
+
+ * resources/init.html: Added.
+
2012-02-01 Ryosuke Niwa <rniwa@webkit.org>
Fix after r106386. The empty anchor element was generating an erroneous whitespace.
--- /dev/null
+<!DOCTYPE html>
+<html>
+<body>
+<p>This file is used by run-perf-tests between each test to marginalize the dependency between tests.
+This file is not intended to be opened on a browser.</p>
+<script>
+
+if (window.layoutTestController) {
+ GCController.collect();
+ layoutTestController.dumpAsText();
+ layoutTestController.waitUntilDone();
+ // Give 5 seconds to cleanup the mess the last page left.
+ setTimeout(function () { layoutTestController.notifyDone(); }, 5000);
+ document.querySelector('p').innerHTML = 'PASS';
+}
+
+
+</script>
+</body>
+</html>
2012-02-02 Ryosuke Niwa <rniwa@webkit.org>
+ [PerformanceTests] tests have dependencies
+ https://bugs.webkit.org/show_bug.cgi?id=77506
+
+ Reviewed by Hajime Morita.
+
+ Load an initialization page before each test after starting a DRT so that
+ warming up DRT won't affect the performance test results.
+
+ * Scripts/webkitpy/performance_tests/perftestsrunner.py:
+ (PerfTestsRunner):
+ (PerfTestsRunner.__init__):
+ (PerfTestsRunner._run_tests_set):
+ (PerfTestsRunner._run_single_test):
+ * Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py:
+ (MainTest.TestDriver.run_test):
+ (test_initial_page_loaded):
+ (test_initial_page_loaded.run_test):
+
+2012-02-02 Ryosuke Niwa <rniwa@webkit.org>
+
Re-land r106442 per Adam's suggestion. We'll do both restarting DRT and loading a fake test first.
* Scripts/webkitpy/performance_tests/perftestsrunner.py:
class PerfTestsRunner(object):
_perf_tests_base_dir = 'PerformanceTests'
+ _initial_page_relative_path = 'resources/init.html'
_test_directories_for_chromium_style_tests = ['inspector']
_default_branch = 'webkit-trunk'
_EXIT_CODE_BAD_BUILD = -1
self._printer = printing.Printer(self._port, self._options, regular_output, buildbot_output, configure_logging=False)
self._webkit_base_dir_len = len(self._port.webkit_base())
self._base_path = self._port.perf_tests_dir()
+ self._initial_page_path = self._host.filesystem.join(self._base_path, self._initial_page_relative_path)
self._results = {}
self._timestamp = time.time()
result_count = len(tests)
expected = 0
unexpected = 0
- driver = None
for test in tests:
driver = port.create_driver(worker_number=1, no_timeout=True)
def _run_single_test(self, test, driver, is_chromium_style):
test_failed = False
+ output = driver.run_test(DriverInput(self._initial_page_path, 10000, None, False))
+ if output.text != 'PASS\n':
+ self._printer.write('Initialization page failed to load.')
output = driver.run_test(DriverInput(test, self._options.time_out_ms, None, False))
if output.text == None:
text = ''
timeout = False
crash = False
- if driver_input.test_name.endswith('pass.html'):
+ if driver_input.test_name.endswith('init.html'):
+ text = 'PASS\n'
+ elif driver_input.test_name.endswith('pass.html'):
text = 'RESULT group_name: test_name= 42 ms'
elif driver_input.test_name.endswith('timeout.html'):
timeout = True
driver = MainTest.TestDriver()
return runner._run_single_test(test_name, driver, is_chromium_style=True)
+ def test_initial_page_loaded(self):
+ runner = self.create_runner()
+ driver = MainTest.TestDriver()
+ inputs = []
+
+ def run_test(input):
+ inputs.append(input)
+ if input.test_name.endswith('init.html'):
+ return DriverOutput('PASS\n', 'image output', 'some hash', None)
+ else:
+ return DriverOutput('RESULT group_name: test_name= 42 ms\n', 'image output', 'some hash', None)
+
+ driver.run_test = run_test
+ self.assertTrue(runner._run_single_test('pass.html', driver, is_chromium_style=True))
+ self.assertEqual(len(inputs), 2)
+ self.assertEqual(inputs[0].test_name, runner._base_path + '/resources/init.html')
+ self.assertEqual(inputs[1].test_name, 'pass.html')
+
def test_run_passing_test(self):
self.assertTrue(self.run_test('pass.html'))