| @@ -1,30 +1,30 @@ | | | @@ -1,30 +1,30 @@ |
1 | # $NetBSD: pkgversion.t,v 1.12 2022/08/13 12:22:20 rillig Exp $ | | 1 | # $NetBSD: pkgversion.t,v 1.13 2023/10/16 22:21:55 rillig Exp $ |
2 | # | | 2 | # |
3 | # Tests for parsing and comparing package versions, such as 1.0nb4. | | 3 | # Tests for parsing and comparing package versions, such as 1.0nb4. |
4 | | | 4 | |
5 | use strict; | | 5 | use strict; |
6 | use warnings; | | 6 | use warnings; |
7 | use IO::Null; | | 7 | use IO::Null; |
8 | use Test; | | 8 | use Test; |
9 | | | 9 | |
10 | BEGIN { plan tests => 1781, onfail => sub { die } } | | 10 | BEGIN { plan tests => 1781, onfail => sub { die } } |
11 | | | 11 | |
12 | require('../lintpkgsrc.pl'); | | 12 | require('../lintpkgsrc.pl'); |
13 | | | 13 | |
14 | ok(pkgversion_cmp('3.4', '<', '3.4'), ''); | | 14 | ok(pkgversion_cmp('3.4', '<', '3.4'), ''); |
15 | ok(pkgversion_cmp('3.4', '<=', '3.4'), 1); | | 15 | ok(pkgversion_cmp('3.4', '<=', '3.4'), 1); |
16 | | | 16 | |
17 | # See pkgtools/pkglint/files/pkgver/vercmp_test.go. | | 17 | # See pkgtools/pkglint, file pkgver/vercmp_test.go. |
18 | my @split_version_tests = ( | | 18 | my @split_version_tests = ( |
19 | [ '5.0', [ [ 5, 0, 0 ], 0 ] ], | | 19 | [ '5.0', [ [ 5, 0, 0 ], 0 ] ], |
20 | [ '5.0nb5', [ [ 5, 0, 0 ], 5 ] ], | | 20 | [ '5.0nb5', [ [ 5, 0, 0 ], 5 ] ], |
21 | [ '0.0.1-SNAP', [ [ 0, 0, 0, 0, 1, 0, 19, 0, 14, 0, 1, 0, 16 ], 0 ] ], | | 21 | [ '0.0.1-SNAP', [ [ 0, 0, 0, 0, 1, 0, 19, 0, 14, 0, 1, 0, 16 ], 0 ] ], |
22 | [ '1.0alpha3', [ [ 1, 0, 0, -3, 3 ], 0 ] ], | | 22 | [ '1.0alpha3', [ [ 1, 0, 0, -3, 3 ], 0 ] ], |
23 | [ '1_0alpha3', [ [ 1, 0, 0, -3, 3 ], 0 ] ], | | 23 | [ '1_0alpha3', [ [ 1, 0, 0, -3, 3 ], 0 ] ], |
24 | [ '2.5beta', [ [ 2, 0, 5, -2 ], 0 ] ], | | 24 | [ '2.5beta', [ [ 2, 0, 5, -2 ], 0 ] ], |
25 | [ '20151110', [ [ 20151110 ], 0 ] ], | | 25 | [ '20151110', [ [ 20151110 ], 0 ] ], |
26 | [ '0', [ [ 0 ], 0 ] ], | | 26 | [ '0', [ [ 0 ], 0 ] ], |
27 | [ 'nb1', [ [], 1 ] ], | | 27 | [ 'nb1', [ [], 1 ] ], |
28 | [ '1.0.1a', [ [ 1, 0, 0, 0, 1, 0, 1 ], 0 ] ], | | 28 | [ '1.0.1a', [ [ 1, 0, 0, 0, 1, 0, 1 ], 0 ] ], |
29 | [ '1.1.1dnb2', [ [ 1, 0, 1, 0, 1, 0, 4 ], 2 ] ], | | 29 | [ '1.1.1dnb2', [ [ 1, 0, 1, 0, 1, 0, 4 ], 2 ] ], |
30 | [ '1.0.1z', [ [ 1, 0, 0, 0, 1, 0, 26 ], 0 ] ], | | 30 | [ '1.0.1z', [ [ 1, 0, 0, 0, 1, 0, 26 ], 0 ] ], |
| @@ -34,27 +34,27 @@ my @split_version_tests = ( | | | @@ -34,27 +34,27 @@ my @split_version_tests = ( |
34 | | | 34 | |
35 | foreach my $test (@split_version_tests) { | | 35 | foreach my $test (@split_version_tests) { |
36 | my ($version, $expected) = @$test; | | 36 | my ($version, $expected) = @$test; |
37 | | | 37 | |
38 | my @actual = split_pkgversion($version); | | 38 | my @actual = split_pkgversion($version); |
39 | | | 39 | |
40 | my @expected = ($expected->[1]); | | 40 | my @expected = ($expected->[1]); |
41 | push(@expected, @{$expected->[0]}); | | 41 | push(@expected, @{$expected->[0]}); |
42 | my $actual_str = "$version: " . join(',', @actual); | | 42 | my $actual_str = "$version: " . join(',', @actual); |
43 | my $expected_str = "$version: " . join(',', @expected); | | 43 | my $expected_str = "$version: " . join(',', @expected); |
44 | ok($actual_str, $expected_str); | | 44 | ok($actual_str, $expected_str); |
45 | } | | 45 | } |
46 | | | 46 | |
47 | # See pkgtools/pkglint/files/pkgver/vercmp_test.go. | | 47 | # See pkgtools/pkglint, file pkgver/vercmp_test.go. |
48 | my @versions = ( | | 48 | my @versions = ( |
49 | [ '0pre20160620' ], | | 49 | [ '0pre20160620' ], |
50 | [ '0' ], | | 50 | [ '0' ], |
51 | [ '0nb1', '0NB1', '0Nb1', '0nb00001' ], | | 51 | [ '0nb1', '0NB1', '0Nb1', '0nb00001' ], |
52 | [ '0.0.1-SNAPSHOT' ], | | 52 | [ '0.0.1-SNAPSHOT' ], |
53 | [ '1.0alpha' ], | | 53 | [ '1.0alpha' ], |
54 | [ '1.0alpha3' ], | | 54 | [ '1.0alpha3' ], |
55 | [ '1', '1.0', '1.0.0' ], | | 55 | [ '1', '1.0', '1.0.0' ], |
56 | [ '1.0nb1', '1nb1' ], | | 56 | [ '1.0nb1', '1nb1' ], |
57 | [ '1.0nb2', '1_0nb2' ], | | 57 | [ '1.0nb2', '1_0nb2' ], |
58 | [ '1.0.0.0.0.0.0.1' ], | | 58 | [ '1.0.0.0.0.0.0.1' ], |
59 | [ '1.0.aa' ], | | 59 | [ '1.0.aa' ], |
60 | [ '1.0.a1' ], | | 60 | [ '1.0.a1' ], |