Title: [278040] trunk/Tools
Revision
278040
Author
gsnedd...@apple.com
Date
2021-05-25 13:27:57 -0700 (Tue, 25 May 2021)

Log Message

Run webkitpy integration tests under pytest by default
https://bugs.webkit.org/show_bug.cgi?id=226017

Reviewed by Jonathan Bedard.

This involves adding a variety of new xfail annotations and moving some tests to
be serial to avoid flakiness.

* Scripts/webkitpy/common/config/committers_unittest.py:
(CommittersTest):
* Scripts/webkitpy/conftest.py:
(pytest_addoption): Remove --run-integration
(pytest_collection_modifyitems): Remove --run-integration
* Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py:
(RunTest.serial_test_basic):
(RunTest.serial_test_batch_size):
(RunTest.serial_test_dryrun):
(RunTest.serial_test_full_results_html):
(RunTest.serial_test_no_order_with_directory_entries_in_natural_order):
(RunTest.serial_test_gc_between_tests):
(RunTest.serial_test_check_for_world_leaks):
(RunTest.serial_test_complex_text):
(RunTest.serial_test_threaded):
(RunTest.serial_test_run_force):
(RunTest.serial_test_run_singly):
(RunTest.serial_test_skip_failing_tests):
(RunTest.serial_test_run_singly_actually_runs_tests):
(RunTest.serial_test_stderr_is_saved):
(RunTest.serial_test_results_directory_absolute):
(RunTest.serial_test_results_directory_default):
(RunTest.serial_test_results_directory_relative):
(RunTest.serial_test_run_order__inline):
(RunTest.serial_test_additional_platform_directory):
(RunTest.serial_test_no_http_and_force):
(RunTest.serial_test_no_http_tests):
(RunTest.serial_test_platform_tests_are_found):
* Scripts/webkitpy/layout_tests/servers/http_server_integrationtest.py:
(BaseTest):
(HTTPServerTest):
(HTTPServerTest.integration_test_server__normal):
(HTTPServerTest.integration_test_server__fails):
(HTTPServerTest.integration_test_port_and_root):
(WebsocketserverTest):
(WebsocketserverTest.integration_test_server__normal):
(WebsocketserverTest.integration_test_server__fails):
(WebsocketserverTest.integration_test_port_and_root):
* Scripts/webkitpy/port/port_testcase.py:
(PortTestCase):
* Scripts/webkitpy/test/main_unittest.py:
(TesterTest):
* Scripts/webkitpy/test/markers.py:
(skip): Add skip
* Scripts/webkitpy/tool/steps/haslanded_unittest.py:
(HasLandedTest): Always skip this, as it seems to fail always

Modified Paths

Diff

Modified: trunk/Tools/ChangeLog (278039 => 278040)


