X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=t%2F12-proto.t;fp=t%2F12-proto.t;h=db7b1351a9bd74c353178245e19c9b706dec68df;hb=2ef1324275671d20b6a2471166250154541fff1d;hp=0000000000000000000000000000000000000000;hpb=a00238a93730075d0dc26b6152c958c9d8da30a8;p=perl%2Fmodules%2Fsubs-auto.git diff --git a/t/12-proto.t b/t/12-proto.t new file mode 100644 index 0000000..db7b135 --- /dev/null +++ b/t/12-proto.t @@ -0,0 +1,35 @@ +#!perl -T + +use strict; +use warnings; + +use Test::More tests => 7; + +my $foo; +sub foo ($) { $foo = $_[0] }; + +my $baz; +eval q| + use warnings qw/FATAL redefine prototype/; + sub main::baz ($) { $baz = $_[0] } +|; +like($@, qr/Prototype\s+mismatch\s*:\s+sub\s+main::baz\s*:\s+none\s+vs\s+\(\$\)/, 'baz appears as prototyped'); + +use subs::auto; + +eval { my @x = (1, 5); foo @x }; +is($@, '', 'foo was compiled ok'); +is($foo, 2, 'foo was called with the right arguments'); + +my $bar; +sub bar (\@) { $bar = 0; $bar += $_ for grep defined, @{$_[0]} } + +eval { my @x = (2, 3, 4); bar @x }; +is($@, '', 'bar was compiled ok'); +is($bar, 9, 'bar was called with the right arguments'); + +eval { baz 5 }; +like($@, qr/^Undefined\s+subroutine\s+&?main::baz/,'baz couldn\'t be compiled'); +is($baz, undef, 'baz can\'t be called because of the prototype mismatch'); + +no subs::auto;