import some (modified) signatures tests
[p5sagit/Function-Parameters.git] / t / foreign / signatures / eval.t
1 #!perl
2 use strict;
3 use warnings FATAL => 'all';
4 use Test::More tests => 8;
5
6 use Function::Parameters;
7
8 eval 'fun foo ($bar) { $bar }';
9 ok(!$@, 'signatures parse in eval');
10 diag $@ if $@;
11 ok(\&foo, 'fun declared in eval');
12 is(foo(42), 42, 'eval signature works');
13
14 no Function::Parameters;
15
16 $SIG{__WARN__} = sub {};
17 eval 'fun bar ($baz) { $baz }';
18 like($@, qr/requires explicit package name/, 'string eval disabled');
19
20 {
21     use Function::Parameters;
22
23     eval 'fun bar ($baz) { $baz }';
24     ok(!$@, 'signatures parse in eval');
25     diag $@ if $@;
26     ok(\&bar, 'fun declared in eval');
27     is(bar(42), 42, 'eval signature works');
28 }
29
30 $SIG{__WARN__} = sub {};
31 eval 'fun moo ($kooh) { $kooh }';
32 like($@, qr/requires explicit package name/, 'string eval disabled');