This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
cd66278b726fc9853a0986307ab1b41b3ae19c4c
[perl5.git] / t / comp / bproto.t
1 #!./perl
2 #
3 # check if builtins behave as prototyped
4 #
5
6 BEGIN {
7     chdir 't' if -d 't';
8     @INC = '../lib';
9 }
10
11 print "1..15\n";
12
13 my $i = 1;
14
15 sub foo {}
16 my $bar = "bar";
17
18 sub test_too_many {
19     eval $_[0];
20     print "not " unless $@ =~ /^Too many arguments/;
21     printf "ok %d\n",$i++;
22 }
23
24 sub test_too_few {
25     eval $_[0];
26     print "not " unless $@ =~ /^Not enough arguments/;
27     printf "ok %d\n",$i++;
28 }
29
30 sub test_no_error {
31     eval $_[0];
32     print "not " if $@;
33     printf "ok %d\n",$i++;
34 }
35
36 test_too_many($_) for split /\n/,
37 q[      defined(&foo, $bar);
38         pos(1,$b);
39         undef(&foo, $bar);
40         uc($bar,$bar);
41 ];
42
43 test_too_few($_) for split /\n/,
44 q[      unpack;
45 ];
46
47 test_no_error($_) for split /\n/,
48 q[      scalar(&foo,$bar);
49         defined &foo, &foo, &foo;
50         undef &foo, $bar;
51         uc $bar,$bar;
52         grep(not($bar), $bar);
53         grep(not($bar, $bar), $bar);
54         grep((not $bar, $bar, $bar), $bar);
55         __FILE__();
56         __LINE__();
57         __PACKAGE__();
58 ];