diff options
Diffstat (limited to 'lib/version.t')
-rw-r--r-- | lib/version.t | 40 |
1 files changed, 14 insertions, 26 deletions
diff --git a/lib/version.t b/lib/version.t index 8067f1aced..f44cfea93f 100644 --- a/lib/version.t +++ b/lib/version.t @@ -132,43 +132,32 @@ sub BaseTests { # test illegal formats diag "test illegal formats" unless $ENV{PERL_CORE}; - eval {my $version = $CLASS->$method("1.2_3_4")}; + eval {$version = $CLASS->$method("1.2_3_4")}; like($@, qr/multiple underscores/, "Invalid version format (multiple underscores)"); - eval {my $version = $CLASS->$method("1.2_3.4")}; + eval {$version = $CLASS->$method("1.2_3.4")}; like($@, qr/underscores before decimal/, "Invalid version format (underscores before decimal)"); - eval {my $version = $CLASS->$method("1_2")}; + eval {$version = $CLASS->$method("1_2")}; like($@, qr/alpha without decimal/, "Invalid version format (alpha without decimal)"); - # for this test, upgrade the warn() to die() - eval { - local $SIG{__WARN__} = sub { die $_[0] }; - $version = $CLASS->$method("1.2b3"); - }; - my $warnregex = "Version string '.+' contains invalid data; ". - "ignoring: '.+'"; - - like($@, qr/$warnregex/, - "Version string contains invalid data; ignoring"); + eval { $version = $CLASS->$method("1.2b3")}; + like($@, qr/non-numeric data/, + "Invalid version format (non-numeric data)"); # from here on out capture the warning and test independently { - $version = $CLASS->$method("99 and 44/100 pure"); + eval{$version = $CLASS->$method("99 and 44/100 pure")}; - like($warning, qr/$warnregex/, - "Version string contains invalid data; ignoring"); - is ("$version", "99", '$version eq "99"'); - ok ($version->numify == 99.0, '$version->numify == 99.0'); - ok ($version->normal eq "v99.0.0", '$version->normal eq v99.0.0'); + like($@, qr/non-numeric data/, + "Invalid version format (non-numeric data)"); - $version = $CLASS->$method("something"); - like($warning, qr/$warnregex/, - "Version string contains invalid data; ignoring"); - ok (defined $version, 'defined $version'); + eval{$version = $CLASS->$method("something")}; + like($@, qr/non-numeric data/, + "Invalid version format (non-numeric data)"); # reset the test object to something reasonable $version = $CLASS->$method("1.2.3"); @@ -557,9 +546,8 @@ SKIP: { local $SIG{__WARN__} = sub { $warning = $_[0] }; $DB::single = 1; - my $v = $CLASS->$method('1,7'); - unlike($warning, qr"Version string '1,7' contains invalid data", - 'Directly test comma as decimal compliance'); + my $v = eval { $CLASS->$method('1,7') }; +# is( $@, "", 'Directly test comma as decimal compliance'); my $ver = 1.23; # has to be floating point number my $orig_loc = setlocale( LC_ALL ); |