summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2006-02-22 16:50:25 +0000
committerNicholas Clark <nick@ccl4.org>2006-02-22 16:50:25 +0000
commite36cc0fbcf17e559bf3f189f3b67eca0ac6dc543 (patch)
treef14ca03fe1ff18577b3bc4fd5b1665e35adc1643
parentcfae286ee950aa5c0910601410971733f656001f (diff)
downloadperl-e36cc0fbcf17e559bf3f189f3b67eca0ac6dc543.tar.gz
Test warnings for converting globs to other forms.
p4raw-id: //depot/perl@27268
-rwxr-xr-xt/op/gv.t30
1 files changed, 29 insertions, 1 deletions
diff --git a/t/op/gv.t b/t/op/gv.t
index 3164c35aaa..d243fb70a3 100755
--- a/t/op/gv.t
+++ b/t/op/gv.t
@@ -12,7 +12,7 @@ BEGIN {
use warnings;
require './test.pl';
-plan( tests => 138 );
+plan( tests => 154 );
# type coersion on assignment
$foo = 'foo';
@@ -89,6 +89,34 @@ is (scalar %foo, 0);
is($msg, '');
*foo = undef;
like($msg, qr/Undefined value assigned to typeglob/);
+
+ no warnings 'once';
+ # test warnings for converting globs to other forms
+ my $copy = *PWOMPF;
+ foreach ($copy, *SKREEE) {
+ $msg = '';
+ my $victim = sprintf "%d", $_;
+ like($msg, qr/Argument "\*main::[A-Z]{6}" isn't numeric in sprintf/,
+ "Warning on conversion to IV");
+ is($victim, 0);
+
+ $msg = '';
+ $victim = sprintf "%u", $_;
+ like($msg, qr/Argument "\*main::[A-Z]{6}" isn't numeric in sprintf/,
+ "Warning on conversion to UV");
+ is($victim, 0);
+
+ $msg = '';
+ $victim = sprintf "%e", $_;
+ like($msg, qr/Argument "\*main::[A-Z]{6}" isn't numeric in sprintf/,
+ "Warning on conversion to NV");
+ like($victim, qr/^0\.0+E\+?00/i, "Expect floating point zero");
+
+ $msg = '';
+ $victim = sprintf "%s", $_;
+ is($msg, '', "No warning on stringification");
+ is($victim, '' . $_);
+ }
}
my $test = curr_test();