Title: [287267] trunk/Tools
- Revision
- 287267
- Author
- n...@apple.com
- Date
- 2021-12-20 11:03:36 -0800 (Mon, 20 Dec 2021)
Log Message
Stop assuming WPT is a reftest based on existence of -ref.html file
https://bugs.webkit.org/show_bug.cgi?id=234510
Reviewed by Sam Sneddon & Darin Adler.
Only the presence of <link rel="match">/<link rel="mismatch"> indicates a test is a reftest. The script
should not assume that the existence of a similarly named file with a `-ref.html` suffix means that the
original test file is reftest.
Here's how upstream WPT detects reftests:
https://github.com/web-platform-tests/wpt/blob/22f29564bb82b407aeaf6507c8efffdbd51b9974/tools/manifest/sourcefile.py#L1065
* Scripts/webkitpy/w3c/test_parser.py:
(TestParser.analyze_test):
(TestParser.fuzzy_metadata):
(TestParser.is_reference_filename):
(TestParser.potential_ref_filename): Deleted.
(TestParser.is_wpt_reftest): Deleted.
* Scripts/webkitpy/w3c/test_parser_unittest.py:
Modified Paths
Diff
Modified: trunk/Tools/ChangeLog (287266 => 287267)
--- trunk/Tools/ChangeLog 2021-12-20 19:02:00 UTC (rev 287266)
+++ trunk/Tools/ChangeLog 2021-12-20 19:03:36 UTC (rev 287267)
@@ -1,3 +1,25 @@
+2021-12-20 Tim Nguyen <n...@apple.com>
+
+ Stop assuming WPT is a reftest based on existence of -ref.html file
+ https://bugs.webkit.org/show_bug.cgi?id=234510
+
+ Reviewed by Sam Sneddon & Darin Adler.
+
+ Only the presence of <link rel="match">/<link rel="mismatch"> indicates a test is a reftest. The script
+ should not assume that the existence of a similarly named file with a `-ref.html` suffix means that the
+ original test file is reftest.
+
+ Here's how upstream WPT detects reftests:
+ https://github.com/web-platform-tests/wpt/blob/22f29564bb82b407aeaf6507c8efffdbd51b9974/tools/manifest/sourcefile.py#L1065
+
+ * Scripts/webkitpy/w3c/test_parser.py:
+ (TestParser.analyze_test):
+ (TestParser.fuzzy_metadata):
+ (TestParser.is_reference_filename):
+ (TestParser.potential_ref_filename): Deleted.
+ (TestParser.is_wpt_reftest): Deleted.
+ * Scripts/webkitpy/w3c/test_parser_unittest.py:
+
2021-12-20 Lauro Moura <lmo...@igalia.com>
[webkitcorepy] Require cryptography while on Linux with Py3
Modified: trunk/Tools/Scripts/webkitpy/w3c/test_parser.py (287266 => 287267)
--- trunk/Tools/Scripts/webkitpy/w3c/test_parser.py 2021-12-20 19:02:00 UTC (rev 287266)
+++ trunk/Tools/Scripts/webkitpy/w3c/test_parser.py 2021-12-20 19:03:36 UTC (rev 287267)
@@ -120,16 +120,12 @@
reference_relpath = self.filesystem.relpath(self.filesystem.dirname(self.filename), self.filesystem.dirname(ref_file)) + self.filesystem.sep
test_info['reference_support_info'] = {'reference_relpath': reference_relpath, 'files': reference_support_files}
- # not all reference tests have a <link rel='match'> element in WPT repo
- elif self.is_wpt_reftest():
- test_info = {'test': self.filename, 'reference': self.potential_ref_filename()}
- test_info['reference_support_info'] = {}
# we check for wpt manual test before checking for jstest, as some WPT manual tests can be classified as CSS JS tests
- elif self.is_wpt_manualtest():
+ elif self.is_wpt_manualtest() and not self.is_reference_filename():
test_info = {'test': self.filename, 'manualtest': True}
elif self.is_jstest():
test_info = {'test': self.filename, 'jstest': True}
- elif '-ref' in self.filename or 'reference' in self.filename:
+ elif self.is_reference_filename():
test_info = {'referencefile': self.filename}
elif self.options['all'] is True:
test_info = {'test': self.filename}
@@ -168,6 +164,12 @@
return False
+ def is_reference_filename(self):
+ # From tools/manifest/sourcefile.py in WPT repository
+ # https://github.com/web-platform-tests/wpt/blob/22f29564bb82b407aeaf6507c8efffdbd51b9974/tools/manifest/sourcefile.py#L405
+ reference_file_re = re.compile(r'(^|[\-_])(not)?ref[0-9]*([\-_]|$)')
+ return "/reference/" in self.filename or bool(reference_file_re.search(self.filename))
+
def is_slow_test(self):
return any([match.name == 'meta' and match['name'] == 'timeout' for match in self.test_doc.findAll(content='long')])
@@ -237,15 +239,6 @@
return result
- def potential_ref_filename(self):
- parts = self.filesystem.splitext(self.filename)
- return parts[0] + '-ref' + parts[1]
-
- def is_wpt_reftest(self):
- """Returns whether the test is a ref test according WPT rules (i.e. file has a -ref.html counterpart)."""
- parts = self.filesystem.splitext(self.filename)
- return self.filesystem.isfile(self.potential_ref_filename())
-
def support_files(self, doc):
""" Searches the file for all paths specified in url()'s, href or src attributes."""
support_files = []
Modified: trunk/Tools/Scripts/webkitpy/w3c/test_parser_unittest.py (287266 => 287267)
--- trunk/Tools/Scripts/webkitpy/w3c/test_parser_unittest.py 2021-12-20 19:02:00 UTC (rev 287266)
+++ trunk/Tools/Scripts/webkitpy/w3c/test_parser_unittest.py 2021-12-20 19:03:36 UTC (rev 287267)
@@ -195,6 +195,15 @@
test_info = parser.analyze_test(test_contents=test_html)
self.assertFalse('manualtest' in test_info.keys() and test_info['manualtest'], 'test_info is not manual')
+ parser = TestParser(options, os.path.join(test_path, 'somefile-ref-manual.html'))
+ test_info = parser.analyze_test(test_contents=test_html)
+ self.assertFalse('manualtest' in test_info.keys() and test_info['manualtest'], 'test_info is not manual')
+
+ ref_test_path = os.path.join(os.path.sep, 'some', 'madeup', 'path', 'reference')
+ parser = TestParser(options, os.path.join(ref_test_path, 'somefile-manual.html'))
+ test_info = parser.analyze_test(test_contents=test_html)
+ self.assertFalse('manualtest' in test_info.keys() and test_info['manualtest'], 'test_info is not manual')
+
def test_analyze_css_manual_test(self):
""" Tests analyze_test() using a css manual test """
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes