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