X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=t%2F20-bad.t;h=5c57ebed84a6a2b65e26ee44470402101e460b6b;hb=5354a80a6d86689d016d5fc9e68f2a64f875a8f3;hp=05efb509b5698f88cd434b0a6b28e5437b8f6d0d;hpb=7ded1e91a0a0ddc3e709cda9573fe0e53a32e092;p=perl%2Fmodules%2Findirect.git diff --git a/t/20-bad.t b/t/20-bad.t index 05efb50..5c57ebe 100644 --- a/t/20-bad.t +++ b/t/20-bad.t @@ -3,9 +3,9 @@ use strict; use warnings; -use Test::More tests => 28 * 2; +use Test::More tests => 30 * 2 + 2; -my ($obj, $pkg, $cb, $x); +my ($obj, $x); { local $/ = "####\n"; @@ -26,6 +26,16 @@ my ($obj, $pkg, $cb, $x); } } +eval { + no indirect 'hlagh'; + my $warn; + local $SIG{__WARN__} = sub { $warn = join ' ', @_ }; + eval "die qq{the code compiled but it shouldn't have\n}; \$obj = new Hlagh1;"; + like($warn, qr/^Indirect\s+call\s+of\s+method\s+"new"\s+on\s+object\s+"Hlagh1"/, 'no indirect "hlagh" enables the pragma'); + eval "die qq{the code compiled but it shouldn't have\n}; \$obj = new Hlagh2;"; + like($warn, qr/^Indirect\s+call\s+of\s+method\s+"new"\s+on\s+object\s+"Hlagh2"/, 'no indirect "hlagh" doesn\'t croak'); +} + __DATA__ $obj = new Hlagh; #### @@ -95,3 +105,7 @@ $obj = HlaghHlagh Hlagh; # HlaghHlagh Hlagh $obj = new newnew; #### $obj = new newnew; # new newnew +#### +new Hlagh (meh $x) +#### +Hlagh->new(meh $x)