--- trunk/Tools/ChangeLog	2021-05-25 20:25:39 UTC (rev 278039)
+++ trunk/Tools/ChangeLog	2021-05-25 20:27:57 UTC (rev 278040)
@@ -1,3 +1,60 @@
+2021-05-25  Sam Sneddon  <gsnedd...@apple.com>
+
+        Run webkitpy integration tests under pytest by default
+        https://bugs.webkit.org/show_bug.cgi?id=226017
+
+        Reviewed by Jonathan Bedard.
+
+        This involves adding a variety of new xfail annotations and moving some tests to
+        be serial to avoid flakiness.
+
+        * Scripts/webkitpy/common/config/committers_unittest.py:
+        (CommittersTest):
+        * Scripts/webkitpy/conftest.py:
+        (pytest_addoption): Remove --run-integration
+        (pytest_collection_modifyitems): Remove --run-integration
+        * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py:
+        (RunTest.serial_test_basic):
+        (RunTest.serial_test_batch_size):
+        (RunTest.serial_test_dryrun):
+        (RunTest.serial_test_full_results_html):
+        (RunTest.serial_test_no_order_with_directory_entries_in_natural_order):
+        (RunTest.serial_test_gc_between_tests):
+        (RunTest.serial_test_check_for_world_leaks):
+        (RunTest.serial_test_complex_text):
+        (RunTest.serial_test_threaded):
+        (RunTest.serial_test_run_force):
+        (RunTest.serial_test_run_singly):
+        (RunTest.serial_test_skip_failing_tests):
+        (RunTest.serial_test_run_singly_actually_runs_tests):
+        (RunTest.serial_test_stderr_is_saved):
+        (RunTest.serial_test_results_directory_absolute):
+        (RunTest.serial_test_results_directory_default):
+        (RunTest.serial_test_results_directory_relative):
+        (RunTest.serial_test_run_order__inline):
+        (RunTest.serial_test_additional_platform_directory):
+        (RunTest.serial_test_no_http_and_force):
+        (RunTest.serial_test_no_http_tests):
+        (RunTest.serial_test_platform_tests_are_found):
+        * Scripts/webkitpy/layout_tests/servers/http_server_integrationtest.py:
+        (BaseTest):
+        (HTTPServerTest):
+        (HTTPServerTest.integration_test_server__normal):
+        (HTTPServerTest.integration_test_server__fails):
+        (HTTPServerTest.integration_test_port_and_root):
+        (WebsocketserverTest):
+        (WebsocketserverTest.integration_test_server__normal):
+        (WebsocketserverTest.integration_test_server__fails):
+        (WebsocketserverTest.integration_test_port_and_root):
+        * Scripts/webkitpy/port/port_testcase.py:
+        (PortTestCase):
+        * Scripts/webkitpy/test/main_unittest.py:
+        (TesterTest):
+        * Scripts/webkitpy/test/markers.py:
+        (skip): Add skip
+        * Scripts/webkitpy/tool/steps/haslanded_unittest.py:
+        (HasLandedTest): Always skip this, as it seems to fail always
+
 2021-05-24  Darin Adler  <da...@apple.com>
 
         Switch from WTF::Optional to std::optional

Modified: trunk/Tools/Scripts/webkitpy/common/config/committers_unittest.py (278039 => 278040)


--- trunk/Tools/Scripts/webkitpy/common/config/committers_unittest.py	2021-05-25 20:25:39 UTC (rev 278039)
+++ trunk/Tools/Scripts/webkitpy/common/config/committers_unittest.py	2021-05-25 20:27:57 UTC (rev 278040)
@@ -28,7 +28,9 @@
 import unittest
 from webkitpy.common.config.committers import CommitterList, Contributor, Committer, Reviewer
 
+from webkitpy.test.markers import xfail
 
+
 class CommittersTest(unittest.TestCase):
     def test_committer_lookup(self):
         committer = Committer('Test One', 'o...@test.com', 'one')
@@ -149,6 +151,7 @@
         self._assert_fuzz_match('ap', 'Alexey Proskuryakov', 0)
         self._assert_fuzz_match('Alexey P', 'Alexey Proskuryakov', 0)
 
+    @xfail
     def integration_test_contributors_alice_liu(self):
         # self._assert_fuzz_match('Alice', 'Alice Liu', 0)
         self._assert_fuzz_match('aliu', 'Alice Liu', 0)
@@ -185,6 +188,7 @@
         # self._assert_fuzz_match('Chris', 'Chris Blumenberg', 0)
         self._assert_fuzz_match('cblu', 'Chris Blumenberg', 0)
 
+    @xfail
     def integration_test_contributors_dan_bernstein(self):
         self._assert_fuzz_match('Dan', ['Dan Winship', 'Dan Bernstein'], 0)
         self._assert_fuzz_match('Dan B', 'Dan Bernstein', 0)
@@ -208,10 +212,12 @@
         self._assert_fuzz_match('harrison', 'David Harrison', 0)
         self._assert_fuzz_match('Dr. Harrison', 'David Harrison', 4)
 
+    @xfail
     def integration_test_contributors_david_harrison_2(self):
         self._assert_fuzz_match('Dave Harrson', 'David Harrison', 3)
         self._assert_fuzz_match('Dave Harrsion', 'David Harrison', 4)  # Damerau-Levenshtein distance is 3
 
+    @xfail
     def integration_test_contributors_david_hyatt(self):
         self._assert_fuzz_match('Dave Hyatt', 'David Hyatt', 2)
         self._assert_fuzz_match('Daddy Hyatt', 'David Hyatt', 3)
@@ -219,11 +225,13 @@
         self._assert_fuzz_match('hyatt', 'David Hyatt', 0)
         # self._assert_fuzz_match('Haytt', 'David Hyatt', 0)  # Works if we had implemented Damerau-Levenshtein distance!
 
