Modified: trunk/Tools/ChangeLog (283131 => 283132)
--- trunk/Tools/ChangeLog 2021-09-27 20:18:19 UTC (rev 283131)
+++ trunk/Tools/ChangeLog 2021-09-27 21:05:17 UTC (rev 283132)
@@ -1,3 +1,16 @@
+2021-09-27 Sam Sneddon <[email protected]>
+
+ Port._natural_sort_key should sort a01 before a001
+ https://bugs.webkit.org/show_bug.cgi?id=230764
+
+ Reviewed by Jonathan Bedard.
+
+ * Scripts/webkitpy/port/base.py:
+ (Port._natural_sort_key):
+ * Scripts/webkitpy/port/base_unittest.py:
+ (NaturalCompareTest.test_natural_compare):
+ (KeyCompareTest.test_test_key):
+
2021-09-27 Commit Queue <[email protected]>
Unreviewed, reverting r283102, r283103 and r283104.
Modified: trunk/Tools/Scripts/webkitpy/port/base.py (283131 => 283132)
--- trunk/Tools/Scripts/webkitpy/port/base.py 2021-09-27 20:18:19 UTC (rev 283131)
+++ trunk/Tools/Scripts/webkitpy/port/base.py 2021-09-27 21:05:17 UTC (rev 283132)
@@ -544,7 +544,7 @@
except ValueError:
return val
- return [tryint(chunk) for chunk in re.split(r'(\d+)', string_to_split)]
+ return [(tryint(chunk), chunk) for chunk in re.split(r'(\d+)', string_to_split)]
def test_dirs(self):
"""Returns the list of top-level test directories."""
Modified: trunk/Tools/Scripts/webkitpy/port/base_unittest.py (283131 => 283132)
--- trunk/Tools/Scripts/webkitpy/port/base_unittest.py 2021-09-27 20:18:19 UTC (rev 283131)
+++ trunk/Tools/Scripts/webkitpy/port/base_unittest.py 2021-09-27 21:05:17 UTC (rev 283132)
@@ -357,6 +357,9 @@
self.assert_cmp('a', 'ab', -1)
self.assert_cmp('', '', 0)
self.assert_cmp('', 'ab', -1)
+ self.assert_cmp('01', '1', -1)
+ self.assert_cmp('001', '1', -1)
+ self.assert_cmp('001', '01', -1)
self.assert_cmp('1', '2', -1)
self.assert_cmp('2', '1', 1)
self.assert_cmp('1', '10', -1)
@@ -379,9 +382,15 @@
def test_test_key(self):
self.assert_cmp('/a', '/a', 0)
self.assert_cmp('/a', '/b', -1)
+ self.assert_cmp('/a', '/a2', -1)
self.assert_cmp('/a2', '/a10', -1)
self.assert_cmp('/a2/foo', '/a10/foo', -1)
self.assert_cmp('/a/foo11', '/a/foo2', 1)
+ self.assert_cmp('/a/foo1', '/a/foo01', 1)
+ self.assert_cmp('/a/foo01', '/a/foo001', 1)
self.assert_cmp('/ab', '/a/a/b', -1)
self.assert_cmp('/a/a/b', '/ab', 1)
self.assert_cmp('/foo-bar/baz', '/foo/baz', -1)
+ self.assert_cmp('/foo!bar/baz', '/foo/bar/baz', -1)
+ self.assert_cmp('/foo-bar/baz', '/foo/bar/baz', -1)
+ self.assert_cmp('/foo_bar/baz', '/foo/bar/baz', 1)