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