Diff
Modified: trunk/Tools/Scripts/webkitpy/layout_tests/controllers/single_test_runner.py (106221 => 106222)
--- trunk/Tools/Scripts/webkitpy/layout_tests/controllers/single_test_runner.py 2012-01-30 09:42:58 UTC (rev 106221)
+++ trunk/Tools/Scripts/webkitpy/layout_tests/controllers/single_test_runner.py 2012-01-30 10:06:15 UTC (rev 106222)
@@ -55,6 +55,7 @@
self._timeout = test_input.timeout
self._worker_name = worker_name
self._test_name = test_input.test_name
+ self._should_run_pixel_test = test_input.should_run_pixel_test
self._is_reftest = False
self._reference_files = port.reference_files(self._test_name)
@@ -77,6 +78,8 @@
self._port.expected_audio(self._test_name))
def _should_fetch_expected_checksum(self):
+ if not self._should_run_pixel_test:
+ return False
return (self._options.pixel_tests and
not (self._options.new_baseline or self._options.reset_results))
Modified: trunk/Tools/Scripts/webkitpy/layout_tests/controllers/worker.py (106221 => 106222)
--- trunk/Tools/Scripts/webkitpy/layout_tests/controllers/worker.py 2012-01-30 09:42:58 UTC (rev 106221)
+++ trunk/Tools/Scripts/webkitpy/layout_tests/controllers/worker.py 2012-01-30 10:06:15 UTC (rev 106222)
@@ -108,6 +108,9 @@
start_time = time.time()
num_tests = 0
for test_input in test_list:
+ # FIXME: DumpRenderTree should also supprort --skip-pixel-test-if-no-baseline.
+ if self._port.driver_name() == "WebKitTestRunner" and self._port.get_option('skip_pixel_test_if_no_baseline') and self._port.get_option('pixel_tests'):
+ test_input.should_run_pixel_test = (self._port.expected_image(test_input.test_name) != None)
self._run_test(test_input)
num_tests += 1
self._worker_connection.yield_to_broker()
Modified: trunk/Tools/Scripts/webkitpy/layout_tests/models/test_input.py (106221 => 106222)
--- trunk/Tools/Scripts/webkitpy/layout_tests/models/test_input.py 2012-01-30 09:42:58 UTC (rev 106221)
+++ trunk/Tools/Scripts/webkitpy/layout_tests/models/test_input.py 2012-01-30 10:06:15 UTC (rev 106222)
@@ -36,7 +36,7 @@
ref_file = None
is_mismatch_reftest = None
- def __init__(self, test_name, timeout):
+ def __init__(self, test_name, timeout, should_run_pixel_test=True):
"""Holds the input parameters for a test.
Args:
test: name of test (not an absolute path!)
@@ -46,6 +46,7 @@
"""
self.test_name = test_name
self.timeout = timeout
+ self.should_run_pixel_test = should_run_pixel_test
def __repr__(self):
return "TestInput('%s', %d)" % (self.test_name, self.timeout)
Modified: trunk/Tools/Scripts/webkitpy/layout_tests/run_webkit_tests.py (106221 => 106222)
--- trunk/Tools/Scripts/webkitpy/layout_tests/run_webkit_tests.py 2012-01-30 09:42:58 UTC (rev 106221)
+++ trunk/Tools/Scripts/webkitpy/layout_tests/run_webkit_tests.py 2012-01-30 10:06:15 UTC (rev 106222)
@@ -178,6 +178,9 @@
if options.ignore_metrics and (options.new_baseline or options.reset_results):
warnings.append("--ignore-metrics has no effect with --new-baselines or with --reset-results")
+ if options.skip_pixel_test_if_no_baseline and not options.pixel_tests:
+ warnings.append("--skip-pixel-test-if-no-baseline is only supported with -p (--pixel-tests)")
+
return warnings
@@ -314,6 +317,9 @@
optparse.make_option("--no-new-test-results", action=""
dest="new_test_results", default=True,
help="Don't create new baselines when no expected results exist"),
+ optparse.make_option("--skip-pixel-test-if-no-baseline", action=""
+ dest="skip_pixel_test_if_no_baseline", help="Do not generate and check pixel result in the case when "
+ "no image baseline is available for the test."),
optparse.make_option("--skip-failing-tests", action=""
default=False, help="Skip tests that are expected to fail. "
"Note: When using this option, you might miss new crashes "
Modified: trunk/Tools/Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py (106221 => 106222)
--- trunk/Tools/Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py 2012-01-30 09:42:58 UTC (rev 106221)
+++ trunk/Tools/Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py 2012-01-30 10:06:15 UTC (rev 106222)
@@ -385,6 +385,11 @@
tests_run = get_tests_run(['--repeat-each', '2'] + tests_to_run, tests_included=True, flatten_batches=True)
self.assertEquals(tests_run, ['passes/image.html', 'passes/image.html', 'passes/text.html', 'passes/text.html'])
+ def test_skip_pixel_test_if_no_baseline_option(self):
+ tests_to_run = ['passes/image.html', 'passes/text.html']
+ tests_run = get_tests_run(['--skip-pixel-test-if-no-baseline'] + tests_to_run, tests_included=True, flatten_batches=True)
+ self.assertEquals(tests_run, ['passes/image.html', 'passes/text.html'])
+
def test_iterations(self):
tests_to_run = ['passes/image.html', 'passes/text.html']
tests_run = get_tests_run(['--iterations', '2'] + tests_to_run, tests_included=True, flatten_batches=True)
Modified: trunk/Tools/WebKitTestRunner/TestInvocation.cpp (106221 => 106222)
--- trunk/Tools/WebKitTestRunner/TestInvocation.cpp 2012-01-30 09:42:58 UTC (rev 106221)
+++ trunk/Tools/WebKitTestRunner/TestInvocation.cpp 2012-01-30 10:06:15 UTC (rev 106222)
@@ -106,6 +106,8 @@
void TestInvocation::setIsPixelTest(const std::string& expectedPixelHash)
{
+ if (!expectedPixelHash.length())
+ return;
m_dumpPixels = true;
m_expectedPixelHash = expectedPixelHash;
}