xref: /openbsd/gnu/usr.bin/perl/t/lib/warnings/utf8 (revision cca36db2)
1
2  utf8.c AOK
3
4     [utf8_to_uv]
5     Malformed UTF-8 character
6	my $a = ord "\x80" ;
7
8     Malformed UTF-8 character
9	my $a = ord "\xf080" ;
10     <<<<<< this warning can't be easily triggered from perl anymore
11
12     [utf16_to_utf8]
13     Malformed UTF-16 surrogate
14     <<<<<< Add a test when somethig actually calls utf16_to_utf8
15
16__END__
17# utf8.c [utf8_to_uv] -W
18BEGIN {
19    if (ord('A') == 193) {
20        print "SKIPPED\n# ebcdic platforms do not generate Malformed UTF-8 warnings.";
21        exit 0;
22    }
23}
24use utf8 ;
25my $a = "sn�storm" ;
26{
27    no warnings 'utf8' ;
28    my $a = "sn�storm";
29    use warnings 'utf8' ;
30    my $a = "sn�storm";
31}
32EXPECT
33Malformed UTF-8 character (unexpected non-continuation byte 0x73, immediately after start byte 0xf8) at - line 9.
34Malformed UTF-8 character (unexpected non-continuation byte 0x73, immediately after start byte 0xf8) at - line 14.
35########
36use warnings 'utf8';
37my $d7ff  = chr(0xD7FF);
38my $d800  = chr(0xD800);
39my $dfff  = chr(0xDFFF);
40my $e000  = chr(0xE000);
41my $feff  = chr(0xFEFF);
42my $fffd  = chr(0xFFFD);
43my $fffe  = chr(0xFFFE);
44my $ffff  = chr(0xFFFF);
45my $hex4  = chr(0x10000);
46my $hex5  = chr(0x100000);
47my $maxm1 = chr(0x10FFFE);
48my $max   = chr(0x10FFFF);
49no warnings 'utf8';
50my $d7ff  = chr(0xD7FF);
51my $d800  = chr(0xD800);
52my $dfff  = chr(0xDFFF);
53my $e000  = chr(0xE000);
54my $feff  = chr(0xFEFF);
55my $fffd  = chr(0xFFFD);
56my $fffe  = chr(0xFFFE);
57my $ffff  = chr(0xFFFF);
58my $hex4  = chr(0x10000);
59my $hex5  = chr(0x100000);
60my $maxm1 = chr(0x10FFFE);
61my $max   = chr(0x10FFFF);
62EXPECT
63UTF-16 surrogate 0xd800 at - line 3.
64UTF-16 surrogate 0xdfff at - line 4.
65Unicode non-character 0xfffe is illegal for interchange at - line 8.
66Unicode non-character 0xffff is illegal for interchange at - line 9.
67Unicode non-character 0x10fffe is illegal for interchange at - line 12.
68Unicode non-character 0x10ffff is illegal for interchange at - line 13.
69########
70use warnings 'utf8';
71my $d7ff  = pack("U", 0xD7FF);
72my $d800  = pack("U", 0xD800);
73my $dfff  = pack("U", 0xDFFF);
74my $e000  = pack("U", 0xE000);
75my $feff  = pack("U", 0xFEFF);
76my $fffd  = pack("U", 0xFFFD);
77my $fffe  = pack("U", 0xFFFE);
78my $ffff  = pack("U", 0xFFFF);
79my $hex4  = pack("U", 0x10000);
80my $hex5  = pack("U", 0x100000);
81my $maxm1 = pack("U", 0x10FFFE);
82my $max   = pack("U", 0x10FFFF);
83no warnings 'utf8';
84my $d7ff  = pack("U", 0xD7FF);
85my $d800  = pack("U", 0xD800);
86my $dfff  = pack("U", 0xDFFF);
87my $e000  = pack("U", 0xE000);
88my $feff  = pack("U", 0xFEFF);
89my $fffd  = pack("U", 0xFFFD);
90my $fffe  = pack("U", 0xFFFE);
91my $ffff  = pack("U", 0xFFFF);
92my $hex4  = pack("U", 0x10000);
93my $hex5  = pack("U", 0x100000);
94my $maxm1 = pack("U", 0x10FFFE);
95my $max   = pack("U", 0x10FFFF);
96EXPECT
97UTF-16 surrogate 0xd800 at - line 3.
98UTF-16 surrogate 0xdfff at - line 4.
99Unicode non-character 0xfffe is illegal for interchange at - line 8.
100Unicode non-character 0xffff is illegal for interchange at - line 9.
101Unicode non-character 0x10fffe is illegal for interchange at - line 12.
102Unicode non-character 0x10ffff is illegal for interchange at - line 13.
103########
104use warnings 'utf8';
105my $d7ff  = "\x{D7FF}";
106my $d800  = "\x{D800}";
107my $dfff  = "\x{DFFF}";
108my $e000  = "\x{E000}";
109my $feff  = "\x{FEFF}";
110my $fffd  = "\x{FFFD}";
111my $fffe  = "\x{FFFE}";
112my $ffff  = "\x{FFFF}";
113my $hex4  = "\x{10000}";
114my $hex5  = "\x{100000}";
115my $maxm1 = "\x{10FFFE}";
116my $max   = "\x{10FFFF}";
117uc($ffff);
118no warnings 'utf8';
119my $d7ff  = "\x{D7FF}";
120my $d800  = "\x{D800}";
121my $dfff  = "\x{DFFF}";
122my $e000  = "\x{E000}";
123my $feff  = "\x{FEFF}";
124my $fffd  = "\x{FFFD}";
125my $fffe  = "\x{FFFE}";
126my $ffff  = "\x{FFFF}";
127my $hex4  = "\x{10000}";
128my $hex5  = "\x{100000}";
129my $maxm1 = "\x{10FFFE}";
130my $max   = "\x{10FFFF}";
131uc($ffff);
132EXPECT
133UTF-16 surrogate 0xd800 at - line 3.
134UTF-16 surrogate 0xdfff at - line 4.
135Unicode non-character 0xfffe is illegal for interchange at - line 8.
136Unicode non-character 0xffff is illegal for interchange at - line 9.
137Unicode non-character 0x10fffe is illegal for interchange at - line 12.
138Unicode non-character 0x10ffff is illegal for interchange at - line 13.
139Unicode non-character 0xffff is illegal for interchange in uc at - line 14.
140