]> git.ipfire.org Git - thirdparty/mkosi.git/commitdiff
make version test more readable 3722/head
authorJörg Behrmann <behrmann@physik.fu-berlin.de>
Fri, 9 May 2025 16:47:49 +0000 (18:47 +0200)
committerJörg Behrmann <behrmann@physik.fu-berlin.de>
Tue, 20 May 2025 12:07:10 +0000 (14:07 +0200)
tests/test_versioncomp.py

index d715d3e8708fc7c391504df2d87bb3a90ff29fca..7e1b773cb38fec5f82790e94a2a833922ec41dfa 100644 (file)
@@ -98,142 +98,146 @@ def RPMVERCMP(a: str, b: str, expected: int) -> None:
 
 
 def test_generic_version_rpmvercmp() -> None:
+    EQUAL = 0
+    RIGHT_SMALLER = 1
+    LEFT_SMALLER = -1
+
     # Tests copied from rpm's rpmio test suite, under the LGPL license:
     # https://github.com/rpm-software-management/rpm/blob/master/tests/rpmvercmp.at.
     # The original form is retained as much as possible for easy comparisons and updates.
 
-    RPMVERCMP("1.0", "1.0", 0)
-    RPMVERCMP("1.0", "2.0", -1)
-    RPMVERCMP("2.0", "1.0", 1)
+    RPMVERCMP("1.0", "1.0", EQUAL)
+    RPMVERCMP("1.0", "2.0", LEFT_SMALLER)
+    RPMVERCMP("2.0", "1.0", RIGHT_SMALLER)
 
-    RPMVERCMP("2.0.1", "2.0.1", 0)
-    RPMVERCMP("2.0", "2.0.1", -1)
-    RPMVERCMP("2.0.1", "2.0", 1)
+    RPMVERCMP("2.0.1", "2.0.1", EQUAL)
+    RPMVERCMP("2.0", "2.0.1", LEFT_SMALLER)
+    RPMVERCMP("2.0.1", "2.0", RIGHT_SMALLER)
 
-    RPMVERCMP("2.0.1a", "2.0.1a", 0)
-    RPMVERCMP("2.0.1a", "2.0.1", 1)
-    RPMVERCMP("2.0.1", "2.0.1a", -1)
+    RPMVERCMP("2.0.1a", "2.0.1a", EQUAL)
+    RPMVERCMP("2.0.1a", "2.0.1", RIGHT_SMALLER)
+    RPMVERCMP("2.0.1", "2.0.1a", LEFT_SMALLER)
 
-    RPMVERCMP("5.5p1", "5.5p1", 0)
-    RPMVERCMP("5.5p1", "5.5p2", -1)
-    RPMVERCMP("5.5p2", "5.5p1", 1)
+    RPMVERCMP("5.5p1", "5.5p1", EQUAL)
+    RPMVERCMP("5.5p1", "5.5p2", LEFT_SMALLER)
+    RPMVERCMP("5.5p2", "5.5p1", RIGHT_SMALLER)
 
-    RPMVERCMP("5.5p10", "5.5p10", 0)
-    RPMVERCMP("5.5p1", "5.5p10", -1)
-    RPMVERCMP("5.5p10", "5.5p1", 1)
+    RPMVERCMP("5.5p10", "5.5p10", EQUAL)
+    RPMVERCMP("5.5p1", "5.5p10", LEFT_SMALLER)
+    RPMVERCMP("5.5p10", "5.5p1", RIGHT_SMALLER)
 
-    RPMVERCMP("10xyz", "10.1xyz", 1)  # Note: this is reversed from rpm's vercmp */
-    RPMVERCMP("10.1xyz", "10xyz", -1)  # Note: this is reversed from rpm's vercmp */
+    RPMVERCMP("10xyz", "10.1xyz", RIGHT_SMALLER)  # Note: this is reversed from rpm's vercmp */
+    RPMVERCMP("10.1xyz", "10xyz", LEFT_SMALLER)  # Note: this is reversed from rpm's vercmp */
 
-    RPMVERCMP("xyz10", "xyz10", 0)
-    RPMVERCMP("xyz10", "xyz10.1", -1)
-    RPMVERCMP("xyz10.1", "xyz10", 1)
+    RPMVERCMP("xyz10", "xyz10", EQUAL)
+    RPMVERCMP("xyz10", "xyz10.1", LEFT_SMALLER)
+    RPMVERCMP("xyz10.1", "xyz10", RIGHT_SMALLER)
 