+    @xfail
     def integration_test_contributors_david_kilzer(self):
         self._assert_fuzz_match('Dave Kilzer', 'David Kilzer', 2)
         self._assert_fuzz_match('David D. Kilzer', 'David Kilzer', 3)
         self._assert_fuzz_match('ddkilzer', 'David Kilzer', 0)
 
+    @xfail
     def integration_test_contributors_don_melton(self):
         self._assert_fuzz_match('Don', 'Don Melton', 0)
         self._assert_fuzz_match('Gramps', 'Don Melton', 0)
@@ -234,6 +242,7 @@
         # self._assert_fuzz_match('MacDome', 'Eric Seidel', 0)
         self._assert_fuzz_match('eseidel', 'Eric Seidel', 0)
 
+    @xfail
     def integration_test_contributors_geoffrey_garen(self):
         # self._assert_fuzz_match('Geof', 'Geoffrey Garen', 4)
         # self._assert_fuzz_match('Geoff', 'Geoffrey Garen', 3)
@@ -246,6 +255,7 @@
     def integration_test_contributors_greg_bolsinga(self):
         pass  # self._assert_fuzz_match('Greg', 'Greg Bolsinga', 0)
 
+    @xfail
     def integration_test_contributors_holger_freyther(self):
         self._assert_fuzz_match('Holger', 'Holger Freyther', 0)
         self._assert_fuzz_match('Holger Hans Peter Freyther', 'Holger Freyther', 11)
@@ -262,13 +272,16 @@
         # self._assert_fuzz_match('justin', 'Justin Garcia', 0)
         self._assert_fuzz_match('justing', 'Justin Garcia', 0)
 
+    @xfail
     def integration_test_contributors_joseph_pecoraro(self):
         self._assert_fuzz_match('Joe Pecoraro', 'Joseph Pecoraro', 3)
 
+    @xfail
     def integration_test_contributors_ken_kocienda(self):
         self._assert_fuzz_match('ken', 'Ken Kocienda', 0)
         self._assert_fuzz_match('kocienda', 'Ken Kocienda', 0)
 
+    @xfail
     def integration_test_contributors_kenneth_russell(self):
         self._assert_fuzz_match('Ken Russell', 'Kenneth Russell', 4)
 
@@ -297,6 +310,7 @@
         self._assert_fuzz_match('mrowe', 'Mark Rowe', 0)
         # self._assert_fuzz_match('Brian Dash', 'Mark Rowe', 0)
 
+    @xfail
     def integration_test_contributors_nikolas_zimmermann(self):
         # self._assert_fuzz_match('Niko', 'Nikolas Zimmermann', 1)
         self._assert_fuzz_match('Niko Zimmermann', 'Nikolas Zimmermann', 3)
@@ -343,6 +357,7 @@
         # self._assert_fuzz_match('Tim O.', 'Tim Omernick', 0)
         self._assert_fuzz_match('Tim O', 'Tim Omernick', 0)
 
+    @xfail
     def integration_test_contributors_timothy_hatcher(self):
         # self._assert_fuzz_match('Tim', 'Timothy Hatcher', 0)
         # self._assert_fuzz_match('Tim H', 'Timothy Hatcher', 0)

Modified: trunk/Tools/Scripts/webkitpy/conftest.py (278039 => 278040)


--- trunk/Tools/Scripts/webkitpy/conftest.py	2021-05-25 20:25:39 UTC (rev 278039)
+++ trunk/Tools/Scripts/webkitpy/conftest.py	2021-05-25 20:27:57 UTC (rev 278040)
@@ -35,12 +35,6 @@
 
 def pytest_addoption(parser):
     parser.addoption(
-        "--run-integration",
-        action=""
-        default=False,
-        help="run integration tests",
-    )
-    parser.addoption(
         "--run-slow", action="" default=False, help="run slow tests"
     )
 
@@ -105,14 +99,6 @@
             if "serial" in item.keywords:
                 item.add_marker(skip_serial)
 
-    if not config.getoption("--run-integration"):
-        skip_integration = pytest.mark.skip(
-            reason="need --run-integration option to run"
-        )
-        for item in items:
-            if "integration" in item.keywords:
-                item.add_marker(skip_integration)
-
     if not config.getoption("--run-slow"):
         skip_slow = pytest.mark.skip(reason="need --run-slow option to run")
         for item in items:

