diff options
| -rw-r--r-- | Changes | 2 | ||||
| -rw-r--r-- | t/parse.t | 38 |
2 files changed, 39 insertions, 1 deletions
@@ -1,3 +1,5 @@ +- add tests from RPM for tilde and caret sorting + Version 5.226 - 19 Dec 2025 - fix segfault in parse_property() (mga#34833, mga34837) @@ -10,7 +10,7 @@ use URPM::Build; if (`uname -a` =~ /BSD/i) { plan skip_all => "*BSD fails those"; } else { - plan tests => 41; + plan tests => 71; } @@ -88,6 +88,42 @@ ok(URPM::rpmvercmp("1-1mdk", "1-2mdk") == -1, "Right value win = -1"); ok(URPM::rpmvercmp("1-2mdk", "1-1mdk") == 1, "Left value win = 1"); ok(URPM::rpmvercmp("1:1-1mdk", "2:1-1mdk") == -1, "epoch 1 vs 2 = -1"); +# Basic testcases for tilde sorting +ok(URPM::rpmvercmp("1.0~rc1", "1.0~rc1") == 0, "Same value = 0"); +ok(URPM::rpmvercmp("1.0~rc1", "1.0") == -1, "Right value win = -1"); +ok(URPM::rpmvercmp("1.0", "1.0~rc1") == 1, "Left value win = 1"); +ok(URPM::rpmvercmp("1.0~rc1", "1.0~rc2") == -1, "Right value win = -1"); +ok(URPM::rpmvercmp("1.0~rc2", "1.0~rc1") == 1, "Left value win = 1"); +ok(URPM::rpmvercmp("1.0~rc1~git123", "1.0~rc1~git123") == 0, "Same value = 0"); +ok(URPM::rpmvercmp("1.0~rc1~git123", "1.0~rc1") == -1, "Right value win = -1"); +ok(URPM::rpmvercmp("1.0~rc1", "1.0~rc1~git123") == 1, "Left value win = 1"); + +# Basic testcases for caret sorting +ok(URPM::rpmvercmp("1.0^", "1.0^") == 0, "Same value = 0"); +ok(URPM::rpmvercmp("1.0^", "1.0") == 1, "Left value win = 1"); +ok(URPM::rpmvercmp("1.0", "1.0^") == -1, "Right value win = -1"); +ok(URPM::rpmvercmp("1.0^git1", "1.0^git1") == 0, "Same value = 0"); +ok(URPM::rpmvercmp("1.0^git1", "1.0") == 1, "Left value win = 1"); +ok(URPM::rpmvercmp("1.0", "1.0^git1") == -1, "Right value win = -1"); +ok(URPM::rpmvercmp("1.0^git1", "1.0^git2") == -1, "Right value win = -1"); +ok(URPM::rpmvercmp("1.0^git2", "1.0^git1") == 1, "Left value win = 1"); +ok(URPM::rpmvercmp("1.0^git1", "1.01") == -1, "Right value win = -1"); +ok(URPM::rpmvercmp("1.01", "1.0^git1") == 1, "Left value win = 1"); +ok(URPM::rpmvercmp("1.0^20160101", "1.0^20160101") == 0, "Same value = 0"); +ok(URPM::rpmvercmp("1.0^20160101", "1.0.1") == -1, "Right value win = -1"); +ok(URPM::rpmvercmp("1.0.1", "1.0^20160101") == 1, "Left value win = 1"); +ok(URPM::rpmvercmp("1.0^20160101^git1", "1.0^20160101^git1") == 0, "Same value = 0"); +ok(URPM::rpmvercmp("1.0^20160102", "1.0^20160101^git1") == 1, "Left value win = 1"); +ok(URPM::rpmvercmp("1.0^20160101^git1", "1.0^20160102") == -1, "Right value win = -1"); + +# Basic testcases for tilde and caret sorting +ok(URPM::rpmvercmp("1.0~rc1^git1", "1.0~rc1^git1") == 0, "Same value = 0"); +ok(URPM::rpmvercmp("1.0~rc1^git1", "1.0~rc1") == 1, "Left value win = 1"); +ok(URPM::rpmvercmp("1.0~rc1", "1.0~rc1^git1") == -1, "Right value win = -1"); +ok(URPM::rpmvercmp("1.0^git1~pre", "1.0^git1~pre") == 0, "Same value = 0"); +ok(URPM::rpmvercmp("1.0^git1", "1.0^git1~pre") == 1, "Left value win = 1"); +ok(URPM::rpmvercmp("1.0^git1~pre", "1.0^git1") == -1, "Right value win = -1"); + { open(my $hdfh, "zcat hdlist.cz 2>/dev/null |") or die $!; my $pkg = URPM::stream2header($hdfh); |
