X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2Fversion.t;h=9ed5d5bde45add4d17d223f829274a186db67974;hb=cd57dc11b379d64c4f58020ac5a49cbd7893e35a;hp=16f306cd82932578a6ed19945a4aa74e4c85c0e0;hpb=37b8b4c96b95703d956822dafbbd43c0dc3ac882;p=p5sagit%2Fp5-mst-13.2.git diff --git a/lib/version.t b/lib/version.t index 16f306c..9ed5d5b 100644 --- a/lib/version.t +++ b/lib/version.t @@ -98,12 +98,31 @@ sub BaseTests { like($@, qr/alpha without decimal/, "Invalid version format (alpha without decimal)"); - $version = $CLASS->new("99 and 44/100 pure"); + # for this first test, just upgrade the warn() to die() + eval { + local $SIG{__WARN__} = sub { die $_[0] }; + $version = $CLASS->new("1.2b3"); + }; + my $warnregex = "Version string '.+' contains invalid data; ". + "ignoring: '.+'"; + + like($@, qr/$warnregex/, + "Version string contains invalid data; ignoring"); + + # from here on out capture the warning and test independently + my $warning; + local $SIG{__WARN__} = sub { $warning = $_[0] }; + $version = $CLASS->new("99 and 44/100 pure"); + + like($warning, qr/$warnregex/, + "Version string contains invalid data; ignoring"); ok ("$version" eq "99.000", '$version eq "99.000"'); ok ($version->numify == 99.0, '$version->numify == 99.0'); ok ($version->normal eq "v99.0.0", '$version->normal eq v99.0.0'); $version = $CLASS->new("something"); + like($warning, qr/$warnregex/, + "Version string contains invalid data; ignoring"); ok (defined $version, 'defined $version'); # reset the test object to something reasonable