summaryrefslogtreecommitdiff
path: root/lib/version.t
diff options
context:
space:
mode:
authorJohn Peacock <jpeacock@rowman.com>2003-01-05 16:28:41 -0500
committerhv <hv@crypt.org>2003-02-10 00:26:50 +0000
commit129318bdc5341dc6c9c199fa27cbfe9b42b96328 (patch)
tree96243e4460b9ffaabdeede0bf28f992389fe9266 /lib/version.t
parentc9d8ec30e843d646cf43a9517acd0a6c4a17a510 (diff)
downloadperl-129318bdc5341dc6c9c199fa27cbfe9b42b96328.tar.gz
version objects final(?) patch
Message-ID: <3E18E9D9.2040908@rowman.com> p4raw-id: //depot/perl@18682
Diffstat (limited to 'lib/version.t')
-rw-r--r--lib/version.t46
1 files changed, 37 insertions, 9 deletions
diff --git a/lib/version.t b/lib/version.t
index 8823f23f2d..4e34e56906 100644
--- a/lib/version.t
+++ b/lib/version.t
@@ -1,11 +1,12 @@
+#! /usr/local/perl -w
# Before `make install' is performed this script should be runnable with
# `make test'. After `make install' it should work as `perl test.pl'
-# $Revision: 2.1 $
+# $Revision: 2.3 $
#########################
-use Test::More tests => 64;
-use_ok(version); # If we made it this far, we are ok.
+use Test::More tests => 71;
+use_ok("version"); # If we made it this far, we are ok.
my ($version, $new_version);
#########################
@@ -13,12 +14,24 @@ my ($version, $new_version);
# Insert your test code below, the Test module is use()ed here so read
# its man page ( perldoc Test ) for help writing this test script.
+# Test bare number processing
+diag "tests with bare numbers" unless $ENV{PERL_CORE};
+$version = new version 5.005_03;
+is ( "$version" , "5.5.30" , '5.005_03 eq 5.5.30' );
+$version = new version 1.23;
+is ( "$version" , "1.230" , '1.23 eq "1.230"' );
+
+# Test quoted number processing
+diag "tests with quoted numbers" unless $ENV{PERL_CORE};
+$version = new version "5.005_03";
+is ( "$version" , "5.5_3" , '"5.005_03" eq "5.5_3"' );
+$version = new version "v1.23";
+is ( "$version" , "1.23" , '"v1.23" eq "1.23"' );
+
# Test stringify operator
diag "tests with stringify" unless $ENV{PERL_CORE};
$version = new version "5.005";
is ( "$version" , "5.5" , '5.005 eq 5.5' );
-$version = new version "5.005_03";
-is ( "$version" , "5.5.30" , 'perl version 5.005_03 eq 5.5.30' );
$version = new version "5.006.001";
is ( "$version" , "5.6.1" , '5.006.001 eq 5.6.1' );
$version = new version "1.2.3_4";
@@ -39,8 +52,10 @@ ok ("$version" eq "99.0", '$version eq "99.0"');
ok ($version->numify == 99.0, '$version->numify == 99.0');
$version = new version "something";
-ok ("$version" eq "", '$version eq ""');
-ok ($version->numify == 0, '$version->numify == 99.0');
+ok (defined $version, 'defined $version');
+
+# reset the test object to something reasonable
+$version = new version "1.2.3";
# Test boolean operator
ok ($version, 'boolean');
@@ -143,6 +158,19 @@ ok ( $version > $new_version, '$version > $new_version' );
ok ( $new_version < $version, '$new_version < $version' );
ok ( $version != $new_version, '$version != $new_version' );
+diag "test implicit [in]equality" unless $ENV{PERL_CORE};
+$version = new version "v1.2";
+$new_version = new version "1.2.0";
+ok ( $version == $new_version, '$version == $new_version' );
+$new_version = new version "1.2_0";
+ok ( $version == $new_version, '$version == $new_version' );
+$new_version = new version "1.2.1";
+ok ( $version < $new_version, '$version < $new_version' );
+$new_version = new version "1.2_1";
+ok ( $version < $new_version, '$version < $new_version' );
+$new_version = new version "1.1.999";
+ok ( $version > $new_version, '$version > $new_version' );
+
# that which is not expressly permitted is forbidden
diag "forbidden operations" unless $ENV{PERL_CORE};
ok ( !eval { $version++ }, "noop ++" );
@@ -155,12 +183,12 @@ ok ( !eval { abs($version) }, "noop abs" );
diag "Replacement UNIVERSAL::VERSION tests" unless $ENV{PERL_CORE};
# we know this file is here since we require it ourselves
-$version = $Test::More::VERSION;
+$version = new version $Test::More::VERSION;
eval "use Test::More $version";
unlike($@, qr/Test::More version $version required/,
'Replacement eval works with exact version');
-$version += 0.01; # this should fail even with old UNIVERSAL::VERSION
+$version = new version $Test::More::VERSION+0.01; # this should fail even with old UNIVERSAL::VERSION
eval "use Test::More $version";
like($@, qr/Test::More version $version required/,
'Replacement eval works with incremented version');