Modified: trunk/Tools/Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py (278039 => 278040)


--- trunk/Tools/Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py	2021-05-25 20:25:39 UTC (rev 278039)
+++ trunk/Tools/Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py	2021-05-25 20:27:57 UTC (rev 278040)
@@ -176,7 +176,7 @@
         # FIXME: Multiprocessing doesn't do well when nested in Python 3 (https://bugs.webkit.org/show_bug.cgi?id=205280)
         self.should_test_processes = not self._platform.is_win() and sys.version_info < (3, 0)
 
-    def test_basic(self):
+    def serial_test_basic(self):
         options, args = parse_args(tests_included=True)
         logging_stream = StringIO()
         host = MockHost()
@@ -208,7 +208,7 @@
 
         self.assertEqual(host.user.opened_urls, [path.abspath_to_uri(MockHost().platform, '/tmp/layout-test-results/results.html')])
 
-    def test_batch_size(self):
+    def serial_test_batch_size(self):
         batch_tests_run = get_test_batches(['--batch-size', '2'])
         for batch in batch_tests_run:
             self.assertTrue(len(batch) <= 2, '%s had too many tests' % ', '.join(batch))
@@ -226,7 +226,7 @@
                 tests_included=True, shared_port=False)
             self.assertTrue(any(['Running 1 ' in line for line in regular_output.getvalue().splitlines()]))
 
-    def test_dryrun(self):
+    def serial_test_dryrun(self):
         tests_run = get_tests_run(['--dry-run'])
         self.assertEqual(tests_run, [])
 
@@ -250,7 +250,7 @@
             self.assertRaises(BaseException, logging_run,
                 ['--child-processes', '2', '--force', 'failures/expected/exception.html', 'passes/text.html'], tests_included=True, shared_port=False)
 
-    def test_full_results_html(self):
+    def serial_test_full_results_html(self):
         # FIXME: verify html?
         details, _, _ = logging_run(['--full-results-html'])
         self.assertEqual(details.exit_code, 0)
@@ -308,21 +308,21 @@
         tests_run = get_tests_run(['--order=none'] + tests_to_run)
         self.assertEqual(tests_to_run, tests_run)
 
-    def test_no_order_with_directory_entries_in_natural_order(self):
+    def serial_test_no_order_with_directory_entries_in_natural_order(self):
         tests_to_run = ['http/tests/ssl', 'http/tests/passes']
         tests_run = get_tests_run(['--order=none'] + tests_to_run)
         self.assertEqual(tests_run, ['http/tests/ssl/text.html', 'http/tests/passes/image.html', 'http/tests/passes/text.html'])
 
-    def test_gc_between_tests(self):
+    def serial_test_gc_between_tests(self):
         self.assertTrue(passing_run(['--gc-between-tests']))
 
-    def test_check_for_world_leaks(self):
+    def serial_test_check_for_world_leaks(self):
         self.assertTrue(passing_run(['--world-leaks']))
 
-    def test_complex_text(self):
+    def serial_test_complex_text(self):
         self.assertTrue(passing_run(['--complex-text']))
 
-    def test_threaded(self):
+    def serial_test_threaded(self):
         self.assertTrue(passing_run(['--threaded']))
 
     def test_repeat_each(self):
@@ -381,7 +381,7 @@
         chunk_tests_run = get_tests_run(['--run-chunk', '1:3', '--skipped', 'always'] + tests_to_run)
         self.assertEqual(['passes/text.html', 'passes/error.html', 'passes/image.html'], chunk_tests_run)
 
-    def test_run_force(self):
+    def serial_test_run_force(self):
         # This raises an exception because we run
         # failures/expected/exception.html, which is normally SKIPped.
 
@@ -399,12 +399,12 @@
         chunk_tests_run = get_tests_run(['--run-part', '3:3', '--skipped', 'always'] + tests_to_run)
         self.assertEqual(['passes/error.html', 'passes/image.html'], chunk_tests_run)
 
-    def test_run_singly(self):
+    def serial_test_run_singly(self):
         batch_tests_run = get_test_batches(['--run-singly'])
         for batch in batch_tests_run:
             self.assertEqual(len(batch), 1, '%s had too many tests' % ', '.join(batch))
 
