| 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.
|
|---|