This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
9338dda5228d7cb6089696e93fbaab389aa4c6e9
[perl5.git] / t / op / cproto.t
1 #!./perl
2 # Tests to ensure that we don't unexpectedly change prototypes of builtins
3
4 BEGIN {
5     chdir 't' if -d 't';
6     @INC = '../lib';
7 }
8
9 BEGIN { require './test.pl'; }
10 plan tests => 240;
11
12 while (<DATA>) {
13     chomp;
14     (my $keyword, my $proto, local $TODO) = split " ", $_, 3;
15     if ($proto eq 'undef') {
16         ok( !defined prototype "CORE::".$keyword, $keyword );
17     }
18     elsif ($proto eq 'unknown') {
19         eval { prototype "CORE::".$keyword };
20         like( $@, qr/Can't find an opnumber for/, $keyword );
21     }
22     else {
23         is( "(".prototype("CORE::".$keyword).")", $proto, $keyword );
24     }
25 }
26
27 # the keyword list :
28
29 __DATA__
30 __FILE__ ()
31 __LINE__ ()
32 __PACKAGE__ ()
33 abs (_)
34 accept (**)
35 alarm (_)
36 and ()
37 atan2 ($$)
38 bind (*$)
39 binmode (*;$)
40 bless ($;$)
41 caller (;$)
42 chdir (;$)
43 chmod (@)
44 chomp undef
45 chop undef
46 chown (@)
47 chr (_)
48 chroot (_)
49 close (;*)
50 closedir (*)
51 cmp unknown
52 connect (*$)
53 continue ()
54 cos (_)
55 crypt ($$)
56 dbmclose (\%)
57 dbmopen (\%$$)
58 defined undef
59 delete undef
60 die (@)
61 do undef
62 dump ()
63 each (+)
64 else undef
65 elsif undef
66 endgrent ()
67 endhostent ()
68 endnetent ()
69 endprotoent ()
70 endpwent ()
71 endservent ()
72 eof (;*)
73 eq ($$)
74 eval undef
75 exec undef
76 exists undef
77 exit (;$)
78 exp (_)
79 fcntl (*$$)
80 fileno (*)
81 flock (*$)
82 for undef
83 foreach undef
84 fork ()
85 format undef
86 formline ($@)
87 ge ($$)
88 getc (;*)
89 getgrent ()
90 getgrgid ($)
91 getgrnam ($)
92 gethostbyaddr ($$)
93 gethostbyname ($)
94 gethostent ()
95 getlogin ()
96 getnetbyaddr ($$)
97 getnetbyname ($)
98 getnetent ()
99 getpeername (*)
100 getpgrp (;$)
101 getppid ()
102 getpriority ($$)
103 getprotobyname ($)
104 getprotobynumber ($)
105 getprotoent ()
106 getpwent ()
107 getpwnam ($)
108 getpwuid ($)
109 getservbyname ($$)
110 getservbyport ($$)
111 getservent ()
112 getsockname (*)
113 getsockopt (*$$)
114 given undef
115 glob undef
116 gmtime (;$)
117 goto undef
118 grep undef
119 gt ($$)
120 hex (_)
121 if undef
122 index ($$;$)
123 int (_)
124 ioctl (*$$)
125 join ($@)
126 keys (+)
127 kill (@)
128 last undef
129 lc (_)
130 lcfirst (_)
131 le ($$)
132 length (_)
133 link ($$)
134 listen (*$)
135 local undef
136 localtime (;$)
137 lock (\$)
138 log (_)
139 lstat (*)
140 lt ($$)
141 m undef
142 map undef
143 mkdir (_;$)
144 msgctl ($$$)
145 msgget ($$)
146 msgrcv ($$$$$)
147 msgsnd ($$$)
148 my undef
149 ne ($$)
150 next undef
151 no undef
152 not ($)
153 oct (_)
154 open (*;$@)
155 opendir (*$)
156 or ()
157 ord (_)
158 our undef
159 pack ($@)
160 package undef
161 pipe (**)
162 pop (;+)
163 pos undef
164 print undef
165 printf undef
166 prototype undef
167 push (+@)
168 q undef
169 qq undef
170 qr undef
171 quotemeta (_)
172 qw undef
173 qx undef
174 rand (;$)
175 read (*\$$;$)
176 readdir (*)
177 readline (;*)
178 readlink (_)
179 readpipe (_)
180 recv (*\$$$)
181 redo undef
182 ref (_)
183 rename ($$)
184 require undef
185 reset (;$)
186 return undef
187 reverse (@)
188 rewinddir (*)
189 rindex ($$;$)
190 rmdir (_)
191 s undef
192 say undef
193 scalar undef
194 seek (*$$)
195 seekdir (*$)
196 select (;*)
197 semctl ($$$$)
198 semget ($$$)
199 semop ($$)
200 send (*$$;$)
201 setgrent ()
202 sethostent ($)
203 setnetent ($)
204 setpgrp (;$$)
205 setpriority ($$$)
206 setprotoent ($)
207 setpwent ()
208 setservent ($)
209 setsockopt (*$$$)
210 shift (;+)
211 shmctl ($$$)
212 shmget ($$$)
213 shmread ($$$$)
214 shmwrite ($$$$)
215 shutdown (*$)
216 sin (_)
217 sleep (;$)
218 socket (*$$$)
219 socketpair (**$$$)
220 sort undef
221 splice (+;$$@)
222 split undef
223 sprintf ($@)
224 sqrt (_)
225 srand (;$)
226 stat (*)
227 state undef
228 study undef
229 sub undef
230 substr ($$;$$)
231 symlink ($$)
232 syscall ($@)
233 sysopen (*$$;$)
234 sysread (*\$$;$)
235 sysseek (*$$)
236 system undef
237 syswrite (*$;$$)
238 tell (;*)
239 telldir (*)
240 tie (\[$@%*]$@)
241 tied (\[$@%*])
242 time ()
243 times ()
244 tr undef
245 truncate ($$)
246 uc (_)
247 ucfirst (_)
248 umask (;$)
249 undef undef
250 unless undef
251 unlink (@)
252 unpack ($;$)
253 unshift (+@)
254 untie (\[$@%*])
255 until undef
256 use undef
257 utime (@)
258 values (+)
259 vec ($$$)
260 wait ()
261 waitpid ($$)
262 wantarray ()
263 warn (@)
264 when undef
265 while undef
266 write (;*)
267 x unknown
268 xor ($$)
269 y undef