-    RPMVERCMP("xyz.4", "xyz.4", 0)
-    RPMVERCMP("xyz.4", "8", -1)
-    RPMVERCMP("8", "xyz.4", 1)
-    RPMVERCMP("xyz.4", "2", -1)
-    RPMVERCMP("2", "xyz.4", 1)
+    RPMVERCMP("xyz.4", "xyz.4", EQUAL)
+    RPMVERCMP("xyz.4", "8", LEFT_SMALLER)
+    RPMVERCMP("8", "xyz.4", RIGHT_SMALLER)
+    RPMVERCMP("xyz.4", "2", LEFT_SMALLER)
+    RPMVERCMP("2", "xyz.4", RIGHT_SMALLER)
 
-    RPMVERCMP("5.5p2", "5.6p1", -1)
-    RPMVERCMP("5.6p1", "5.5p2", 1)
+    RPMVERCMP("5.5p2", "5.6p1", LEFT_SMALLER)
+    RPMVERCMP("5.6p1", "5.5p2", RIGHT_SMALLER)
 
-    RPMVERCMP("5.6p1", "6.5p1", -1)
-    RPMVERCMP("6.5p1", "5.6p1", 1)
+    RPMVERCMP("5.6p1", "6.5p1", LEFT_SMALLER)
+    RPMVERCMP("6.5p1", "5.6p1", RIGHT_SMALLER)
 
-    RPMVERCMP("6.0.rc1", "6.0", 1)
-    RPMVERCMP("6.0", "6.0.rc1", -1)
+    RPMVERCMP("6.0.rc1", "6.0", RIGHT_SMALLER)
+    RPMVERCMP("6.0", "6.0.rc1", LEFT_SMALLER)
 
-    RPMVERCMP("10b2", "10a1", 1)
-    RPMVERCMP("10a2", "10b2", -1)
+    RPMVERCMP("10b2", "10a1", RIGHT_SMALLER)
+    RPMVERCMP("10a2", "10b2", LEFT_SMALLER)
 
-    RPMVERCMP("1.0aa", "1.0aa", 0)
-    RPMVERCMP("1.0a", "1.0aa", -1)
-    RPMVERCMP("1.0aa", "1.0a", 1)
+    RPMVERCMP("1.0aa", "1.0aa", EQUAL)
+    RPMVERCMP("1.0a", "1.0aa", LEFT_SMALLER)
+    RPMVERCMP("1.0aa", "1.0a", RIGHT_SMALLER)
 
-    RPMVERCMP("10.0001", "10.0001", 0)
-    RPMVERCMP("10.0001", "10.1", 0)
-    RPMVERCMP("10.1", "10.0001", 0)
-    RPMVERCMP("10.0001", "10.0039", -1)
-    RPMVERCMP("10.0039", "10.0001", 1)
+    RPMVERCMP("10.0001", "10.0001", EQUAL)
+    RPMVERCMP("10.0001", "10.1", EQUAL)
+    RPMVERCMP("10.1", "10.0001", EQUAL)
+    RPMVERCMP("10.0001", "10.0039", LEFT_SMALLER)
+    RPMVERCMP("10.0039", "10.0001", RIGHT_SMALLER)
 
-    RPMVERCMP("4.999.9", "5.0", -1)
-    RPMVERCMP("5.0", "4.999.9", 1)
+    RPMVERCMP("4.999.9", "5.0", LEFT_SMALLER)
+    RPMVERCMP("5.0", "4.999.9", RIGHT_SMALLER)
 
-    RPMVERCMP("20101121", "20101121", 0)
-    RPMVERCMP("20101121", "20101122", -1)
-    RPMVERCMP("20101122", "20101121", 1)
+    RPMVERCMP("20101121", "20101121", EQUAL)
+    RPMVERCMP("20101121", "20101122", LEFT_SMALLER)
+    RPMVERCMP("20101122", "20101121", RIGHT_SMALLER)
 
-    RPMVERCMP("2_0", "2_0", 0)
-    RPMVERCMP("2.0", "2_0", -1)  # Note: in rpm those compare equal
-    RPMVERCMP("2_0", "2.0", 1)  # Note: in rpm those compare equal
+    RPMVERCMP("2_0", "2_0", EQUAL)
+    RPMVERCMP("2.0", "2_0", LEFT_SMALLER)  # Note: in rpm those compare equal
+    RPMVERCMP("2_0", "2.0", RIGHT_SMALLER)  # Note: in rpm those compare equal
 
     # RhBug:178798 case */
