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