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