Upgrade to CPAN-1.91
[p5sagit/p5-mst-13.2.git] / lib / CPAN / t / 10version.t
CommitLineData
2787609a 1# -*- Mode: cperl; coding: utf-8; -*-
2
2787609a 3use strict;
554a9ef5 4use CPAN::Version;
2787609a 5use vars qw($D $N);
6
810a0276 7# for debugging uncomment the next two lines
8# use CPAN;
9# $CPAN::DEBUG = 16384;
10
2787609a 11while (<DATA>) {
0a78cd5d 12 next if tr/.// > 1 && $]<5.006; # multidot tests are not for pre-5.6.0
554a9ef5 13 last if /^__END__$/;
2787609a 14 chomp;
15 s/\s*#.*//;
16 push @$D, [ split ];
17}
18
19$N = scalar @$D;
20print "1..$N\n";
21
c9869e1c 22my $has_sort_versions = eval { require Sort::Versions; 1 };
23my $has_versionpm = eval { require version; 1 };
dc053c64 24my $has_perl_versionpm = eval { require Perl::Version; 1 };
2787609a 25while (@$D) {
26 my($l,$r,$exp) = @{shift @$D};
27 my $res = CPAN::Version->vcmp($l,$r);
28 if ($res != $exp){
29 print "# l[$l]r[$r]exp[$exp]res[$res]\n";
30 print "not ";
31 }
c9869e1c 32 my @other = ();
33 if ($has_sort_versions) {
34 if (Sort::Versions::versioncmp($l,$r) != $res) {
35 push @other, sprintf "SV: %d", Sort::Versions::versioncmp($l,$r);
36 }
37 }
38 if ($has_versionpm) {
39 local $^W;
4d1321a7 40 my $vpack = "version"; # hide the name from 5.004
7d97ad34 41 my $vres = eval { $vpack->new($l) cmp $vpack->new($r); };
42 if ($@) {
43 push @other, "v.pm: $@";
44 } elsif ($vres != $res) {
c9869e1c 45 push @other, sprintf "v.pm: %d", $vres;
dc053c64 46 }
47 }
48 if ($has_perl_versionpm) {
49 local $^W;
50 my $vpack = "Perl::Version"; # hide the name from 5.004
51 my $vres = eval { $vpack->new($l) cmp $vpack->new($r); };
52 if ($@) {
53 push @other, "PV: $@";
54 } elsif ($vres != $res) {
55 push @other, sprintf "PV: %d", $vres;
c9869e1c 56 }
57 }
58 my $other = @other ? " (".join("; ", @other).")" : "";
59 printf "ok %2d # %12s %12s %3d%s\n", $N-@$D, $l, $r, $res, $other;
4d1321a7 60 die "Panic" if CPAN::Version->vgt($l,$r) && CPAN::Version->vlt($l,$r);
2787609a 61}
62
63__END__
640 0 0
651 0 1
660 1 -1
671 1 0
681.1 0.0a 1
691.1a 0.0 1
701.2.3 1.1.1 1
71v1.2.3 v1.1.1 1
72v1.2.3 v1.2.1 1
73v1.2.3 v1.2.11 -1
554a9ef5 741.2.3 1.2.11 -1
2787609a 751.9 1.10 1
76VERSION VERSION 0
770.02 undef 1
781.57_00 1.57 1
791.5700 1.57 1
801.57_01 1.57 1
7d97ad34 811.88_51 1.8801 1
821.8_8_5_1 1.8801 1
554a9ef5 830.2.10 0.2 -1
2787609a 8420000000.00 19990108 1
851.00 0.96 1
c9869e1c 860.7.2 0.7 -1
554a9ef5 870.7.02 0.7 -1
c9869e1c 880.07.02 0.7 -1
2787609a 891.3a5 1.3 1
90undef 1.00 -1
91v1.0 undef 1
92v0.2.4 0.24 -1
93v1.0.22 122 -1
c9869e1c 941.0.22 122 -1
2787609a 955.00556 v5.5.560 0
965.005056 v5.5.56 0
975.00557 v5.5.560 1
985.00056 v5.0.561 -1
554a9ef5 990.0.2 0.000002 0
1001.0.3 1.000003 0
1011.0.1 1.000001 0
1020.0.1 0.000001 0
1030.01.04 0.001004 0
1040.05.18 0.005018 0
1054.08.00 4.008000 0
c9869e1c 1060.001.004 0.001004 0
1070.005.018 0.005018 0
1084.008.000 4.008000 0
1094.008.000 4.008 1
810a0276 110v1.99.1_1 1.98 -1
554a9ef5 111__END__
112
113# Local Variables:
114# mode: cperl
115# cperl-indent-level: 2
116# End: