| OLD | NEW |
| 1 # Copyright (C) 2010 Google Inc. All rights reserved. | 1 # Copyright (C) 2010 Google Inc. All rights reserved. |
| 2 # | 2 # |
| 3 # Redistribution and use in source and binary forms, with or without | 3 # Redistribution and use in source and binary forms, with or without |
| 4 # modification, are permitted provided that the following conditions are | 4 # modification, are permitted provided that the following conditions are |
| 5 # met: | 5 # met: |
| 6 # | 6 # |
| 7 # * Redistributions of source code must retain the above copyright | 7 # * Redistributions of source code must retain the above copyright |
| 8 # notice, this list of conditions and the following disclaimer. | 8 # notice, this list of conditions and the following disclaimer. |
| 9 # * Redistributions in binary form must reproduce the above | 9 # * Redistributions in binary form must reproduce the above |
| 10 # copyright notice, this list of conditions and the following disclaimer | 10 # copyright notice, this list of conditions and the following disclaimer |
| (...skipping 24 matching lines...) Expand all Loading... |
| 35 from webkitpy.layout_tests.port.base import VirtualTestSuite | 35 from webkitpy.layout_tests.port.base import VirtualTestSuite |
| 36 from webkitpy.layout_tests.models.test_configuration import TestConfiguration | 36 from webkitpy.layout_tests.models.test_configuration import TestConfiguration |
| 37 from webkitpy.layout_tests.models import test_run_results | 37 from webkitpy.layout_tests.models import test_run_results |
| 38 from webkitpy.common.system.filesystem_mock import MockFileSystem | 38 from webkitpy.common.system.filesystem_mock import MockFileSystem |
| 39 from webkitpy.common.system.crashlogs import CrashLogs | 39 from webkitpy.common.system.crashlogs import CrashLogs |
| 40 | 40 |
| 41 | 41 |
| 42 # This sets basic expectations for a test. Each individual expectation | 42 # This sets basic expectations for a test. Each individual expectation |
| 43 # can be overridden by a keyword argument in TestList.add(). | 43 # can be overridden by a keyword argument in TestList.add(). |
| 44 class TestInstance(object): | 44 class TestInstance(object): |
| 45 |
| 45 def __init__(self, name): | 46 def __init__(self, name): |
| 46 self.name = name | 47 self.name = name |
| 47 self.base = name[(name.rfind("/") + 1):name.rfind(".")] | 48 self.base = name[(name.rfind('/') + 1):name.rfind('.')] |
| 48 self.crash = False | 49 self.crash = False |
| 49 self.web_process_crash = False | 50 self.web_process_crash = False |
| 50 self.exception = False | 51 self.exception = False |
| 51 self.keyboard = False | 52 self.keyboard = False |
| 52 self.error = '' | 53 self.error = '' |
| 53 self.timeout = False | 54 self.timeout = False |
| 54 self.is_reftest = False | 55 self.is_reftest = False |
| 55 self.device_failure = False | 56 self.device_failure = False |
| 56 self.leak = False | 57 self.leak = False |
| 57 | 58 |
| (...skipping 10 matching lines...) Expand all Loading... |
| 68 self.expected_text = self.actual_text | 69 self.expected_text = self.actual_text |
| 69 self.expected_image = self.actual_image | 70 self.expected_image = self.actual_image |
| 70 | 71 |
| 71 self.actual_audio = None | 72 self.actual_audio = None |
| 72 self.expected_audio = None | 73 self.expected_audio = None |
| 73 | 74 |
| 74 | 75 |
| 75 # This is an in-memory list of tests, what we want them to produce, and | 76 # This is an in-memory list of tests, what we want them to produce, and |
| 76 # what we want to claim are the expected results. | 77 # what we want to claim are the expected results. |
| 77 class TestList(object): | 78 class TestList(object): |
| 79 |
| 78 def __init__(self): | 80 def __init__(self): |
| 79 self.tests = {} | 81 self.tests = {} |
| 80 | 82 |
| 81 def add(self, name, **kwargs): | 83 def add(self, name, **kwargs): |
| 82 test = TestInstance(name) | 84 test = TestInstance(name) |
| 83 for key, value in kwargs.items(): | 85 for key, value in kwargs.items(): |
| 84 test.__dict__[key] = value | 86 test.__dict__[key] = value |
| 85 self.tests[name] = test | 87 self.tests[name] = test |
| 86 | 88 |
| 87 def add_reftest(self, name, reference_name, same_image, crash=False): | 89 def add_reftest(self, name, reference_name, same_image, crash=False): |
| (...skipping 14 matching lines...) Expand all Loading... |
| 102 | 104 |
| 103 # | 105 # |
| 104 # These numbers may need to be updated whenever we add or delete tests. This inc
ludes virtual tests. | 106 # These numbers may need to be updated whenever we add or delete tests. This inc
ludes virtual tests. |
| 105 # | 107 # |
| 106 TOTAL_TESTS = 113 | 108 TOTAL_TESTS = 113 |
| 107 TOTAL_SKIPS = 29 | 109 TOTAL_SKIPS = 29 |
| 108 | 110 |
| 109 UNEXPECTED_PASSES = 1 | 111 UNEXPECTED_PASSES = 1 |
| 110 UNEXPECTED_FAILURES = 26 | 112 UNEXPECTED_FAILURES = 26 |
| 111 | 113 |
| 114 |
| 112 def unit_test_list(): | 115 def unit_test_list(): |
| 113 tests = TestList() | 116 tests = TestList() |
| 114 tests.add('failures/expected/crash.html', crash=True) | 117 tests.add('failures/expected/crash.html', crash=True) |
| 115 tests.add('failures/expected/exception.html', exception=True) | 118 tests.add('failures/expected/exception.html', exception=True) |
| 116 tests.add('failures/expected/device_failure.html', device_failure=True) | 119 tests.add('failures/expected/device_failure.html', device_failure=True) |
| 117 tests.add('failures/expected/timeout.html', timeout=True) | 120 tests.add('failures/expected/timeout.html', timeout=True) |
| 118 tests.add('failures/expected/leak.html', leak=True) | 121 tests.add('failures/expected/leak.html', leak=True) |
| 119 tests.add('failures/expected/missing_text.html', expected_text=None) | 122 tests.add('failures/expected/missing_text.html', expected_text=None) |
| 120 tests.add('failures/expected/needsrebaseline.html', actual_text='needsrebase
line text') | 123 tests.add('failures/expected/needsrebaseline.html', actual_text='needsrebase
line text') |
| 121 tests.add('failures/expected/needsmanualrebaseline.html', actual_text='needs
manualrebaseline text') | 124 tests.add('failures/expected/needsmanualrebaseline.html', actual_text='needs
manualrebaseline text') |
| (...skipping 11 matching lines...) Expand all Loading... |
| 133 tests.add('failures/expected/keyboard.html', keyboard=True) | 136 tests.add('failures/expected/keyboard.html', keyboard=True) |
| 134 tests.add('failures/expected/missing_check.html', | 137 tests.add('failures/expected/missing_check.html', |
| 135 expected_image='missing_check-png') | 138 expected_image='missing_check-png') |
| 136 tests.add('failures/expected/missing_image.html', expected_image=None) | 139 tests.add('failures/expected/missing_image.html', expected_image=None) |
| 137 tests.add('failures/expected/missing_audio.html', expected_audio=None, | 140 tests.add('failures/expected/missing_audio.html', expected_audio=None, |
| 138 actual_text=None, expected_text=None, | 141 actual_text=None, expected_text=None, |
| 139 actual_image=None, expected_image=None, | 142 actual_image=None, expected_image=None, |
| 140 actual_checksum=None) | 143 actual_checksum=None) |
| 141 tests.add('failures/expected/missing_text.html', expected_text=None) | 144 tests.add('failures/expected/missing_text.html', expected_text=None) |
| 142 tests.add('failures/expected/newlines_leading.html', | 145 tests.add('failures/expected/newlines_leading.html', |
| 143 expected_text="\nfoo\n", actual_text="foo\n") | 146 expected_text='\nfoo\n', actual_text='foo\n') |
| 144 tests.add('failures/expected/newlines_trailing.html', | 147 tests.add('failures/expected/newlines_trailing.html', |
| 145 expected_text="foo\n\n", actual_text="foo\n") | 148 expected_text='foo\n\n', actual_text='foo\n') |
| 146 tests.add('failures/expected/newlines_with_excess_CR.html', | 149 tests.add('failures/expected/newlines_with_excess_CR.html', |
| 147 expected_text="foo\r\r\r\n", actual_text="foo\n") | 150 expected_text='foo\r\r\r\n', actual_text='foo\n') |
| 148 tests.add('failures/expected/text.html', actual_text='text_fail-png') | 151 tests.add('failures/expected/text.html', actual_text='text_fail-png') |
| 149 tests.add('failures/expected/crash_then_text.html') | 152 tests.add('failures/expected/crash_then_text.html') |
| 150 tests.add('failures/expected/skip_text.html', actual_text='text diff') | 153 tests.add('failures/expected/skip_text.html', actual_text='text diff') |
| 151 tests.add('failures/flaky/text.html') | 154 tests.add('failures/flaky/text.html') |
| 152 tests.add('failures/unexpected/missing_text.html', expected_text=None) | 155 tests.add('failures/unexpected/missing_text.html', expected_text=None) |
| 153 tests.add('failures/unexpected/missing_check.html', expected_image='missing-
check-png') | 156 tests.add('failures/unexpected/missing_check.html', expected_image='missing-
check-png') |
| 154 tests.add('failures/unexpected/missing_image.html', expected_image=None) | 157 tests.add('failures/unexpected/missing_image.html', expected_image=None) |
| 155 tests.add('failures/unexpected/missing_render_tree_dump.html', actual_text="
""layer at (0,0) size 800x600 | 158 tests.add('failures/unexpected/missing_render_tree_dump.html', actual_text="
""layer at (0,0) size 800x600 |
| 156 RenderView at (0,0) size 800x600 | 159 RenderView at (0,0) size 800x600 |
| 157 layer at (0,0) size 800x34 | 160 layer at (0,0) size 800x34 |
| 158 RenderBlock {HTML} at (0,0) size 800x34 | 161 RenderBlock {HTML} at (0,0) size 800x34 |
| 159 RenderBody {BODY} at (8,8) size 784x18 | 162 RenderBody {BODY} at (8,8) size 784x18 |
| 160 RenderText {#text} at (0,0) size 133x18 | 163 RenderText {#text} at (0,0) size 133x18 |
| 161 text run at (0,0) width 133: "This is an image test!" | 164 text run at (0,0) width 133: "This is an image test!" |
| 162 """, expected_text=None) | 165 """, expected_text=None) |
| 163 tests.add('failures/unexpected/crash.html', crash=True) | 166 tests.add('failures/unexpected/crash.html', crash=True) |
| 164 tests.add('failures/unexpected/crash-with-stderr.html', crash=True, | 167 tests.add('failures/unexpected/crash-with-stderr.html', crash=True, |
| 165 error="mock-std-error-output") | 168 error='mock-std-error-output') |
| 166 tests.add('failures/unexpected/web-process-crash-with-stderr.html', web_proc
ess_crash=True, | 169 tests.add('failures/unexpected/web-process-crash-with-stderr.html', web_proc
ess_crash=True, |
| 167 error="mock-std-error-output") | 170 error='mock-std-error-output') |
| 168 tests.add('failures/unexpected/pass.html') | 171 tests.add('failures/unexpected/pass.html') |
| 169 tests.add('failures/unexpected/text-checksum.html', | 172 tests.add('failures/unexpected/text-checksum.html', |
| 170 actual_text='text-checksum_fail-txt', | 173 actual_text='text-checksum_fail-txt', |
| 171 actual_checksum='text-checksum_fail-checksum') | 174 actual_checksum='text-checksum_fail-checksum') |
| 172 tests.add('failures/unexpected/text-image-checksum.html', | 175 tests.add('failures/unexpected/text-image-checksum.html', |
| 173 actual_text='text-image-checksum_fail-txt', | 176 actual_text='text-image-checksum_fail-txt', |
| 174 actual_image='text-image-checksum_fail-pngtEXtchecksum\x00checksum
_fail', | 177 actual_image='text-image-checksum_fail-pngtEXtchecksum\x00checksum
_fail', |
| 175 actual_checksum='text-image-checksum_fail-checksum') | 178 actual_checksum='text-image-checksum_fail-checksum') |
| 176 tests.add('failures/unexpected/checksum-with-matching-image.html', | 179 tests.add('failures/unexpected/checksum-with-matching-image.html', |
| 177 actual_checksum='text-image-checksum_fail-checksum') | 180 actual_checksum='text-image-checksum_fail-checksum') |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 210 | 213 |
| 211 # This adds a different virtual reference to ensure that that also works. | 214 # This adds a different virtual reference to ensure that that also works. |
| 212 tests.add('virtual/passes/reftest-expected.html', actual_checksum='xxx', act
ual_image='XXX', is_reftest=True) | 215 tests.add('virtual/passes/reftest-expected.html', actual_checksum='xxx', act
ual_image='XXX', is_reftest=True) |
| 213 | 216 |
| 214 tests.add_reftest('passes/mismatch.html', 'passes/mismatch-expected-mismatch
.html', same_image=False) | 217 tests.add_reftest('passes/mismatch.html', 'passes/mismatch-expected-mismatch
.html', same_image=False) |
| 215 tests.add_reftest('passes/svgreftest.svg', 'passes/svgreftest-expected.svg',
same_image=True) | 218 tests.add_reftest('passes/svgreftest.svg', 'passes/svgreftest-expected.svg',
same_image=True) |
| 216 tests.add_reftest('passes/xhtreftest.xht', 'passes/xhtreftest-expected.html'
, same_image=True) | 219 tests.add_reftest('passes/xhtreftest.xht', 'passes/xhtreftest-expected.html'
, same_image=True) |
| 217 tests.add_reftest('passes/phpreftest.php', 'passes/phpreftest-expected-misma
tch.svg', same_image=False) | 220 tests.add_reftest('passes/phpreftest.php', 'passes/phpreftest-expected-misma
tch.svg', same_image=False) |
| 218 tests.add_reftest('failures/expected/reftest.html', 'failures/expected/refte
st-expected.html', same_image=False) | 221 tests.add_reftest('failures/expected/reftest.html', 'failures/expected/refte
st-expected.html', same_image=False) |
| 219 tests.add_reftest('failures/expected/mismatch.html', 'failures/expected/mism
atch-expected-mismatch.html', same_image=True) | 222 tests.add_reftest('failures/expected/mismatch.html', 'failures/expected/mism
atch-expected-mismatch.html', same_image=True) |
| 220 tests.add_reftest('failures/unexpected/crash-reftest.html', 'failures/unexpe
cted/crash-reftest-expected.html', same_image=True, crash=True) | 223 tests.add_reftest( |
| 224 'failures/unexpected/crash-reftest.html', |
| 225 'failures/unexpected/crash-reftest-expected.html', |
| 226 same_image=True, |
| 227 crash=True) |
| 221 tests.add_reftest('failures/unexpected/reftest.html', 'failures/unexpected/r
eftest-expected.html', same_image=False) | 228 tests.add_reftest('failures/unexpected/reftest.html', 'failures/unexpected/r
eftest-expected.html', same_image=False) |
| 222 tests.add_reftest('failures/unexpected/mismatch.html', 'failures/unexpected/
mismatch-expected-mismatch.html', same_image=True) | 229 tests.add_reftest('failures/unexpected/mismatch.html', 'failures/unexpected/
mismatch-expected-mismatch.html', same_image=True) |
| 223 tests.add('failures/unexpected/reftest-nopixel.html', actual_checksum=None,
actual_image=None, is_reftest=True) | 230 tests.add('failures/unexpected/reftest-nopixel.html', actual_checksum=None,
actual_image=None, is_reftest=True) |
| 224 tests.add('failures/unexpected/reftest-nopixel-expected.html', actual_checks
um=None, actual_image=None, is_reftest=True) | 231 tests.add('failures/unexpected/reftest-nopixel-expected.html', actual_checks
um=None, actual_image=None, is_reftest=True) |
| 225 tests.add('reftests/foo/test.html') | 232 tests.add('reftests/foo/test.html') |
| 226 tests.add('reftests/foo/test-ref.html') | 233 tests.add('reftests/foo/test-ref.html') |
| 227 | 234 |
| 228 tests.add('reftests/foo/multiple-match-success.html', actual_checksum='abc',
actual_image='abc') | 235 tests.add('reftests/foo/multiple-match-success.html', actual_checksum='abc',
actual_image='abc') |
| 229 tests.add('reftests/foo/multiple-match-failure.html', actual_checksum='abc',
actual_image='abc') | 236 tests.add('reftests/foo/multiple-match-failure.html', actual_checksum='abc',
actual_image='abc') |
| 230 tests.add('reftests/foo/multiple-mismatch-success.html', actual_checksum='ab
c', actual_image='abc') | 237 tests.add('reftests/foo/multiple-mismatch-success.html', actual_checksum='ab
c', actual_image='abc') |
| (...skipping 15 matching lines...) Expand all Loading... |
| 246 # For testing that we don't run tests under platform/. Note that these don't
contribute to TOTAL_TESTS. | 253 # For testing that we don't run tests under platform/. Note that these don't
contribute to TOTAL_TESTS. |
| 247 tests.add('platform/test-mac-leopard/http/test.html') | 254 tests.add('platform/test-mac-leopard/http/test.html') |
| 248 tests.add('platform/test-win-win7/http/test.html') | 255 tests.add('platform/test-win-win7/http/test.html') |
| 249 | 256 |
| 250 # For testing if perf tests are running in a locked shard. | 257 # For testing if perf tests are running in a locked shard. |
| 251 tests.add('perf/foo/test.html') | 258 tests.add('perf/foo/test.html') |
| 252 tests.add('perf/foo/test-ref.html') | 259 tests.add('perf/foo/test-ref.html') |
| 253 | 260 |
| 254 # For testing --pixel-test-directories. | 261 # For testing --pixel-test-directories. |
| 255 tests.add('failures/unexpected/pixeldir/image_in_pixeldir.html', | 262 tests.add('failures/unexpected/pixeldir/image_in_pixeldir.html', |
| 256 actual_image='image_in_pixeldir-pngtEXtchecksum\x00checksum_fail', | 263 actual_image='image_in_pixeldir-pngtEXtchecksum\x00checksum_fail', |
| 257 expected_image='image_in_pixeldir-pngtEXtchecksum\x00checksum-png') | 264 expected_image='image_in_pixeldir-pngtEXtchecksum\x00checksum-png'
) |
| 258 tests.add('failures/unexpected/image_not_in_pixeldir.html', | 265 tests.add('failures/unexpected/image_not_in_pixeldir.html', |
| 259 actual_image='image_not_in_pixeldir-pngtEXtchecksum\x00checksum_fail', | 266 actual_image='image_not_in_pixeldir-pngtEXtchecksum\x00checksum_fa
il', |
| 260 expected_image='image_not_in_pixeldir-pngtEXtchecksum\x00checksum-png') | 267 expected_image='image_not_in_pixeldir-pngtEXtchecksum\x00checksum-
png') |
| 261 | 268 |
| 262 # For testing that virtual test suites don't expand names containing themsel
ves | 269 # For testing that virtual test suites don't expand names containing themsel
ves |
| 263 # See webkit.org/b/97925 and base_unittest.PortTest.test_tests(). | 270 # See webkit.org/b/97925 and base_unittest.PortTest.test_tests(). |
| 264 tests.add('passes/test-virtual-passes.html') | 271 tests.add('passes/test-virtual-passes.html') |
| 265 tests.add('passes/passes/test-virtual-passes.html') | 272 tests.add('passes/passes/test-virtual-passes.html') |
| 266 | 273 |
| 267 return tests | 274 return tests |
| 268 | 275 |
| 269 | 276 |
| 270 # Here we use a non-standard location for the layout tests, to ensure that | 277 # Here we use a non-standard location for the layout tests, to ensure that |
| (...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 363 default_port_name = 'test-mac-leopard' | 370 default_port_name = 'test-mac-leopard' |
| 364 | 371 |
| 365 """Test implementation of the Port interface.""" | 372 """Test implementation of the Port interface.""" |
| 366 ALL_BASELINE_VARIANTS = ( | 373 ALL_BASELINE_VARIANTS = ( |
| 367 'test-linux-x86_64', | 374 'test-linux-x86_64', |
| 368 'test-mac-snowleopard', 'test-mac-leopard', | 375 'test-mac-snowleopard', 'test-mac-leopard', |
| 369 'test-win-win7', 'test-win-xp', | 376 'test-win-win7', 'test-win-xp', |
| 370 ) | 377 ) |
| 371 | 378 |
| 372 FALLBACK_PATHS = { | 379 FALLBACK_PATHS = { |
| 373 'xp': ['test-win-win7', 'test-win-xp'], | 380 'xp': ['test-win-win7', 'test-win-xp'], |
| 374 'win7': ['test-win-win7'], | 381 'win7': ['test-win-win7'], |
| 375 'leopard': ['test-mac-leopard', 'test-mac-snowleopard'], | 382 'leopard': ['test-mac-leopard', 'test-mac-snowleopard'], |
| 376 'snowleopard': ['test-mac-snowleopard'], | 383 'snowleopard': ['test-mac-snowleopard'], |
| 377 'lucid': ['test-linux-x86_64', 'test-win-win7'], | 384 'lucid': ['test-linux-x86_64', 'test-win-win7'], |
| 378 } | 385 } |
| 379 | 386 |
| 380 @classmethod | 387 @classmethod |
| 381 def determine_full_port_name(cls, host, options, port_name): | 388 def determine_full_port_name(cls, host, options, port_name): |
| 382 if port_name == 'test': | 389 if port_name == 'test': |
| 383 return TestPort.default_port_name | 390 return TestPort.default_port_name |
| 384 return port_name | 391 return port_name |
| 385 | 392 |
| 386 def __init__(self, host, port_name=None, **kwargs): | 393 def __init__(self, host, port_name=None, **kwargs): |
| 387 Port.__init__(self, host, port_name or TestPort.default_port_name, **kwa
rgs) | 394 Port.__init__(self, host, port_name or TestPort.default_port_name, **kwa
rgs) |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 443 def default_configuration(self): | 450 def default_configuration(self): |
| 444 return 'Release' | 451 return 'Release' |
| 445 | 452 |
| 446 def diff_image(self, expected_contents, actual_contents): | 453 def diff_image(self, expected_contents, actual_contents): |
| 447 diffed = actual_contents != expected_contents | 454 diffed = actual_contents != expected_contents |
| 448 if not actual_contents and not expected_contents: | 455 if not actual_contents and not expected_contents: |
| 449 return (None, None) | 456 return (None, None) |
| 450 if not actual_contents or not expected_contents: | 457 if not actual_contents or not expected_contents: |
| 451 return (True, None) | 458 return (True, None) |
| 452 if diffed: | 459 if diffed: |
| 453 return ("< %s\n---\n> %s\n" % (expected_contents, actual_contents),
None) | 460 return ('< %s\n---\n> %s\n' % (expected_contents, actual_contents),
None) |
| 454 return (None, None) | 461 return (None, None) |
| 455 | 462 |
| 456 def layout_tests_dir(self): | 463 def layout_tests_dir(self): |
| 457 return LAYOUT_TEST_DIR | 464 return LAYOUT_TEST_DIR |
| 458 | 465 |
| 459 def perf_tests_dir(self): | 466 def perf_tests_dir(self): |
| 460 return PERF_TEST_DIR | 467 return PERF_TEST_DIR |
| 461 | 468 |
| 462 def webkit_base(self): | 469 def webkit_base(self): |
| 463 return '/test.checkout' | 470 return '/test.checkout' |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 497 def stop_http_server(self): | 504 def stop_http_server(self): |
| 498 pass | 505 pass |
| 499 | 506 |
| 500 def stop_websocket_server(self): | 507 def stop_websocket_server(self): |
| 501 pass | 508 pass |
| 502 | 509 |
| 503 def release_http_lock(self): | 510 def release_http_lock(self): |
| 504 pass | 511 pass |
| 505 | 512 |
| 506 def path_to_apache(self): | 513 def path_to_apache(self): |
| 507 return "/usr/sbin/httpd" | 514 return '/usr/sbin/httpd' |
| 508 | 515 |
| 509 def path_to_apache_config_file(self): | 516 def path_to_apache_config_file(self): |
| 510 return self._filesystem.join(self.layout_tests_dir(), 'http', 'conf', 'h
ttpd.conf') | 517 return self._filesystem.join(self.layout_tests_dir(), 'http', 'conf', 'h
ttpd.conf') |
| 511 | 518 |
| 512 def path_to_generic_test_expectations_file(self): | 519 def path_to_generic_test_expectations_file(self): |
| 513 return self._generic_expectations_path | 520 return self._generic_expectations_path |
| 514 | 521 |
| 515 def _port_specific_expectations_files(self): | 522 def _port_specific_expectations_files(self): |
| 516 return [self._filesystem.join(self._webkit_baseline_path(d), 'TestExpect
ations') for d in ['test', 'test-win-xp']] | 523 return [self._filesystem.join(self._webkit_baseline_path(d), 'TestExpect
ations') for d in ['test', 'test-win-xp']] |
| 517 | 524 |
| (...skipping 29 matching lines...) Expand all Loading... |
| 547 return self.ALL_BASELINE_VARIANTS | 554 return self.ALL_BASELINE_VARIANTS |
| 548 | 555 |
| 549 def virtual_test_suites(self): | 556 def virtual_test_suites(self): |
| 550 return [ | 557 return [ |
| 551 VirtualTestSuite('passes', 'passes', ['--virtual-arg'], use_legacy_n
aming=True), | 558 VirtualTestSuite('passes', 'passes', ['--virtual-arg'], use_legacy_n
aming=True), |
| 552 VirtualTestSuite('skipped', 'failures/expected', ['--virtual-arg2'],
use_legacy_naming=True), | 559 VirtualTestSuite('skipped', 'failures/expected', ['--virtual-arg2'],
use_legacy_naming=True), |
| 553 ] | 560 ] |
| 554 | 561 |
| 555 | 562 |
| 556 class TestDriver(Driver): | 563 class TestDriver(Driver): |
| 564 |
| 557 """Test/Dummy implementation of the driver interface.""" | 565 """Test/Dummy implementation of the driver interface.""" |
| 558 next_pid = 1 | 566 next_pid = 1 |
| 559 | 567 |
| 560 def __init__(self, *args, **kwargs): | 568 def __init__(self, *args, **kwargs): |
| 561 super(TestDriver, self).__init__(*args, **kwargs) | 569 super(TestDriver, self).__init__(*args, **kwargs) |
| 562 self.started = False | 570 self.started = False |
| 563 self.pid = 0 | 571 self.pid = 0 |
| 564 | 572 |
| 565 def cmd_line(self, pixel_tests, per_test_args): | 573 def cmd_line(self, pixel_tests, per_test_args): |
| 566 pixel_tests_flag = '-p' if pixel_tests else '' | 574 pixel_tests_flag = '-p' if pixel_tests else '' |
| 567 return [self._port._path_to_driver()] + [pixel_tests_flag] + self._port.
get_option('additional_drt_flag', []) + per_test_args | 575 return [self._port._path_to_driver()] + [pixel_tests_flag] + \ |
| 576 self._port.get_option('additional_drt_flag', []) + per_test_args |
| 568 | 577 |
| 569 def run_test(self, driver_input, stop_when_done): | 578 def run_test(self, driver_input, stop_when_done): |
| 570 if not self.started: | 579 if not self.started: |
| 571 self.started = True | 580 self.started = True |
| 572 self.pid = TestDriver.next_pid | 581 self.pid = TestDriver.next_pid |
| 573 TestDriver.next_pid += 1 | 582 TestDriver.next_pid += 1 |
| 574 | 583 |
| 575 start_time = time.time() | 584 start_time = time.time() |
| 576 test_name = driver_input.test_name | 585 test_name = driver_input.test_name |
| 577 test_args = driver_input.args or [] | 586 test_args = driver_input.args or [] |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 630 crash_log = crash_logs.find_newest_log(crashed_process_name, None) o
r '' | 639 crash_log = crash_logs.find_newest_log(crashed_process_name, None) o
r '' |
| 631 | 640 |
| 632 if stop_when_done: | 641 if stop_when_done: |
| 633 self.stop() | 642 self.stop() |
| 634 | 643 |
| 635 if test.actual_checksum == driver_input.image_hash: | 644 if test.actual_checksum == driver_input.image_hash: |
| 636 image = None | 645 image = None |
| 637 else: | 646 else: |
| 638 image = test.actual_image | 647 image = test.actual_image |
| 639 return DriverOutput(actual_text, image, test.actual_checksum, audio, | 648 return DriverOutput(actual_text, image, test.actual_checksum, audio, |
| 640 crash=(crash or web_process_crash), crashed_process_name=crashed_pro
cess_name, | 649 crash=(crash or web_process_crash), crashed_process_
name=crashed_process_name, |
| 641 crashed_pid=crashed_pid, crash_log=crash_log, | 650 crashed_pid=crashed_pid, crash_log=crash_log, |
| 642 test_time=time.time() - start_time, timeout=test.timeout, error=test
.error, pid=self.pid, | 651 test_time=time.time() - start_time, timeout=test.tim
eout, error=test.error, pid=self.pid, |
| 643 leak=test.leak) | 652 leak=test.leak) |
| 644 | 653 |
| 645 def stop(self): | 654 def stop(self): |
| 646 self.started = False | 655 self.started = False |
| OLD | NEW |