-    def test_skip_failing_tests(self):
+    def serial_test_skip_failing_tests(self):
         # This tests that we skip both known failing and known flaky tests. Because there are
         # no known flaky tests in the default test_expectations, we add additional expectations.
         host = MockHost()
@@ -418,7 +418,7 @@
             has_passes_text = has_passes_text or ('passes/text.html' in batch)
         self.assertTrue(has_passes_text)
 
-    def test_run_singly_actually_runs_tests(self):
+    def serial_test_run_singly_actually_runs_tests(self):
         details, _, _ = logging_run(['--run-singly'], tests_included=True)
         self.assertEqual(details.exit_code, test.UNEXPECTED_FAILURES - 1)  # failures/expected/hang.html actually passes w/ --run-singly.
 
@@ -434,7 +434,7 @@
         tests_run = get_tests_run(['failures/expected/keybaord.html'])
         self.assertEqual([], tests_run)
 
-    def test_stderr_is_saved(self):
+    def serial_test_stderr_is_saved(self):
         host = MockHost()
         self.assertTrue(passing_run(host=host))
         self.assertEqual(host.filesystem.read_text_file('/tmp/layout-test-results/passes/error-stderr.txt'),
@@ -661,7 +661,7 @@
         tests_run = get_tests_run(['failures/expected/crash.html', 'passes/text.html', '--exit-after-n-crashes-or-timeouts', '1'])
         self.assertEqual(['failures/expected/crash.html', 'passes/text.html'], tests_run)
 
-    def test_results_directory_absolute(self):
+    def serial_test_results_directory_absolute(self):
         # We run a configuration that should fail, to generate output, then
         # look for what the output results url was.
 
@@ -670,7 +670,7 @@
             _, _, user = logging_run(['--results-directory=' + str(tmpdir)], tests_included=True, host=host)
             self.assertEqual(user.opened_urls, [path.abspath_to_uri(host.platform, host.filesystem.join(tmpdir, 'results.html'))])
 
-    def test_results_directory_default(self):
+    def serial_test_results_directory_default(self):
         # We run a configuration that should fail, to generate output, then
         # look for what the output results url was.
 
@@ -678,7 +678,7 @@
         _, _, user = logging_run(tests_included=True)
         self.assertEqual(user.opened_urls, [path.abspath_to_uri(MockHost().platform, '/tmp/layout-test-results/results.html')])
 
-    def test_results_directory_relative(self):
+    def serial_test_results_directory_relative(self):
         # We run a configuration that should fail, to generate output, then
         # look for what the output results url was.
         host = MockHost()
@@ -744,7 +744,7 @@
         self.assertTrue(host.filesystem.exists('/tmp/layout-test-results/failures/unexpected/text-image-checksum-actual.txt'))
         self.assertTrue(host.filesystem.exists('/tmp/layout-test-results/retries/failures/unexpected/text-image-checksum-actual.txt'))
 
-    def test_run_order__inline(self):
+    def serial_test_run_order__inline(self):
         # These next tests test that we run the tests in ascending alphabetical
         # order per directory. HTTP tests are sharded separately from other tests,
         # so we have to test both.
@@ -807,7 +807,7 @@
         tests_run = get_test_results(['passes/mismatch.html'])
         self.assertEqual(tests_run[0].references, ['passes/mismatch-expected-mismatch.html'])
 
-    def test_additional_platform_directory(self):
+    def serial_test_additional_platform_directory(self):
         self.assertTrue(passing_run(['--additional-platform-directory', '/tmp/foo']))
         self.assertTrue(passing_run(['--additional-platform-directory', '/tmp/../foo']))
         self.assertTrue(passing_run(['--additional-platform-directory', '/tmp/foo', '--additional-platform-directory', '/tmp/bar']))
@@ -834,7 +834,7 @@
         self.assertEquals(details.retry_results.slow_tests,
                           {'failures/unexpected/timeout.html'})
 
-    def test_no_http_and_force(self):
+    def serial_test_no_http_and_force(self):
         # See test_run_force, using --force raises an exception.
         # FIXME: We would like to check the warnings generated.
         self.assertRaises(ValueError, logging_run, ['--force', '--no-http'])
@@ -843,7 +843,7 @@
     def has_test_of_type(tests, type):
         return [test for test in tests if type in test]
 
-    def test_no_http_tests(self):
+    def serial_test_no_http_tests(self):
         batch_tests_dryrun = get_tests_run(['LayoutTests/http', 'websocket/'])
         self.assertTrue(RunTest.has_test_of_type(batch_tests_dryrun, 'http'))
         self.assertTrue(RunTest.has_test_of_type(batch_tests_dryrun, 'websocket'))
@@ -856,7 +856,7 @@
         self.assertTrue(RunTest.has_test_of_type(batch_tests_run_http, 'http'))
         self.assertTrue(RunTest.has_test_of_type(batch_tests_run_http, 'websocket'))
 
-    def test_platform_tests_are_found(self):
+    def serial_test_platform_tests_are_found(self):
         tests_run = get_tests_run(['--platform', 'test-mac-leopard', 'http'])
         self.assertTrue('platform/test-mac-leopard/http/test.html' in tests_run)
         self.assertFalse('platform/test-win-win7/http/test.html' in tests_run)

Modified: trunk/Tools/Scripts/webkitpy/layout_tests/servers/http_server_integrationtest.py (278039 => 278040)


--- trunk/Tools/Scripts/webkitpy/layout_tests/servers/http_server_integrationtest.py	2021-05-25 20:25:39 UTC (rev 278039)
+++ trunk/Tools/Scripts/webkitpy/layout_tests/servers/http_server_integrationtest.py	2021-05-25 20:27:57 UTC (rev 278040)
@@ -38,9 +38,14 @@
 import tempfile
 import unittest
 
+from copy import copy
 
+from webkitpy.test.markers import slow, xfail, skip
+
+
 class BaseTest(unittest.TestCase):
     """Basic framework for script tests."""
+    __pytest_no_rewrite__ = True
     HOST = 'localhost'
 
     # Override in actual test classes.
@@ -132,14 +137,41 @@
 
 class HTTPServerTest(BaseTest):
     """Tests that new-run-webkit-http must pass."""
+    __pytest_no_rewrite__ = False
 
     PORTS = (8000, 8080, 8443)
     SCRIPT_NAME = 'new-run-webkit-httpd'
 
+    @xfail
+    def integration_test_server__normal(self):
+        return super(HTTPServerTest, self).integration_test_server__normal()
 
+    @xfail
+    def integration_test_server__fails(self):
+        return super(HTTPServerTest, self).integration_test_server__fails()
+
+    @xfail
+    def integration_test_port_and_root(self):
+        return super(HTTPServerTest, self).integration_test_port_and_root()
+
+
 class WebsocketserverTest(BaseTest):
     """Tests that new-run-webkit-websocketserver must pass."""
+    __pytest_no_rewrite__ = False
 
     # FIXME: test TLS at some point?
     PORTS = (8880, )
     SCRIPT_NAME = 'new-run-webkit-websocketserver'
+
+    @skip("flaky")
+    def integration_test_server__normal(self):
+        return super(WebsocketserverTest, self).integration_test_server__normal()
+
+    @skip("flaky")
+    def integration_test_server__fails(self):
+        return super(WebsocketserverTest, self).integration_test_server__fails()
+
+    @slow
+    @xfail
+    def integration_test_port_and_root(self):
+        return super(WebsocketserverTest, self).integration_test_port_and_root()

Modified: trunk/Tools/Scripts/webkitpy/port/port_testcase.py (278039 => 278040)


--- trunk/Tools/Scripts/webkitpy/port/port_testcase.py	2021-05-25 20:25:39 UTC (rev 278039)
+++ trunk/Tools/Scripts/webkitpy/port/port_testcase.py	2021-05-25 20:27:57 UTC (rev 278040)
@@ -50,6 +50,8 @@
 from webkitpy.layout_tests.servers import http_server_base
 from webkitpy.tool.mocktool import MockOptions
 
+from webkitpy.test.markers import slow, xfail
+
 from webkitcorepy import OutputCapture
 
 
@@ -173,6 +175,7 @@
         port.start_helper()
         port.stop_helper()
 
+    @xfail
     def integration_test_http_server__normal(self):
         port = self.make_port()
         self.assert_servers_are_down('localhost', self.HTTP_PORTS)
@@ -181,6 +184,7 @@
         port.stop_http_server()
         self.assert_servers_are_down('localhost', self.HTTP_PORTS)
 
+    @xfail
     def integration_test_http_server__fails(self):
         port = self.make_port()
         # Test that if a port isn't available, the call fails.
@@ -209,6 +213,7 @@
         finally:
             port.stop_http_server()
 
+    @xfail
     def integration_test_http_server__two_servers(self):
         # Test that calling start() on two different ports causes the
         # first port to be treated as stale and killed.
@@ -344,6 +349,8 @@
         self.assertEqual(port.diff_image(b'foo', b'bar'), (b'', 0, 'ImageDiff crashed\n'))
         port.clean_up_test_run()
 
+    @slow
+    @xfail
     def integration_test_websocket_server__normal(self):
         port = self.make_port()
         self.assert_servers_are_down('localhost', self.WEBSOCKET_PORTS)
@@ -352,6 +359,7 @@
         port.stop_websocket_server()
         self.assert_servers_are_down('localhost', self.WEBSOCKET_PORTS)
 
+    @xfail
     def integration_test_websocket_server__fails(self):
         port = self.make_port()
 
@@ -376,6 +384,7 @@
         finally:
             port.stop_websocket_server()
 
+    @xfail
     def integration_test_websocket_server__two_servers(self):
         port = self.make_port()
 
@@ -410,6 +419,7 @@
         self.assertTrue(len(port.all_test_configurations()) > 0)
         self.assertTrue(port.test_configuration() in port.all_test_configurations(), "%s not in %s" % (port.test_configuration(), port.all_test_configurations()))
 
+    @xfail
     def integration_test_http_server__loop(self):
         port = self.make_port()
 

Modified: trunk/Tools/Scripts/webkitpy/test/main_unittest.py (278039 => 278040)


--- trunk/Tools/Scripts/webkitpy/test/main_unittest.py	2021-05-25 20:25:39 UTC (rev 278039)
+++ trunk/Tools/Scripts/webkitpy/test/main_unittest.py	2021-05-25 20:27:57 UTC (rev 278040)
@@ -30,6 +30,7 @@
 from webkitpy.common.system.filesystem import FileSystem
 from webkitpy.common.system.executive import Executive
 from webkitpy.test.main import Tester, _Loader
+from webkitpy.test.markers import xfail
 
 from webkitcorepy import OutputCapture
 
@@ -107,6 +108,7 @@
             STUBS_CLASS + '.serial_test_empty',
             ])
 
