diff options
author | John Peacock <jpeacock@rowman.com> | 2003-01-05 16:28:41 -0500 |
---|---|---|
committer | hv <hv@crypt.org> | 2003-02-10 00:26:50 +0000 |
commit | 129318bdc5341dc6c9c199fa27cbfe9b42b96328 (patch) | |
tree | 96243e4460b9ffaabdeede0bf28f992389fe9266 /lib/version.t | |
parent | c9d8ec30e843d646cf43a9517acd0a6c4a17a510 (diff) | |
download | perl-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.t | 46 |
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'); |