]> git.vpit.fr Git - perl/modules/Sub-Prototype-Util.git/blobdiff - t/11-recall.t
Importing Sub-Prototype-Util-0.05.tar.gz
[perl/modules/Sub-Prototype-Util.git] / t / 11-recall.t
index 0c48dbb5cce5ef92a6f2d5b6a213fee82e08c9ea..10c479c89ade2a7d0535f41acfe458773812838f 100644 (file)
@@ -3,15 +3,23 @@
 use strict;
 use warnings;
 
-use Test::More tests => 3 + 14 + (($^V ge v5.10.0) ? 4 : 0);
+use Test::More tests => 7 + 18 + (($^V ge v5.10.0) ? 4 : 0);
 
 use Scalar::Util qw/set_prototype/;
 use Sub::Prototype::Util qw/recall/;
 
 eval { recall undef };
-like($@, qr/^Wrong\s+subroutine/, 'recall undef croaks');
+like($@, qr/^No\s+subroutine/, 'recall undef croaks');
 eval { recall '' };
-like($@, qr/^Wrong\s+subroutine/, 'recall "" croaks');
+like($@, qr/^No\s+subroutine/, 'recall "" croaks');
+eval { recall \1 };
+like($@, qr/^Unhandled\s+SCALAR/, 'recall scalarref croaks');
+eval { recall [ ] };
+like($@, qr/^Unhandled\s+ARRAY/, 'recall arrayref croaks');
+eval { recall sub { } };
+like($@, qr/^Unhandled\s+CODE/, 'recall coderef croaks');
+eval { recall { 'foo' => undef, 'bar' => undef } };
+like($@, qr!exactly\s+one\s+key/value\s+pair!, 'recall hashref with 2 pairs croaks');
 eval { recall 'hlagh' };
 like($@, qr/^Undefined\s+subroutine/, 'recall <unknown> croaks');
 
@@ -22,11 +30,14 @@ sub mygrep2 (\&@) { grep { $_[0]->() } @_[1 .. $#_] }
 sub modify ($) { my $old = $_[0]; $_[0] = 5; $old }
 
 my $t = [ 1, 2, 3, 4 ];
+my $m = [ sub { $_ + 10 }, 1 .. 5 ];
 my $g = [ sub { $_ > 2 }, 1 .. 5 ];
 
 my @tests = (
  [ 'main::noproto', 'no prototype', $t, $t, [ 2, 1 ] ],
- [ 'CORE::push', 'push', [ [ 1, 2 ], 3, 5 ], [ [ 1, 2, 3, 5 ], 3, 5 ], [ 4 ] ],
+ [ { 'CORE::push' => undef }, 'push', [ [ 1, 2 ], 3, 5 ], [ [ 1, 2, 3, 5 ], 3, 5 ], [ 4 ] ],
+ [ { 'CORE::push' => '\@$' }, 'push just one', [ [ 1, 2 ], 3, 5 ], [ [ 1, 2, 3 ], 3, 5 ], [ 3 ] ],
+ [ { 'CORE::map' => '\&@' }, 'map', $m, $m, [ 11 .. 15 ] ],
  [ 'main::mytrunc', 'truncate 1', [ 1 ], [ 1 ], [ undef, 1 ] ],
  [ 'main::mytrunc', 'truncate 2', $t, $t, [ 2, 1 ] ],
  [ 'main::mygrep1', 'grep1', $g, $g, [ 3 .. 5 ] ],