diff options
author | Tim Bunce <Tim.Bunce@pobox.com> | 2010-01-14 14:38:53 +0000 |
---|---|---|
committer | Rafael Garcia-Suarez <rgs@consttype.org> | 2010-01-14 22:41:20 +0100 |
commit | 32f28238059591da8025e5f6cf1bc5ecc6c99fe7 (patch) | |
tree | 3d920db04b96d813f145020a13cfd4f9552befbf /dist/Safe | |
parent | a57c668520b9767f7a6c93e0a396cee792a98be5 (diff) | |
download | perl-32f28238059591da8025e5f6cf1bc5ecc6c99fe7.tar.gz |
Added tests for perl#72068
Diffstat (limited to 'dist/Safe')
-rw-r--r-- | dist/Safe/t/safesort.t | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/dist/Safe/t/safesort.t b/dist/Safe/t/safesort.t index 2b90afcbb0..f2b7ed0198 100644 --- a/dist/Safe/t/safesort.t +++ b/dist/Safe/t/safesort.t @@ -9,25 +9,30 @@ BEGIN { } use Safe 1.00; -use Test::More tests => 4; +use Test::More tests => 6; my $safe = Safe->new('PLPerl'); $safe->permit_only(qw(:default sort)); +# check basic argument passing and context for anon-subs +my $func = $safe->reval(q{ sub { @_ } }); +is_deeply [ $func->() ], [ ]; +is_deeply [ $func->("foo") ], [ "foo" ]; + my $func = $safe->reval(<<'EOS'); # uses quotes in { "$a" <=> $b } to avoid the optimizer replacing the block # with a hardwired comparison - { package Pkg; sub p_sort { return sort { "$a" <=> $b } qw(2 1 3); } } - sub l_sort { return sort { "$a" <=> $b } qw(2 1 3); } + { package Pkg; sub p_sort { return sort { "$a" <=> $b } @_; } } + sub l_sort { return sort { "$a" <=> $b } @_; } - return sub { return join(",",l_sort()), join(",",Pkg::p_sort()) } + return sub { return join(",",l_sort(@_)), join(",",Pkg::p_sort(@_)) } EOS is $@, '', 'reval should not fail'; is ref $func, 'CODE', 'reval should return a CODE ref'; -my ($l_sorted, $p_sorted) = $func->(); +my ($l_sorted, $p_sorted) = $func->(@_); is $l_sorted, "1,2,3"; is $p_sorted, "1,2,3"; |