add begin.t from Method::Signatures
[p5sagit/Function-Parameters.git] / t / foreign / signatures / eval.t
CommitLineData
514bcaa6 1#!perl
2use strict;
3use warnings FATAL => 'all';
4use Test::More tests => 8;
5
6use Function::Parameters;
7
8eval 'fun foo ($bar) { $bar }';
9ok(!$@, 'signatures parse in eval');
10diag $@ if $@;
11ok(\&foo, 'fun declared in eval');
12is(foo(42), 42, 'eval signature works');
13
14no Function::Parameters;
15
16$SIG{__WARN__} = sub {};
17eval 'fun bar ($baz) { $baz }';
18like($@, 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 {};
31eval 'fun moo ($kooh) { $kooh }';
32like($@, qr/requires explicit package name/, 'string eval disabled');