Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1655)

Unified Diff: Tools/Scripts/webkitpy/layout_tests/port/mock_drt_unittest.py

Issue 23503087: Make the MockDRT implementation work again and add support for --actuals. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: clean up arg parsing in mock_drt.parse_options() Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Tools/Scripts/webkitpy/layout_tests/port/mock_drt_unittest.py
diff --git a/Tools/Scripts/webkitpy/layout_tests/port/mock_drt_unittest.py b/Tools/Scripts/webkitpy/layout_tests/port/mock_drt_unittest.py
index 1dde3b99514e9322c0a014afcdf5e37f1b8cf0e6..478d325b9cf9f68278ec0bd16b0c8097f9777ce0 100644
--- a/Tools/Scripts/webkitpy/layout_tests/port/mock_drt_unittest.py
+++ b/Tools/Scripts/webkitpy/layout_tests/port/mock_drt_unittest.py
@@ -76,20 +76,16 @@ class MockDRTPortTest(port_testcase.PortTestCase):
class MockDRTTest(unittest.TestCase):
- def input_line(self, port, test_name, checksum=None):
+ def input_line(self, port, test_name, pixel_tests, checksum=None):
url = port.create_driver(0).test_to_uri(test_name)
if url.startswith('file://'):
url = url[len('file://'):]
-
+ if pixel_tests:
+ url += "'--pixel-test"
if checksum:
- return url + "'" + checksum + '\n'
+ url += "'" + checksum
return url + '\n'
- def extra_args(self, pixel_tests):
- if pixel_tests:
- return ['--pixel-tests', '-']
- return ['-']
-
def make_drt(self, options, args, host, stdin, stdout, stderr):
return mock_drt.MockDRT(options, args, host, stdin, stdout, stderr)
@@ -99,7 +95,7 @@ class MockDRTTest(unittest.TestCase):
if not expected_checksum:
expected_checksum = port.expected_checksum(test_name)
if not drt_input:
- drt_input = self.input_line(port, test_name, expected_checksum)
+ drt_input = self.input_line(port, test_name, pixel_tests, expected_checksum)
text_output = expected_text or port.expected_text(test_name) or ''
if not drt_output:
@@ -127,7 +123,7 @@ class MockDRTTest(unittest.TestCase):
drt_input, drt_output = self.make_input_output(port, test_name,
pixel_tests, expected_checksum, drt_output, drt_input=None, expected_text=expected_text)
- args = ['--platform', port_name] + self.extra_args(pixel_tests)
+ args = ['--dump-render-tree', '--platform', port_name, '-']
stdin = newstringio.StringIO(drt_input)
stdout = newstringio.StringIO()
stderr = newstringio.StringIO()
@@ -141,7 +137,7 @@ class MockDRTTest(unittest.TestCase):
# We use the StringIO.buflist here instead of getvalue() because
# the StringIO might be a mix of unicode/ascii and 8-bit strings.
self.assertEqual(stdout.buflist, drt_output)
- self.assertEqual(stderr.getvalue(), '' if options.test_shell else '#EOF\n')
+ self.assertEqual(stderr.getvalue(), '#EOF\n')
def test_main(self):
host = MockSystemHost()
@@ -149,7 +145,7 @@ class MockDRTTest(unittest.TestCase):
stdin = newstringio.StringIO()
stdout = newstringio.StringIO()
stderr = newstringio.StringIO()
- res = mock_drt.main(['--platform', 'test'] + self.extra_args(False),
+ res = mock_drt.main(['--dump-render-tree', '--platform', 'test', '-'],
host, stdin, stdout, stderr)
self.assertEqual(res, 0)
self.assertEqual(stdout.getvalue(), '')
@@ -184,66 +180,19 @@ class MockDRTTest(unittest.TestCase):
self.assertTest('failures/expected/missing_text.html', True)
def test_reftest_match(self):
- self.assertTest('passes/reftest.html', False, expected_checksum='mock-checksum', expected_text='reference text\n')
self.assertTest('passes/reftest.html', True, expected_checksum='mock-checksum', expected_text='reference text\n')
def test_reftest_mismatch(self):
- self.assertTest('passes/mismatch.html', False, expected_checksum='mock-checksum', expected_text='reference text\n')
self.assertTest('passes/mismatch.html', True, expected_checksum='mock-checksum', expected_text='reference text\n')
-
-class MockTestShellTest(MockDRTTest):
- def extra_args(self, pixel_tests):
- if pixel_tests:
- return ['--pixel-tests=/tmp/png_result0.png']
- return []
-
- def make_drt(self, options, args, host, stdin, stdout, stderr):
- options.test_shell = True
-
- # We have to set these by hand because --platform test won't trigger
- # the Chromium code paths.
- options.pixel_path = '/tmp/png_result0.png'
- options.pixel_tests = True
-
- return mock_drt.MockTestShell(options, args, host, stdin, stdout, stderr)
-
- def input_line(self, port, test_name, checksum=None):
- url = port.create_driver(0).test_to_uri(test_name)
- if checksum:
- return url + ' 6000 ' + checksum + '\n'
- return url + ' 6000\n'
-
- def expected_output(self, port, test_name, pixel_tests, text_output, expected_checksum):
- url = port.create_driver(0).test_to_uri(test_name)
- output = ['#URL:%s\n' % url]
- if expected_checksum:
- output.append('#MD5:%s\n' % expected_checksum)
- if text_output:
- output.append(text_output)
- if not text_output.endswith('\n'):
- output.append('\n')
- output.append('#EOF\n')
- return output
-
- def test_pixeltest__fails(self):
- host = MockSystemHost()
- url = '#URL:file://'
- url = url + '%s/failures/expected/image_checksum.html' % PortFactory(host).get('test').layout_tests_dir()
- self.assertTest('failures/expected/image_checksum.html', pixel_tests=True,
- expected_checksum='image_checksum',
- drt_output=[url + '\n',
- '#MD5:image_checksum-checksum\n',
- 'image_checksum-txt',
- '\n',
- '#EOF\n'],
- host=host)
- self.assertEqual(host.filesystem.written_files,
- {'/tmp/png_result0.png': 'image_checksum\x8a-pngtEXtchecksum\x00image_checksum-checksum'})
-
- def test_test_shell_parse_options(self):
- options, args = mock_drt.parse_options(['--platform', 'mac', '--test-shell',
- '--pixel-tests=/tmp/png_result0.png'])
- self.assertTrue(options.test_shell)
- self.assertTrue(options.pixel_tests)
- self.assertEqual(options.pixel_path, '/tmp/png_result0.png')
+ def test_audio(self):
+ self.assertTest('passes/audio.html', pixel_tests=True,
+ drt_output=['Content-Type: audio/wav\n',
+ 'Content-Transfer-Encoding: base64\n',
+ 'YXVkaW8td2F2',
+ '\n',
+ '#EOF\n',
+ '#EOF\n'])
+
+ def test_virtual(self):
+ self.assertTest('virtual/passes/text.html', True)

Powered by Google App Engine
This is Rietveld 408576698