toke.c: Avoid unnecessary uninitialized value msgs
[perl.git] / t / lib / charnames / alias
1 Tests for use charnames with compilation errors and aliases.
2 __END__
3 # NAME illegal :pragma
4 use warnings;
5 use charnames ":scoobydoo";
6 "Here: \N{e_ACUTE}!\n";
7 EXPECT
8 OPTIONS regex
9 unsupported special ':scoobydoo' in charnames at
10 ########
11 # NAME autoload doesn't get vianame
12 print "Here: \N{DIGIT ONE}\n";
13 charnames::vianame("DIGIT TWO");
14 EXPECT
15 Undefined subroutine &charnames::vianame called at - line 2.
16 Here: 1
17 ########
18 # NAME autoload doesn't get viacode
19 print "Here: \N{DIGIT THREE}\n";
20 charnames::viacode(0x34);
21 EXPECT
22 OPTIONS regex
23 Undefined subroutine &charnames::viacode called at - line 2.
24 Here: 3
25 ########
26 # NAME autoload doesn't get string_vianame
27 print "Here: \N{DIGIT FOUR}\n";
28 charnames::string_vianame("DIGIT FIVE");
29 EXPECT
30 OPTIONS regex
31 Undefined subroutine &charnames::string_vianame called at - line 2.
32 Here: 4
33 ########
34 # NAME wrong type of alias (missing colon)
35 no warnings;
36 use charnames "alias";
37 "Here: \N{e_ACUTE}!\n";
38 EXPECT
39 OPTIONS random fatal
40 Unknown charname 'e_ACUTE' at - line 3, within string
41 Execution of - aborted due to compilation errors.
42 ########
43 # NAME alias without an argument
44 use warnings;
45 use charnames ":alias";
46 "Here: \N{e_ACUTE}!\n";
47 EXPECT
48 OPTIONS regex
49 :alias needs an argument in charnames at
50 ########
51 # NAME reversed sequence
52 use warnings;
53 use charnames ":alias" => ":full";
54 "Here: \N{e_ACUTE}!\n";
55 EXPECT
56 OPTIONS regex
57 :alias cannot use existing pragma :full \(reversed order\?\) at
58 ########
59 # NAME alias with hashref but no :full
60 use warnings;
61 use charnames ":alias" => { e_ACUTE => "LATIN SMALL LETTER E WITH ACUTE" };
62 "Here: \N{e_ACUTE}!\n";
63 EXPECT
64 OPTIONS random fatal
65 Unknown charname 'e_ACUTE' at - line 3, within string
66 Execution of - aborted due to compilation errors.
67 ########
68 # NAME alias with hashref but with :short
69 use warnings;
70 no warnings 'void';
71 use charnames ":short", ":alias" => { e_ACUTE => "LATIN SMALL LETTER E WITH ACUTE" };
72 "Here: \N{e_ACUTE}!\n";
73 EXPECT
74 OPTIONS random fatal
75 Unknown charname 'e_ACUTE' at - line 4, within string
76 Execution of - aborted due to compilation errors.
77 ########
78 # NAME alias with hashref to :full OK
79 use warnings;
80 no warnings 'void';
81 use charnames ":full", ":alias" => { e_ACUTE => "LATIN SMALL LETTER E WITH ACUTE" };
82 "Here: \N{e_ACUTE}!\n";
83 EXPECT
84 OPTIONS regex
85 $
86 ########
87 # NAME alias with hashref to :loose OK
88 use warnings;
89 no warnings 'void';
90 use charnames ":loose", ":alias" => { e_ACUTE => "LATIN SMALL LETTER E WITH ACUTE" };
91 "Here: \N{e_ACUTE}!\n";
92 EXPECT
93 OPTIONS regex
94 $
95 ########
96 # NAME alias with :loose requires :full type name
97 use warnings;
98 no warnings 'void';
99 use charnames ":loose", ":alias" => { e_ACUTE => "latin SMALL LETTER E WITH ACUTE" };
100 "Here: \N{e_ACUTE}!\n";
101 EXPECT
102 OPTIONS random fatal
103 Unknown charname 'e_ACUTE' at - line 4, within string
104 Execution of - aborted due to compilation errors.
105 ########
106 # NAME alias with hashref to :short but using :full
107 use warnings;
108 no warnings 'void';
109 use charnames ":full", ":alias" => { e_ACUTE => "LATIN:e WITH ACUTE" };
110 "Here: \N{e_ACUTE}!\n";
111 EXPECT
112 OPTIONS random fatal
113 Unknown charname 'e_ACUTE' at - line 4, within string
114 Execution of - aborted due to compilation errors.
115 ########
116 # NAME alias with hashref to :short OK
117 use warnings;
118 no warnings 'void';
119 use charnames ":short", ":alias" => { e_ACUTE => "LATIN:e WITH ACUTE" };
120 "Here: \N{e_ACUTE}!\n";
121 EXPECT
122 OPTIONS regex
123 $
124 ########
125 # NAME alias with bad hashref
126 use warnings;
127 no warnings 'void';
128 use charnames ":short", ":alias" => "e_ACUTE";
129 "Here: \N{e_ACUTE}\N{a_ACUTE}!\n";
130 EXPECT
131 OPTIONS regex
132 unicore/e_ACUTE_alias.pl cannot be used as alias file for charnames at
133 ########
134 # NAME alias with arrayref
135 use warnings;
136 no warnings 'void';
137 use charnames ":short", ":alias" => [ e_ACUTE => "LATIN:e WITH ACUTE" ];
138 "Here: \N{e_ACUTE}!\n";
139 EXPECT
140 OPTIONS regex
141 Only HASH reference supported as argument to :alias at
142 ########
143 # NAME alias with bad hashref
144 no warnings;
145 use charnames ":short", ":alias" => { e_ACUTE => "LATIN:e WITH ACUTE", "a_ACUTE" };
146 "Here: \N{e_ACUTE}\N{a_ACUTE}!\n";
147 EXPECT
148 OPTIONS regex
149 Unknown charname 'a_ACUTE' at
150 ########
151 # NAME alias with hashref two aliases
152 use warnings;
153 no warnings 'void';
154 use charnames ":short", ":alias" => {
155     e_ACUTE => "LATIN:e WITH ACUTE",
156     a_ACUTE => "",
157     };
158 "Here: \N{e_ACUTE}\N{a_ACUTE}!\n";
159 EXPECT
160 OPTIONS random fatal
161 Unknown charname 'a_ACUTE' at - line 7, within string
162 Execution of - aborted due to compilation errors.
163 ########
164 # NAME alias with hashref two aliases
165 use warnings;
166 no warnings 'void';
167 use charnames ":short", ":alias" => {
168     e_ACUTE => "LATIN:e WITH ACUTE",
169     a_ACUTE => "LATIN:a WITH ACUTE",
170     };
171 "Here: \N{e_ACUTE}\N{a_ACUTE}!\n";
172 EXPECT
173 OPTIONS regex
174 $
175 ########
176 # NAME alias with hashref using mixed aliases
177 use warnings;
178 use charnames ":short", ":alias" => {
179     e_ACUTE => "LATIN:e WITH ACUTE",
180     a_ACUTE => "LATIN SMALL LETTER A WITH ACUT",
181     };
182 "Here: \N{e_ACUTE}\N{a_ACUTE}!\n";
183 EXPECT
184 OPTIONS random fatal
185 Unknown charname 'a_ACUTE' at - line 6, within string
186 Execution of - aborted due to compilation errors.
187 ########
188 # NAME alias with hashref using mixed aliases
189 use warnings;
190 use charnames ":short", ":alias" => {
191     e_ACUTE => "LATIN:e WITH ACUTE",
192     a_ACUTE => "LATIN SMALL LETTER A WITH ACUTE",
193     };
194 "Here: \N{e_ACUTE}\N{a_ACUTE}!\n";
195 EXPECT
196 OPTIONS random fatal
197 Unknown charname 'a_ACUTE' at - line 6, within string
198 Execution of - aborted due to compilation errors.
199 ########
200 # NAME alias with hashref using mixed aliases
201 use warnings;
202 no warnings 'void';
203 use charnames ":full", ":alias" => {
204     e_ACUTE => "LATIN:e WITH ACUTE",
205     a_ACUTE => "LATIN SMALL LETTER A WITH ACUTE",
206     };
207 "Here: \N{e_ACUTE}\N{a_ACUTE}!\n";
208 EXPECT
209 OPTIONS random fatal
210 Unknown charname 'e_ACUTE' at - line 7, within string
211 Execution of - aborted due to compilation errors.
212 ########
213 # NAME alias with nonexisting file
214 use warnings;
215 no warnings 'void';
216 use charnames ":full", ":alias" => "non_existing_xyzzy";
217 "Here: \N{e_ACUTE}\N{a_ACUTE}!\n";
218 EXPECT
219 OPTIONS regex
220 unicore/non_existing_xyzzy_alias.pl cannot be used as alias file for charnames at
221 ########
222 # NAME alias with bad file name
223 use warnings;
224 no warnings 'void';
225 use charnames ":full", ":alias" => "xy 7-";
226 "Here: \N{e_ACUTE}\N{a_ACUTE}!\n";
227 EXPECT
228 OPTIONS regex
229 Charnames alias files can only have identifier characters at
230 ########
231 # NAME alias with non_absolute (existing) file name (which it should /not/ use)
232 use warnings;
233 no warnings 'void';
234 use charnames ":full", ":alias" => "perl";
235 "Here: \N{e_ACUTE}\N{a_ACUTE}!\n";
236 EXPECT
237 OPTIONS regex
238 unicore/perl_alias.pl cannot be used as alias file for charnames at
239 ########
240 # NAME alias with bad file
241 --FILE-- ../../lib/unicore/xyzzy_alias.pl
242 #!perl
243 0;
244 --FILE--
245 use warnings;
246 no warnings 'void';
247 use charnames ":full", ":alias" => "xyzzy";
248 "Here: \N{e_ACUTE}\N{a_ACUTE}!\n";
249 EXPECT
250 OPTIONS regex
251 unicore/xyzzy_alias.pl did not return a \(valid\) list of alias pairs at
252 ########
253 # NAME alias with file with empty list
254 --FILE-- ../../lib/unicore/xyzzy_alias.pl
255 #!perl
256 ();
257 --FILE--
258 use warnings;
259 no warnings 'void';
260 use charnames ":full", ":alias" => "xyzzy";
261 "Here: \N{e_ACUTE}\N{a_ACUTE}!\n";
262 EXPECT
263 OPTIONS random fatal
264 Unknown charname 'e_ACUTE' at - line 4, within string
265 Execution of - aborted due to compilation errors.
266 ########
267 # NAME alias with file OK but file has :short aliases
268 --FILE-- ../../lib/unicore/xyzzy_alias.pl
269 #!perl
270 (   e_ACUTE => "LATIN:e WITH ACUTE",
271     a_ACUTE => "LATIN:a WITH ACUTE",
272     );
273 --FILE--
274 use warnings;
275 no warnings 'void';
276 use charnames ":full", ":alias" => "xyzzy";
277 "Here: \N{e_ACUTE}\N{a_ACUTE}!\n";
278 EXPECT
279 Unknown charname 'e_ACUTE' at - line 4, within string
280 Execution of - aborted due to compilation errors.
281 ########
282 # NAME alias with :short and file OK
283 --FILE-- ../../lib/unicore/xyzzy_alias.pl
284 #!perl
285 (   e_ACUTE => "LATIN:e WITH ACUTE",
286     a_ACUTE => "LATIN:a WITH ACUTE",
287     );
288 --FILE--
289 use warnings;
290 no warnings 'void';
291 use charnames ":short", ":alias" => "xyzzy";
292 "Here: \N{e_ACUTE}\N{a_ACUTE}!\n";
293 EXPECT
294 OPTIONS regex
295 $
296 ########
297 # NAME alias with :short and file OK has :long aliases
298 --FILE-- ../../lib/unicore/xyzzy_alias.pl
299 #!perl
300 (   e_ACUTE => "LATIN SMALL LETTER E WITH ACUTE",
301     a_ACUTE => "LATIN SMALL LETTER A WITH ACUTE",
302     );
303 --FILE--
304 use warnings;
305 no warnings 'void';
306 use charnames ":short", ":alias" => "xyzzy";
307 "Here: \N{e_ACUTE}\N{a_ACUTE}!\n";
308 EXPECT
309 OPTIONS random fatal
310 Unknown charname 'e_ACUTE' at - line 4, within string
311 Execution of - aborted due to compilation errors.
312 ########
313 # NAME alias with file implicit :full but file has :short aliases
314 --FILE-- ../../lib/unicore/xyzzy_alias.pl
315 #!perl
316 (   e_ACUTE => "LATIN:e WITH ACUTE",
317     a_ACUTE => "LATIN:a WITH ACUTE",
318     );
319 --FILE--
320 use warnings;
321 no warnings 'void';
322 use charnames ":alias" => ":xyzzy";
323 "Here: \N{e_ACUTE}\N{a_ACUTE}!\n";
324 EXPECT
325 Unknown charname 'e_ACUTE' at - line 4, within string
326 Execution of - aborted due to compilation errors.
327 ########
328 # NAME alias with file implicit :full and file has :long aliases
329 --FILE-- ../../lib/unicore/xyzzy_alias.pl
330 #!perl
331 (   e_ACUTE => "LATIN SMALL LETTER E WITH ACUTE",
332     a_ACUTE => "LATIN SMALL LETTER A WITH ACUTE",
333     );
334 --FILE--
335 use warnings;
336 no warnings 'void';
337 use charnames ":alias" => ":xyzzy";
338 "Here: \N{e_ACUTE}\N{a_ACUTE}!\n";
339 EXPECT
340 OPTIONS regex
341 $
342 ########
343 # NAME charnames with no import still works for runtime functions
344 use warnings;
345 no warnings 'void';
346 use charnames ();
347 charnames::vianame('SPACE');
348 charnames::viacode(0x41);
349 EXPECT
350 OPTIONS regex
351 $
352 ########
353 # NAME no extraneous warning [perl #11560]
354 use warnings;
355 use charnames ();
356 print charnames::viacode(0x80), "\n";
357 EXPECT
358 OPTIONS regex
359 PADDING CHARACTER