https://bugs.webkit.org/show_bug.cgi?id=70484
Patch by Fehér Zsolt <feherzs@inf.u-szeged.hu> on 2012-02-08
Reviewed by Dirk Pranke.
* Scripts/webkitpy/layout_tests/controllers/single_test_runner.py:
(SingleTestRunner.__init__):
(SingleTestRunner._should_fetch_expected_checksum):
* Scripts/webkitpy/layout_tests/controllers/worker.py:
(Worker.handle_test_list):
* Scripts/webkitpy/layout_tests/models/test_input.py:
(TestInput.__init__):
* Scripts/webkitpy/layout_tests/port/webkit.py:
(WebKitDriver.cmd_line):
* Scripts/webkitpy/layout_tests/run_webkit_tests.py:
(_set_up_derived_options):
(parse_args):
* Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py:
(MainTest.test_skip_pixel_test_if_no_baseline_option):
* WebKitTestRunner/TestController.cpp:
(WTR::TestController::TestController):
(WTR::TestController::initialize):
(WTR::TestController::runTest):
* WebKitTestRunner/TestController.h:
(TestController):
* WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::TestInvocation):
(WTR::TestInvocation::setIsPixelTest):
* WebKitTestRunner/TestInvocation.h:
(WTR::TestInvocation::setSkipPixelTestOption):
(TestInvocation):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@107113
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
+2012-02-08 Fehér Zsolt <feherzs@inf.u-szeged.hu>
+
+ nrwt: make --skip-pixel-test-if-no-baseline option
+ https://bugs.webkit.org/show_bug.cgi?id=70484
+
+ Reviewed by Dirk Pranke.
+
+ * Scripts/webkitpy/layout_tests/controllers/single_test_runner.py:
+ (SingleTestRunner.__init__):
+ (SingleTestRunner._should_fetch_expected_checksum):
+ * Scripts/webkitpy/layout_tests/controllers/worker.py:
+ (Worker.handle_test_list):
+ * Scripts/webkitpy/layout_tests/models/test_input.py:
+ (TestInput.__init__):
+ * Scripts/webkitpy/layout_tests/port/webkit.py:
+ (WebKitDriver.cmd_line):
+ * Scripts/webkitpy/layout_tests/run_webkit_tests.py:
+ (_set_up_derived_options):
+ (parse_args):
+ * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py:
+ (MainTest.test_skip_pixel_test_if_no_baseline_option):
+ * WebKitTestRunner/TestController.cpp:
+ (WTR::TestController::TestController):
+ (WTR::TestController::initialize):
+ (WTR::TestController::runTest):
+ * WebKitTestRunner/TestController.h:
+ (TestController):
+ * WebKitTestRunner/TestInvocation.cpp:
+ (WTR::TestInvocation::TestInvocation):
+ (WTR::TestInvocation::setIsPixelTest):
+ * WebKitTestRunner/TestInvocation.h:
+ (WTR::TestInvocation::setSkipPixelTestOption):
+ (TestInvocation):
+
2012-02-08 Rob Buis <rbuis@rim.com>
[BlackBerry] Upstream DumpRenderTreeBlackBerry
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)
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))
start_time = time.time()
num_tests = 0
for test_input in test_list:
+ #FIXME: When the DRT support also this function, that would be useful
+ 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()
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!)
"""
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)
def cmd_line(self):
cmd = self._command_wrapper(self._port.get_option('wrapper'))
cmd.append(self._port._path_to_driver())
+ if self._port.get_option('skip_pixel_test_if_no_baseline'):
+ cmd.append('--skip-pixel-test-if-no-baseline')
if self._pixel_tests:
cmd.append('--pixel-tests')
if self._port.get_option('gc_between_tests'):
warnings.append("--no-http is ignored since --force is also provided")
options.http = True
+ 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)")
+
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")
optparse.make_option("--no-new-test-results", action="store_false",
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="store_true",
+ 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="store_true",
default=False, help="Skip tests that are expected to fail. "
"Note: When using this option, you might miss new crashes "
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)
TestController::TestController(int argc, const char* argv[])
: m_dumpPixels(false)
+ , m_skipPixelTestOption(false)
, m_verbose(false)
, m_printSeparators(false)
, m_usingServerMode(false)
m_shortTimeout = defaultShortTimeout * m_longTimeout / defaultLongTimeout;
continue;
}
+
+ if (argument == "--skip-pixel-test-if-no-baseline") {
+ m_skipPixelTestOption = true;
+ continue;
+ }
+
if (argument == "--pixel-tests") {
m_dumpPixels = true;
continue;
m_state = RunningTest;
m_currentInvocation = adoptPtr(new TestInvocation(pathOrURL));
+ m_currentInvocation->setSkipPixelTestOption(m_skipPixelTestOption);
if (m_dumpPixels)
m_currentInvocation->setIsPixelTest(expectedPixelHash);
OwnPtr<TestInvocation> m_currentInvocation;
bool m_dumpPixels;
+ bool m_skipPixelTestOption;
bool m_verbose;
bool m_printSeparators;
bool m_usingServerMode;
: m_url(AdoptWK, createWKURL(pathOrURL.c_str()))
, m_pathOrURL(pathOrURL)
, m_dumpPixels(false)
+ , m_skipPixelTestOption(false)
, m_gotInitialResponse(false)
, m_gotFinalMessage(false)
, m_gotRepaint(false)
void TestInvocation::setIsPixelTest(const std::string& expectedPixelHash)
{
+ if (m_skipPixelTestOption && !expectedPixelHash.length())
+ return;
m_dumpPixels = true;
m_expectedPixelHash = expectedPixelHash;
}
~TestInvocation();
void setIsPixelTest(const std::string& expectedPixelHash);
-
+ void setSkipPixelTestOption(bool option) { m_skipPixelTestOption = option; }
+
void invoke();
void didReceiveMessageFromInjectedBundle(WKStringRef messageName, WKTypeRef messageBody);
WKRetainPtr<WKTypeRef> didReceiveSynchronousMessageFromInjectedBundle(WKStringRef messageName, WKTypeRef messageBody);
bool m_dumpPixels;
std::string m_expectedPixelHash;
+ bool m_skipPixelTestOption;
// Invocation state
bool m_gotInitialResponse;