(?p{}) has been deprecated for a long time.
[p5sagit/p5-mst-13.2.git] / t / lib / warnings / utf8
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
18 BEGIN {
19     if (ord('A') == 193) {
20         print "SKIPPED\n# ebcdic platforms do not generate Malformed UTF-8 warnings.";
21         exit 0;
22     }
23 }
24 use utf8 ;
25 my $a = "snøstorm" ;
26 {
27     no warnings 'utf8' ;
28     my $a = "snøstorm";
29     use warnings 'utf8' ;
30     my $a = "snøstorm";
31 }
32 EXPECT
33 Malformed UTF-8 character (unexpected non-continuation byte 0x73, immediately after start byte 0xf8) at - line 9.
34 Malformed UTF-8 character (unexpected non-continuation byte 0x73, immediately after start byte 0xf8) at - line 14.
35 ########
36 use warnings 'utf8';
37 my $d7ff  = chr(0xD7FF);
38 my $d800  = chr(0xD800);
39 my $dfff  = chr(0xDFFF);
40 my $e000  = chr(0xE000);
41 my $feff  = chr(0xFEFF);
42 my $fffd  = chr(0xFFFD);
43 my $fffe  = chr(0xFFFE);
44 my $ffff  = chr(0xFFFF);
45 my $hex4  = chr(0x10000);
46 my $hex5  = chr(0x100000);
47 my $maxm1 = chr(0x10FFFE);
48 my $max   = chr(0x10FFFF);
49 no warnings 'utf8';
50 my $d7ff  = chr(0xD7FF);
51 my $d800  = chr(0xD800);
52 my $dfff  = chr(0xDFFF);
53 my $e000  = chr(0xE000);
54 my $feff  = chr(0xFEFF);
55 my $fffd  = chr(0xFFFD);
56 my $fffe  = chr(0xFFFE);
57 my $ffff  = chr(0xFFFF);
58 my $hex4  = chr(0x10000);
59 my $hex5  = chr(0x100000);
60 my $maxm1 = chr(0x10FFFE);
61 my $max   = chr(0x10FFFF);
62 EXPECT
63 UTF-16 surrogate 0xd800 at - line 3.
64 UTF-16 surrogate 0xdfff at - line 4.
65 Unicode character 0xfffe is illegal at - line 8.
66 Unicode character 0xffff is illegal at - line 9.
67 Unicode character 0x10fffe is illegal at - line 12.
68 Unicode character 0x10ffff is illegal at - line 13.
69 ########
70 use warnings 'utf8';
71 my $d7ff  = pack("U", 0xD7FF);
72 my $d800  = pack("U", 0xD800);
73 my $dfff  = pack("U", 0xDFFF);
74 my $e000  = pack("U", 0xE000);
75 my $feff  = pack("U", 0xFEFF);
76 my $fffd  = pack("U", 0xFFFD);
77 my $fffe  = pack("U", 0xFFFE);
78 my $ffff  = pack("U", 0xFFFF);
79 my $hex4  = pack("U", 0x10000);
80 my $hex5  = pack("U", 0x100000);
81 my $maxm1 = pack("U", 0x10FFFE);
82 my $max   = pack("U", 0x10FFFF);
83 no warnings 'utf8';
84 my $d7ff  = pack("U", 0xD7FF);
85 my $d800  = pack("U", 0xD800);
86 my $dfff  = pack("U", 0xDFFF);
87 my $e000  = pack("U", 0xE000);
88 my $feff  = pack("U", 0xFEFF);
89 my $fffd  = pack("U", 0xFFFD);
90 my $fffe  = pack("U", 0xFFFE);
91 my $ffff  = pack("U", 0xFFFF);
92 my $hex4  = pack("U", 0x10000);
93 my $hex5  = pack("U", 0x100000);
94 my $maxm1 = pack("U", 0x10FFFE);
95 my $max   = pack("U", 0x10FFFF);
96 EXPECT
97 UTF-16 surrogate 0xd800 at - line 3.
98 UTF-16 surrogate 0xdfff at - line 4.
99 Unicode character 0xfffe is illegal at - line 8.
100 Unicode character 0xffff is illegal at - line 9.
101 Unicode character 0x10fffe is illegal at - line 12.
102 Unicode character 0x10ffff is illegal at - line 13.
103 ########
104 use warnings 'utf8';
105 my $d7ff  = "\x{D7FF}";
106 my $d800  = "\x{D800}";
107 my $dfff  = "\x{DFFF}";
108 my $e000  = "\x{E000}";
109 my $feff  = "\x{FEFF}";
110 my $fffd  = "\x{FFFD}";
111 my $fffe  = "\x{FFFE}";
112 my $ffff  = "\x{FFFF}";
113 my $hex4  = "\x{10000}";
114 my $hex5  = "\x{100000}";
115 my $maxm1 = "\x{10FFFE}";
116 my $max   = "\x{10FFFF}";
117 no warnings 'utf8';
118 my $d7ff  = "\x{D7FF}";
119 my $d800  = "\x{D800}";
120 my $dfff  = "\x{DFFF}";
121 my $e000  = "\x{E000}";
122 my $feff  = "\x{FEFF}";
123 my $fffd  = "\x{FFFD}";
124 my $fffe  = "\x{FFFE}";
125 my $ffff  = "\x{FFFF}";
126 my $hex4  = "\x{10000}";
127 my $hex5  = "\x{100000}";
128 my $maxm1 = "\x{10FFFE}";
129 my $max   = "\x{10FFFF}";
130 EXPECT
131 UTF-16 surrogate 0xd800 at - line 3.
132 UTF-16 surrogate 0xdfff at - line 4.
133 Unicode character 0xfffe is illegal at - line 8.
134 Unicode character 0xffff is illegal at - line 9.
135 Unicode character 0x10fffe is illegal at - line 12.
136 Unicode character 0x10ffff is illegal at - line 13.