-    RPMVERCMP("a", "a", 0)
-    RPMVERCMP("a+", "a+", 0)
-    RPMVERCMP("a+", "a_", 0)
-    RPMVERCMP("a_", "a+", 0)
-    RPMVERCMP("+a", "+a", 0)
-    RPMVERCMP("+a", "_a", 0)
-    RPMVERCMP("_a", "+a", 0)
-    RPMVERCMP("+_", "+_", 0)
-    RPMVERCMP("_+", "+_", 0)
-    RPMVERCMP("_+", "_+", 0)
-    RPMVERCMP("+", "_", 0)
-    RPMVERCMP("_", "+", 0)
+    RPMVERCMP("a", "a", EQUAL)
+    RPMVERCMP("a+", "a+", EQUAL)
+    RPMVERCMP("a+", "a_", EQUAL)
+    RPMVERCMP("a_", "a+", EQUAL)
+    RPMVERCMP("+a", "+a", EQUAL)
+    RPMVERCMP("+a", "_a", EQUAL)
+    RPMVERCMP("_a", "+a", EQUAL)
+    RPMVERCMP("+_", "+_", EQUAL)
+    RPMVERCMP("_+", "+_", EQUAL)
+    RPMVERCMP("_+", "_+", EQUAL)
+    RPMVERCMP("+", "_", EQUAL)
+    RPMVERCMP("_", "+", EQUAL)
 
     # Basic testcases for tilde sorting
-    RPMVERCMP("1.0~rc1", "1.0~rc1", 0)
-    RPMVERCMP("1.0~rc1", "1.0", -1)
-    RPMVERCMP("1.0", "1.0~rc1", 1)
-    RPMVERCMP("1.0~rc1", "1.0~rc2", -1)
-    RPMVERCMP("1.0~rc2", "1.0~rc1", 1)
-    RPMVERCMP("1.0~rc1~git123", "1.0~rc1~git123", 0)
-    RPMVERCMP("1.0~rc1~git123", "1.0~rc1", -1)
-    RPMVERCMP("1.0~rc1", "1.0~rc1~git123", 1)
+    RPMVERCMP("1.0~rc1", "1.0~rc1", EQUAL)
+    RPMVERCMP("1.0~rc1", "1.0", LEFT_SMALLER)
+    RPMVERCMP("1.0", "1.0~rc1", RIGHT_SMALLER)
+    RPMVERCMP("1.0~rc1", "1.0~rc2", LEFT_SMALLER)
+    RPMVERCMP("1.0~rc2", "1.0~rc1", RIGHT_SMALLER)
+    RPMVERCMP("1.0~rc1~git123", "1.0~rc1~git123", EQUAL)
+    RPMVERCMP("1.0~rc1~git123", "1.0~rc1", LEFT_SMALLER)
+    RPMVERCMP("1.0~rc1", "1.0~rc1~git123", RIGHT_SMALLER)
 
     # Basic testcases for caret sorting
-    RPMVERCMP("1.0^", "1.0^", 0)
-    RPMVERCMP("1.0^", "1.0", 1)
-    RPMVERCMP("1.0", "1.0^", -1)
-    RPMVERCMP("1.0^git1", "1.0^git1", 0)
-    RPMVERCMP("1.0^git1", "1.0", 1)
-    RPMVERCMP("1.0", "1.0^git1", -1)
-    RPMVERCMP("1.0^git1", "1.0^git2", -1)
-    RPMVERCMP("1.0^git2", "1.0^git1", 1)
-    RPMVERCMP("1.0^git1", "1.01", -1)
-    RPMVERCMP("1.01", "1.0^git1", 1)
-    RPMVERCMP("1.0^20160101", "1.0^20160101", 0)
-    RPMVERCMP("1.0^20160101", "1.0.1", -1)
-    RPMVERCMP("1.0.1", "1.0^20160101", 1)
-    RPMVERCMP("1.0^20160101^git1", "1.0^20160101^git1", 0)
-    RPMVERCMP("1.0^20160102", "1.0^20160101^git1", 1)
-    RPMVERCMP("1.0^20160101^git1", "1.0^20160102", -1)
+    RPMVERCMP("1.0^", "1.0^", EQUAL)
+    RPMVERCMP("1.0^", "1.0", RIGHT_SMALLER)
+    RPMVERCMP("1.0", "1.0^", LEFT_SMALLER)
+    RPMVERCMP("1.0^git1", "1.0^git1", EQUAL)
+    RPMVERCMP("1.0^git1", "1.0", RIGHT_SMALLER)
+    RPMVERCMP("1.0", "1.0^git1", LEFT_SMALLER)
+    RPMVERCMP("1.0^git1", "1.0^git2", LEFT_SMALLER)
+    RPMVERCMP("1.0^git2", "1.0^git1", RIGHT_SMALLER)
+    RPMVERCMP("1.0^git1", "1.01", LEFT_SMALLER)
+    RPMVERCMP("1.01", "1.0^git1", RIGHT_SMALLER)
+    RPMVERCMP("1.0^20160101", "1.0^20160101", EQUAL)
+    RPMVERCMP("1.0^20160101", "1.0.1", LEFT_SMALLER)
+    RPMVERCMP("1.0.1", "1.0^20160101", RIGHT_SMALLER)
+    RPMVERCMP("1.0^20160101^git1", "1.0^20160101^git1", EQUAL)
+    RPMVERCMP("1.0^20160102", "1.0^20160101^git1", RIGHT_SMALLER)
+    RPMVERCMP("1.0^20160101^git1", "1.0^20160102", LEFT_SMALLER)
 
     # Basic testcases for tilde and caret sorting */