+    @xfail
     def integration_test_coverage_works(self):
         filesystem = FileSystem()
         executive = Executive()

Modified: trunk/Tools/Scripts/webkitpy/test/markers.py (278039 => 278040)


--- trunk/Tools/Scripts/webkitpy/test/markers.py	2021-05-25 20:25:39 UTC (rev 278039)
+++ trunk/Tools/Scripts/webkitpy/test/markers.py	2021-05-25 20:27:57 UTC (rev 278040)
@@ -64,3 +64,6 @@
         return pytest.mark.slow(func)
     except NameError:
         return func
+
+
+skip = unittest.skip

Modified: trunk/Tools/Scripts/webkitpy/tool/steps/haslanded_unittest.py (278039 => 278040)


--- trunk/Tools/Scripts/webkitpy/tool/steps/haslanded_unittest.py	2021-05-25 20:25:39 UTC (rev 278039)
+++ trunk/Tools/Scripts/webkitpy/tool/steps/haslanded_unittest.py	2021-05-25 20:27:57 UTC (rev 278040)
@@ -30,12 +30,14 @@
 import unittest
 
 from webkitpy.tool.steps.haslanded import HasLanded
+from webkitpy.test.markers import skip
 
 
 class HasLandedTest(unittest.TestCase):
     maxDiff = None
 
-    @unittest.skipUnless(subprocess.call('which interdiff', shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) == 0, "requires interdiff")
+    @unittest.skip("https://bugs.webkit.org/show_bug.cgi?id=226230")
+    # @unittest.skipUnless(subprocess.call('which interdiff', shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) == 0, "requires interdiff")
     def test_run(self):
         # These patches require trailing whitespace to remain valid patches.
         diff1 = """\
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to