X-Git-Url: http://git.vpit.fr/?p=perl%2Fmodules%2Findirect.git;a=blobdiff_plain;f=t%2F21-bad.t;h=11da77d29c2fabb2f6dfa1300e1bebf8597b7de7;hp=9f8f3ff0de6a5da8c40f90b81dbde18e7c6dcbdf;hb=5d8477b589d7ed4c4571111036e5b237ad13f6a9;hpb=676ba859b2e1c5e7808bf1a12432e28997d660c9 diff --git a/t/21-bad.t b/t/21-bad.t index 9f8f3ff..11da77d 100644 --- a/t/21-bad.t +++ b/t/21-bad.t @@ -11,8 +11,8 @@ use warnings; my ($tests, $reports); BEGIN { - $tests = 52; - $reports = 53; + $tests = 61; + $reports = 69; } use Test::More tests => 3 * (4 * $tests + $reports) + 2; @@ -27,10 +27,11 @@ sub expect { map { my ($meth, $obj, $file, $line) = @$_; - $_ = quotemeta for $meth, $obj; + $meth = quotemeta $meth; + $obj = ($obj =~ /^\s*\{/) ? "a block" : "object \"\Q$obj\E\""; $file = '\(eval \d+\)' unless defined $file; $line = '\d+' unless defined $line; - qr/^Indirect call of method "$meth" on object "$obj" at $file line $line/ + qr/^Indirect call of method "$meth" on $obj at $file line $line/ } eval $expected; } @@ -41,7 +42,7 @@ sub try { @warns = (); { - local $SIG{__WARN__} = sub { push @warns, join(' ', @_) }; + local $SIG{__WARN__} = sub { push @warns, @_ }; eval $code; } } @@ -128,6 +129,10 @@ $obj = new Hlagh; ---- [ 'new', 'Hlagh' ] #### +$obj = new Hlagh if 0; +---- +[ 'new', 'Hlagh' ] +#### $obj = new Hlagh(); ---- [ 'new', 'Hlagh' ] @@ -354,3 +359,40 @@ new Hlagh (meh $x) Hlagh->new(meh $x) ---- [ 'meh', '$x' ] +#### +meh { }; +---- +[ 'meh', '{' ] +#### +meh { + 1; +}; +---- +[ 'meh', '{' ] +#### +meh { + 1; + 1; +}; +---- +[ 'meh', '{' ] +#### +meh { new Hlagh; 1; }; +---- +[ 'new', 'Hlagh' ], [ 'meh', '{' ] +#### +meh { feh $x; 1; }; +---- +[ 'feh', '$x' ], [ 'meh', '{' ] +#### +meh { feh $x; use indirect; new Hlagh; 1; }; +---- +[ 'feh', '$x' ], [ 'meh', '{' ] +#### +meh { feh $y; 1; }; +---- +[ 'feh', '$y' ], [ 'meh', '{' ] +#### +meh { feh $x; 1; } new Hlagh, feh $y; +---- +[ 'feh', '$x' ], [ 'new', 'Hlagh' ], [ 'feh', '$y' ], [ 'meh', '{' ]