Modified: trunk/Tools/ChangeLog (244700 => 244701)
--- trunk/Tools/ChangeLog 2019-04-26 18:10:17 UTC (rev 244700)
+++ trunk/Tools/ChangeLog 2019-04-26 18:25:28 UTC (rev 244701)
@@ -1,3 +1,24 @@
+2019-04-26 Jonathan Bedard <[email protected]>
+
+ webkitpy: Running a single test will always use the default device
+ https://bugs.webkit.org/show_bug.cgi?id=195472
+ <rdar://problem/48724825>
+
+ Reviewed by Lucas Forschler.
+
+ It makes more sense to have the Manager class handle the case where a user specifically requests a test which is
+ skipped on the current configuration. This changes the behavior when running part of a test shard, now tests explicitly
+ requested will be run regardless of what shard they are in.
+
+ * Scripts/webkitpy/layout_tests/controllers/layout_test_finder.py:
+ (LayoutTestFinder.skip_tests): Caller should manage running skipped tests which were explicitly requested.
+ * Scripts/webkitpy/layout_tests/controllers/manager.py:
+ (Manager.run): If a test is marked as skipped for the configuration, but was specifically requested, run it anyways
+ on the default device type.
+ * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py:
+ (RunTest.test_run_chunk): Explicitly requesting a test will override sharing behavior.
+ (RunTest.test_run_part): Ditto.
+
2019-04-26 Alex Christensen <[email protected]>
Add ENABLE(CONTENT_EXTENSIONS) and namespace ContentExtensions to ResourceLoadInfo.h
Modified: trunk/Tools/Scripts/webkitpy/layout_tests/controllers/layout_test_finder.py (244700 => 244701)
--- trunk/Tools/Scripts/webkitpy/layout_tests/controllers/layout_test_finder.py 2019-04-26 18:10:17 UTC (rev 244700)
+++ trunk/Tools/Scripts/webkitpy/layout_tests/controllers/layout_test_finder.py 2019-04-26 18:25:28 UTC (rev 244701)
@@ -130,9 +130,6 @@
tests_to_skip = all_tests - tests_to_skip
elif self._options.skipped == 'ignore':
tests_to_skip = set()
- elif self._options.skipped != 'always':
- # make sure we're explicitly running any tests passed on the command line; equivalent to 'default'.
- tests_to_skip -= set(paths)
# unless of course we don't want to run the HTTP tests :)
if not self._options.http:
Modified: trunk/Tools/Scripts/webkitpy/layout_tests/controllers/manager.py (244700 => 244701)
--- trunk/Tools/Scripts/webkitpy/layout_tests/controllers/manager.py 2019-04-26 18:10:17 UTC (rev 244700)
+++ trunk/Tools/Scripts/webkitpy/layout_tests/controllers/manager.py 2019-04-26 18:25:28 UTC (rev 244701)
@@ -205,6 +205,13 @@
tests_to_run_by_device[device_type] = [test for test in tests_to_run if test not in aggregate_tests]
aggregate_tests.update(tests_to_run)
+ # If a test is marked skipped, but was explicitly requested, run it anyways
+ if self._options.skipped != 'always':
+ for arg in args:
+ if arg in total_tests and arg not in aggregate_tests:
+ tests_to_run_by_device[device_type_list[0]].append(arg)
+ aggregate_tests.add(arg)
+
tests_to_skip = total_tests - aggregate_tests
self._printer.print_found(len(aggregate_test_names), len(aggregate_tests), self._options.repeat_each, self._options.iterations)
start_time = time.time()
Modified: trunk/Tools/Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py (244700 => 244701)
--- trunk/Tools/Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py 2019-04-26 18:10:17 UTC (rev 244700)
+++ trunk/Tools/Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py 2019-04-26 18:25:28 UTC (rev 244701)
@@ -385,7 +385,7 @@
# Test that we wrap around if the number of tests is not evenly divisible by the chunk size
tests_to_run = ['passes/error.html', 'passes/image.html', 'passes/platform_image.html', 'passes/text.html']
- chunk_tests_run = get_tests_run(['--run-chunk', '1:3'] + tests_to_run)
+ 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):
@@ -397,13 +397,13 @@
def test_run_part(self):
# Test that we actually select the right part
tests_to_run = ['passes/error.html', 'passes/image.html', 'passes/platform_image.html', 'passes/text.html']
- tests_run = get_tests_run(['--run-part', '1:2'] + tests_to_run)
+ tests_run = get_tests_run(['--run-part', '1:2', '--skipped', 'always'] + tests_to_run)
self.assertEqual(['passes/error.html', 'passes/image.html'], tests_run)
# Test that we wrap around if the number of tests is not evenly divisible by the chunk size
# (here we end up with 3 parts, each with 2 tests, and we only have 4 tests total, so the
# last part repeats the first two tests).
- chunk_tests_run = get_tests_run(['--run-part', '3:3'] + tests_to_run)
+ 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):