-    RPMVERCMP("1.0~rc1^git1", "1.0~rc1^git1", 0)
-    RPMVERCMP("1.0~rc1^git1", "1.0~rc1", 1)
-    RPMVERCMP("1.0~rc1", "1.0~rc1^git1", -1)
-    RPMVERCMP("1.0^git1~pre", "1.0^git1~pre", 0)
-    RPMVERCMP("1.0^git1", "1.0^git1~pre", 1)
-    RPMVERCMP("1.0^git1~pre", "1.0^git1", -1)
+    RPMVERCMP("1.0~rc1^git1", "1.0~rc1^git1", EQUAL)
+    RPMVERCMP("1.0~rc1^git1", "1.0~rc1", RIGHT_SMALLER)
+    RPMVERCMP("1.0~rc1", "1.0~rc1^git1", LEFT_SMALLER)
+    RPMVERCMP("1.0^git1~pre", "1.0^git1~pre", EQUAL)
+    RPMVERCMP("1.0^git1", "1.0^git1~pre", RIGHT_SMALLER)
+    RPMVERCMP("1.0^git1~pre", "1.0^git1", LEFT_SMALLER)
 
     # These are included here to document current, arguably buggy behaviors
     # for reference purposes and for easy checking against unintended
     # behavior changes. */
     print("/* RPM version comparison oddities */")
     # RhBug:811992 case
-    RPMVERCMP("1b.fc17", "1b.fc17", 0)
-    RPMVERCMP("1b.fc17", "1.fc17", 1)  # Note: this is reversed from rpm's vercmp, WAT! */
-    RPMVERCMP("1.fc17", "1b.fc17", -1)
-    RPMVERCMP("1g.fc17", "1g.fc17", 0)
-    RPMVERCMP("1g.fc17", "1.fc17", 1)
-    RPMVERCMP("1.fc17", "1g.fc17", -1)
+    RPMVERCMP("1b.fc17", "1b.fc17", EQUAL)
+    RPMVERCMP("1b.fc17", "1.fc17", RIGHT_SMALLER)  # Note: this is reversed from rpm's vercmp, WAT! */
+    RPMVERCMP("1.fc17", "1b.fc17", LEFT_SMALLER)
+    RPMVERCMP("1g.fc17", "1g.fc17", EQUAL)
+    RPMVERCMP("1g.fc17", "1.fc17", RIGHT_SMALLER)
+    RPMVERCMP("1.fc17", "1g.fc17", LEFT_SMALLER)
 
     # Non-ascii characters are considered equal so these are all the same, eh… */
-    RPMVERCMP("1.1.α", "1.1.α", 0)
-    RPMVERCMP("1.1.α", "1.1.β", 0)
-    RPMVERCMP("1.1.β", "1.1.α", 0)
-    RPMVERCMP("1.1.αα", "1.1.α", 0)
-    RPMVERCMP("1.1.α", "1.1.ββ", 0)
-    RPMVERCMP("1.1.ββ", "1.1.αα", 0)
+    RPMVERCMP("1.1.α", "1.1.α", EQUAL)
+    RPMVERCMP("1.1.α", "1.1.β", EQUAL)
+    RPMVERCMP("1.1.β", "1.1.α", EQUAL)
+    RPMVERCMP("1.1.αα", "1.1.α", EQUAL)
+    RPMVERCMP("1.1.α", "1.1.ββ", EQUAL)
+    RPMVERCMP("1.1.ββ", "1.1.αα", EQUAL)