lib_sanitize Tests

NameStatusInputExpectedGot
[PHP] overlong encoding byte C0 pass hello[C0]world helloworld helloworld
[PHP] overlong encoding byte C1 pass hello[C1]world helloworld helloworld
[PHP] start of 4 byte code point over U+10FFFF pass hello[F5]world helloworld helloworld
[PHP] start of 4 byte code point over U+10FFFF pass hello[F6]world helloworld helloworld
[PHP] start of 4 byte code point over U+10FFFF pass hello[F7]world helloworld helloworld
[PHP] start of deprecated 5 byte sequence pass hello[F8]world helloworld helloworld
[PHP] start of deprecated 5 byte sequence pass hello[F9]world helloworld helloworld
[PHP] start of deprecated 5 byte sequence pass hello[FA]world helloworld helloworld
[PHP] start of deprecated 5 byte sequence pass hello[FB]world helloworld helloworld
[PHP] start of deprecated 6 byte sequence pass hello[FC]world helloworld helloworld
[PHP] start of deprecated 6 byte sequence pass hello[FD]world helloworld helloworld
[PHP] invalid byte FE pass hello[FE]world helloworld helloworld
[PHP] invalid byte FF pass hello[FF]world helloworld helloworld
[PHP] lone trail pass a[BF]b ab ab
[PHP] 2 lone trails pass a[BF][BF]b ab ab
[PHP] 3 lone trails pass a[BF][BF][BF]b ab ab
[PHP] 0 leader w/ 0 trail pass aAb aAb aAb
[PHP] 0 leader w/ 1 trail pass aA[BF]b aAb aAb
[PHP] 0 leader w/ 2 trail pass aA[BF][BF]b aAb aAb
[PHP] 1 leader w/ 0 trail pass a[C2]b ab ab
[PHP] 1 leader w/ 1 trail pass a[C2][BF]b a[C2][BF]b a[C2][BF]b
[PHP] 1 leader w/ 2 trail pass a[C2][BF][BF]b a[C2][BF]b a[C2][BF]b
[PHP] 2 leader w/ 0 trail pass a[E1]b ab ab
[PHP] 2 leader w/ 1 trail pass a[E1][80]b ab ab
[PHP] 2 leader w/ 2 trail pass a[E1][80][80]b a[E1][80][80]b a[E1][80][80]b
[PHP] 2 leader w/ 3 trail pass a[E1][80][80][80]b a[E1][80][80]b a[E1][80][80]b
[PHP] 3 leader w/ 0 trail pass a[F0]b ab ab
[PHP] 3 leader w/ 1 trail pass a[F0][A0]b ab ab
[PHP] 3 leader w/ 2 trail pass a[F0][A0][80]b ab ab
[PHP] 3 leader w/ 3 trail pass a[F0][A0][80][80]b a[F0][A0][80][80]b a[F0][A0][80][80]b
[PHP] 3 leader w/ 4 trail pass a[F0][A0][80][80][80]b a[F0][A0][80][80]b a[F0][A0][80][80]b
[PHP] 2L1 1T pass a[C2][C2][BF]b a[C2][BF]b a[C2][BF]b
[PHP] 2L1 2T pass a[C2][C2][BF][BF]b a[C2][BF]b a[C2][BF]b
[PHP] 2L2 2T pass a[E1][E1][80][80]b a[E1][80][80]b a[E1][80][80]b
[PHP] 2L2 3T pass a[E1][E1][80][80][80]b a[E1][80][80]b a[E1][80][80]b
[PHP] 3L2 3T pass a[E1][E1][E1][80][80][80]b a[E1][80][80]b a[E1][80][80]b
[PHP] L2 T 2L2 3T pass a[E1][80][E1][E1][80][80][80]b a[E1][80][80]b a[E1][80][80]b
[PHP] 2L1 1T at egdes pass [C2][C2][BF] [C2][BF] [C2][BF]
[PHP] 2L1 2T at egdes pass [C2][C2][BF][BF] [C2][BF] [C2][BF]
[PHP] 2L2 2T at egdes pass [E1][E1][80][80] [E1][80][80] [E1][80][80]
[PHP] 2L2 3T at egdes pass [E1][E1][80][80][80] [E1][80][80] [E1][80][80]
[PHP] 3L2 3T at egdes pass [E1][E1][E1][80][80][80] [E1][80][80] [E1][80][80]
[PHP] L2 T 2L2 3T at egdes pass [E1][80][E1][E1][80][80][80] [E1][80][80] [E1][80][80]
[PHP] lowest out of range 4-byte starting with F4 - U+110000 pass a[F4][90][80][80]b ab ab
[PHP] highest out of range 4-byte starting with F4 - U+13FFFF pass a[F4][BF][BF][BF]b ab ab
[PHP] lowest out of range 4-byte starting over F4 - U+140000 pass a[F5][80][80][80]b ab ab
[PHP] highest out of range 4-byte starting over F4 - U+1FFFFF pass a[F7][BF][BF][BF]b ab ab
[PHP] lowest 5-byte U+200000 pass a[F8][88][80][80][80]b ab ab
[PHP] highest 5-byte U+3FFFFFF pass a[FB][BF][BF][BF][BF]b ab ab
[PHP] lowest 6-byte starting with FC - U+4000000 pass a[FC][84][80][80][80][80]b ab ab
[PHP] highest 6-byte starting with FC - U+3FFFFFFF pass a[FC][BF][BF][BF][BF][BF]b ab ab
[PHP] lowest 6-byte starting with FD - U+40000000 pass a[FD][80][80][80][80][80]b ab ab
[PHP] highest 6-byte starting with FD - U+7FFFFFFF pass a[FD][BF][BF][BF][BF][BF]b ab ab
[PHP] lowest overlong 2-byte - U+0000 pass a[C0][80]b ab ab
[PHP] highest overlong 2-byte - U+007F pass a[C1][BF]b ab ab
[PHP] lowest valid 2-byte - U+00A0 pass a[C2][A0]b a[C2][A0]b a[C2][A0]b
[PHP] highest valid 2-byte - U+07FA pass a[DF][BA]b a[DF][BA]b a[DF][BA]b
[PHP] highest possible 2-byte (no strip) - U+07FF pass a[DF][BF]b a[DF][BF]b a[DF][BF]b
[PHP] highest possible 2-byte (strip) - U+07FF fail a[DF][BF]b ab a[DF][BF]b
[PHP] lowest overlong 3-byte - U+0000 pass a[E0][80][80]b ab ab
[PHP] highest overlong 3-byte - U+07FF pass a[E0][9F][BF]b ab ab
[PHP] lowest valid 3-byte - U+0800 pass a[E0][A0][80]b a[E0][A0][80]b a[E0][A0][80]b
[PHP] highest valid 3-byte - U+FFFB pass a[EF][BF][BB]b a[EF][BF][BB]b a[EF][BF][BB]b
[PHP] lowest overlong 4-byte - U+0000 pass a[F0][80][80][80]b ab ab
[PHP] highest overlong 4-byte - U+FFFB pass a[F0][8F][BF][BB]b ab ab
[PHP] lowest valid 4-byte - U+10000 pass a[F0][90][80][80]b a[F0][90][80][80]b a[F0][90][80][80]b
[PHP] highest valid 4-byte - U+10FFFD pass a[F4][8F][BF][BD]b a[F4][8F][BF][BD]b a[F4][8F][BF][BD]b
[PHP] lowest overlong 5-byte - U+0000 pass a[F8][80][80][80][80]b ab ab
[PHP] highest overlong 5-byte - U+1FFFFD pass a[F8][87][BF][BF][BD]b ab ab
[PHP] lowest overlong 6-byte - U+0000 pass a[FC][80][80][80][80][80]b ab ab
[PHP] highest overlong 6-byte - U+3FFFFFF pass a[FC][83][BF][BF][BF][BF]b ab ab
[PHP] Latin-1 fallback 0x76 pass v v v
[PHP] Latin-1 fallback 0xEB pass [EB] [C3][AB] [C3][AB]
[PHP] Latin-1 fallback word pass H[EB]llo H[C3][AB]llo H[C3][AB]llo
[PHP] Unknown sanitize mode exception pass sanitize("hello\xC0world", "str"); thrown thrown
[PHP] ISO-8859-1 0x76 -> U+0076 pass v v v
[PHP] ISO-8859-1 0xE6 -> U+00E6 pass [E6] [C3][A6] [C3][A6]
[mbstring] overlong encoding byte C0 pass hello[C0]world helloworld helloworld
[mbstring] overlong encoding byte C1 pass hello[C1]world helloworld helloworld
[mbstring] start of 4 byte code point over U+10FFFF pass hello[F5]world helloworld helloworld
[mbstring] start of 4 byte code point over U+10FFFF pass hello[F6]world helloworld helloworld
[mbstring] start of 4 byte code point over U+10FFFF pass hello[F7]world helloworld helloworld
[mbstring] start of deprecated 5 byte sequence pass hello[F8]world helloworld helloworld
[mbstring] start of deprecated 5 byte sequence pass hello[F9]world helloworld helloworld
[mbstring] start of deprecated 5 byte sequence pass hello[FA]world helloworld helloworld
[mbstring] start of deprecated 5 byte sequence pass hello[FB]world helloworld helloworld
[mbstring] start of deprecated 6 byte sequence pass hello[FC]world helloworld helloworld
[mbstring] start of deprecated 6 byte sequence pass hello[FD]world helloworld helloworld
[mbstring] invalid byte FE pass hello[FE]world helloworld helloworld
[mbstring] invalid byte FF pass hello[FF]world helloworld helloworld
[mbstring] lone trail fail a[BF]b ab aBAD+BFb
[mbstring] 2 lone trails fail a[BF][BF]b ab aBAD+BFBAD+BFb
[mbstring] 3 lone trails fail a[BF][BF][BF]b ab aBAD+BFBAD+BFBAD+BFb
[mbstring] 0 leader w/ 0 trail pass aAb aAb aAb
[mbstring] 0 leader w/ 1 trail fail aA[BF]b aAb aABAD+BFb
[mbstring] 0 leader w/ 2 trail fail aA[BF][BF]b aAb aABAD+BFBAD+BFb
[mbstring] 1 leader w/ 0 trail fail a[C2]b ab aBAD+2b
[mbstring] 1 leader w/ 1 trail pass a[C2][BF]b a[C2][BF]b a[C2][BF]b
[mbstring] 1 leader w/ 2 trail fail a[C2][BF][BF]b a[C2][BF]b a[C2][BF]BAD+BFb
[mbstring] 2 leader w/ 0 trail fail a[E1]b ab aBAD+1b
[mbstring] 2 leader w/ 1 trail fail a[E1][80]b ab aBAD+40b
[mbstring] 2 leader w/ 2 trail pass a[E1][80][80]b a[E1][80][80]b a[E1][80][80]b
[mbstring] 2 leader w/ 3 trail fail a[E1][80][80][80]b a[E1][80][80]b a[E1][80][80]BAD+80b
[mbstring] 3 leader w/ 0 trail fail a[F0]b ab aBAD+0b
[mbstring] 3 leader w/ 1 trail fail a[F0][A0]b ab aBAD+20b
[mbstring] 3 leader w/ 2 trail fail a[F0][A0][80]b ab aBAD+800b
[mbstring] 3 leader w/ 3 trail pass a[F0][A0][80][80]b a[F0][A0][80][80]b a[F0][A0][80][80]b
[mbstring] 3 leader w/ 4 trail fail a[F0][A0][80][80][80]b a[F0][A0][80][80]b a[F0][A0][80][80]BAD+80b
[mbstring] 2L1 1T fail a[C2][C2][BF]b a[C2][BF]b aBAD+2[C2][BF]b
[mbstring] 2L1 2T fail a[C2][C2][BF][BF]b a[C2][BF]b aBAD+2[C2][BF]BAD+BFb
[mbstring] 2L2 2T fail a[E1][E1][80][80]b a[E1][80][80]b aBAD+1[E1][80][80]b
[mbstring] 2L2 3T fail a[E1][E1][80][80][80]b a[E1][80][80]b aBAD+1[E1][80][80]BAD+80b
[mbstring] 3L2 3T fail a[E1][E1][E1][80][80][80]b a[E1][80][80]b aBAD+1BAD+1[E1][80][80]BAD+80b
[mbstring] L2 T 2L2 3T fail a[E1][80][E1][E1][80][80][80]b a[E1][80][80]b aBAD+40BAD+1[E1][80][80]BAD+80b
[mbstring] 2L1 1T at egdes fail [C2][C2][BF] [C2][BF] BAD+2[C2][BF]
[mbstring] 2L1 2T at egdes fail [C2][C2][BF][BF] [C2][BF] BAD+2[C2][BF]BAD+BF
[mbstring] 2L2 2T at egdes fail [E1][E1][80][80] [E1][80][80] BAD+1[E1][80][80]
[mbstring] 2L2 3T at egdes fail [E1][E1][80][80][80] [E1][80][80] BAD+1[E1][80][80]BAD+80
[mbstring] 3L2 3T at egdes fail [E1][E1][E1][80][80][80] [E1][80][80] BAD+1BAD+1[E1][80][80]BAD+80
[mbstring] L2 T 2L2 3T at egdes fail [E1][80][E1][E1][80][80][80] [E1][80][80] BAD+40BAD+1[E1][80][80]BAD+80
[mbstring] lowest out of range 4-byte starting with F4 - U+110000 fail a[F4][90][80][80]b ab aBAD+4BAD+90BAD+80BAD+80b
[mbstring] highest out of range 4-byte starting with F4 - U+13FFFF fail a[F4][BF][BF][BF]b ab aBAD+4BAD+BFBAD+BFBAD+BFb
[mbstring] lowest out of range 4-byte starting over F4 - U+140000 fail a[F5][80][80][80]b ab aBAD+80BAD+80BAD+80b
[mbstring] highest out of range 4-byte starting over F4 - U+1FFFFF fail a[F7][BF][BF][BF]b ab aBAD+BFBAD+BFBAD+BFb
[mbstring] lowest 5-byte U+200000 fail a[F8][88][80][80][80]b ab aBAD+88BAD+80BAD+80BAD+80b
[mbstring] highest 5-byte U+3FFFFFF fail a[FB][BF][BF][BF][BF]b ab aBAD+BFBAD+BFBAD+BFBAD+BFb
[mbstring] lowest 6-byte starting with FC - U+4000000 fail a[FC][84][80][80][80][80]b ab aBAD+84BAD+80BAD+80BAD+80BAD+80b
[mbstring] highest 6-byte starting with FC - U+3FFFFFFF fail a[FC][BF][BF][BF][BF][BF]b ab aBAD+BFBAD+BFBAD+BFBAD+BFBAD+BFb
[mbstring] lowest 6-byte starting with FD - U+40000000 fail a[FD][80][80][80][80][80]b ab aBAD+80BAD+80BAD+80BAD+80BAD+80b
[mbstring] highest 6-byte starting with FD - U+7FFFFFFF fail a[FD][BF][BF][BF][BF][BF]b ab aBAD+BFBAD+BFBAD+BFBAD+BFBAD+BFb
[mbstring] lowest overlong 2-byte - U+0000 fail a[C0][80]b ab aBAD+80b
[mbstring] highest overlong 2-byte - U+007F fail a[C1][BF]b ab aBAD+BFb
[mbstring] lowest valid 2-byte - U+00A0 pass a[C2][A0]b a[C2][A0]b a[C2][A0]b
[mbstring] highest valid 2-byte - U+07FA pass a[DF][BA]b a[DF][BA]b a[DF][BA]b
[mbstring] highest possible 2-byte (no strip) - U+07FF pass a[DF][BF]b a[DF][BF]b a[DF][BF]b
[mbstring] highest possible 2-byte (strip) - U+07FF fail a[DF][BF]b ab a[DF][BF]b
[mbstring] lowest overlong 3-byte - U+0000 pass a[E0][80][80]b ab ab
[mbstring] highest overlong 3-byte - U+07FF pass a[E0][9F][BF]b ab ab
[mbstring] lowest valid 3-byte - U+0800 pass a[E0][A0][80]b a[E0][A0][80]b a[E0][A0][80]b
[mbstring] highest valid 3-byte - U+FFFB pass a[EF][BF][BB]b a[EF][BF][BB]b a[EF][BF][BB]b
[mbstring] lowest overlong 4-byte - U+0000 pass a[F0][80][80][80]b ab ab
[mbstring] highest overlong 4-byte - U+FFFB pass a[F0][8F][BF][BB]b ab ab
[mbstring] lowest valid 4-byte - U+10000 pass a[F0][90][80][80]b a[F0][90][80][80]b a[F0][90][80][80]b
[mbstring] highest valid 4-byte - U+10FFFD pass a[F4][8F][BF][BD]b a[F4][8F][BF][BD]b a[F4][8F][BF][BD]b
[mbstring] lowest overlong 5-byte - U+0000 fail a[F8][80][80][80][80]b ab aBAD+80BAD+80BAD+80BAD+80b
[mbstring] highest overlong 5-byte - U+1FFFFD fail a[F8][87][BF][BF][BD]b ab aBAD+87BAD+BFBAD+BFBAD+BDb
[mbstring] lowest overlong 6-byte - U+0000 fail a[FC][80][80][80][80][80]b ab aBAD+80BAD+80BAD+80BAD+80BAD+80b
[mbstring] highest overlong 6-byte - U+3FFFFFF fail a[FC][83][BF][BF][BF][BF]b ab aBAD+83BAD+BFBAD+BFBAD+BFBAD+BFb
[mbstring] Latin-1 fallback 0x76 pass v v v
[mbstring] Latin-1 fallback 0xEB pass [EB] [C3][AB] [C3][AB]
[mbstring] Latin-1 fallback word pass H[EB]llo H[C3][AB]llo H[C3][AB]llo
[mbstring] Unknown sanitize mode exception pass sanitize("hello\xC0world", "str"); thrown thrown
[mbstring] SJIS 0x76 -> U+0076 pass v v v
[mbstring] SJIS 0xA6 -> U+FF66 pass [A6] [EF][BD][A6] [EF][BD][A6]
[mbstring] SJIS 0x8140 -> U+3000 pass [81]@ [E3][80][80] [E3][80][80]
[mbstring] SJIS 0x82DC -> U+307E pass [82][DC] [E3][81][BE] [E3][81][BE]
[mbstring] SJIS 0x8CCC -> U+6545 pass [8C][CC] [E6][95][85] [E6][95][85]
[mbstring] ISO-2022-JP US-ASCII 0x76 -> U+0076 pass v v v
[mbstring] ISO-2022-JP JIS-X-201 0xA6 -> U+FF66 pass [A6] [EF][BD][A6] [EF][BD][A6]
[mbstring] ISO-2022-JP JIS-X-201 0xBE -> U+FF7E pass [BE] [EF][BD][BE] [EF][BD][BE]
[mbstring] ISO-2022-JP JIS-X-208-1978 0x214A -> U+FF08 pass [1B]$@!J [EF][BC][88] [EF][BC][88]
[mbstring] ISO-2022-JP JIS-X-208-1978 0x3C2D -> U+8F9E pass [1B]$@<- [E8][BE][9E] [E8][BE][9E]
[mbstring] ISO-2022-JP JIS-X-208-1983 0x214A -> U+FF08 pass [1B]$B!J [EF][BC][88] [EF][BC][88]
[mbstring] ISO-2022-JP JIS-X-208-1983 0x3C2D -> U+8F9E pass [1B]$B<- [E8][BE][9E] [E8][BE][9E]
[mbstring] EUC-JP US-ASCII 0x76 -> U+0076 pass v v v
[mbstring] EUC-JP JIS-X-201 0xB6 -> U+FF76 pass [8E][B6] [EF][BD][B6] [EF][BD][B6]
[mbstring] EUC-JP JIS-X-201 0xDE -> U+FF9E pass [8E][DE] [EF][BE][9E] [EF][BE][9E]
[mbstring] EUC-JP JIS-X-0208 0x2133 -> U+30FD pass [A1][B3] [E3][83][BD] [E3][83][BD]
[mbstring] EUC-JP JIS-X-0208 0x3053 -> U+5C09 pass [B0][D3] [E5][B0][89] [E5][B0][89]
[mbstring] EUC-JP JIS-X-0212 0x3031 - U+4E44 pass [8F][B0][B1] [E4][B9][84] [E4][B9][84]
[mbstring] EUC-JP JIS-X-0212 0x4258 - U+66A4 pass [8F][C2][D8] [E6][9A][A4] [E6][9A][A4]
[mbstring] ISO-8859-1 0x76 -> U+0076 pass v v v
[mbstring] ISO-8859-1 0xE6 -> U+00E6 pass [E6] [C3][A6] [C3][A6]
[mbstring] ISO-8859-2 0x76 -> U+0076 pass v v v
[mbstring] ISO-8859-2 0xE6 -> U+0107 pass [E6] [C4][87] [C4][87]
[mbstring] ISO-8859-15 0x76 -> U+0076 pass v v v
[mbstring] ISO-8859-15 0xBE -> U+0178 pass [BE] [C5][B8] [C5][B8]
[iconv] overlong encoding byte C0 pass hello[C0]world helloworld helloworld
[iconv] overlong encoding byte C1 pass hello[C1]world helloworld helloworld
[iconv] start of 4 byte code point over U+10FFFF pass hello[F5]world helloworld helloworld
[iconv] start of 4 byte code point over U+10FFFF pass hello[F6]world helloworld helloworld
[iconv] start of 4 byte code point over U+10FFFF pass hello[F7]world helloworld helloworld
[iconv] start of deprecated 5 byte sequence pass hello[F8]world helloworld helloworld
[iconv] start of deprecated 5 byte sequence pass hello[F9]world helloworld helloworld
[iconv] start of deprecated 5 byte sequence pass hello[FA]world helloworld helloworld
[iconv] start of deprecated 5 byte sequence pass hello[FB]world helloworld helloworld
[iconv] start of deprecated 6 byte sequence pass hello[FC]world helloworld helloworld
[iconv] start of deprecated 6 byte sequence pass hello[FD]world helloworld helloworld
[iconv] invalid byte FE pass hello[FE]world helloworld helloworld
[iconv] invalid byte FF pass hello[FF]world helloworld helloworld
[iconv] lone trail pass a[BF]b ab ab
[iconv] 2 lone trails pass a[BF][BF]b ab ab
[iconv] 3 lone trails pass a[BF][BF][BF]b ab ab
[iconv] 0 leader w/ 0 trail pass aAb aAb aAb
[iconv] 0 leader w/ 1 trail pass aA[BF]b aAb aAb
[iconv] 0 leader w/ 2 trail pass aA[BF][BF]b aAb aAb
[iconv] 1 leader w/ 0 trail pass a[C2]b ab ab
[iconv] 1 leader w/ 1 trail pass a[C2][BF]b a[C2][BF]b a[C2][BF]b
[iconv] 1 leader w/ 2 trail pass a[C2][BF][BF]b a[C2][BF]b a[C2][BF]b
[iconv] 2 leader w/ 0 trail pass a[E1]b ab ab
[iconv] 2 leader w/ 1 trail pass a[E1][80]b ab ab
[iconv] 2 leader w/ 2 trail pass a[E1][80][80]b a[E1][80][80]b a[E1][80][80]b
[iconv] 2 leader w/ 3 trail pass a[E1][80][80][80]b a[E1][80][80]b a[E1][80][80]b
[iconv] 3 leader w/ 0 trail pass a[F0]b ab ab
[iconv] 3 leader w/ 1 trail pass a[F0][A0]b ab ab
[iconv] 3 leader w/ 2 trail pass a[F0][A0][80]b ab ab
[iconv] 3 leader w/ 3 trail pass a[F0][A0][80][80]b a[F0][A0][80][80]b a[F0][A0][80][80]b
[iconv] 3 leader w/ 4 trail pass a[F0][A0][80][80][80]b a[F0][A0][80][80]b a[F0][A0][80][80]b
[iconv] 2L1 1T pass a[C2][C2][BF]b a[C2][BF]b a[C2][BF]b
[iconv] 2L1 2T pass a[C2][C2][BF][BF]b a[C2][BF]b a[C2][BF]b
[iconv] 2L2 2T pass a[E1][E1][80][80]b a[E1][80][80]b a[E1][80][80]b
[iconv] 2L2 3T pass a[E1][E1][80][80][80]b a[E1][80][80]b a[E1][80][80]b
[iconv] 3L2 3T pass a[E1][E1][E1][80][80][80]b a[E1][80][80]b a[E1][80][80]b
[iconv] L2 T 2L2 3T pass a[E1][80][E1][E1][80][80][80]b a[E1][80][80]b a[E1][80][80]b
[iconv] 2L1 1T at egdes pass [C2][C2][BF] [C2][BF] [C2][BF]
[iconv] 2L1 2T at egdes pass [C2][C2][BF][BF] [C2][BF] [C2][BF]
[iconv] 2L2 2T at egdes pass [E1][E1][80][80] [E1][80][80] [E1][80][80]
[iconv] 2L2 3T at egdes pass [E1][E1][80][80][80] [E1][80][80] [E1][80][80]
[iconv] 3L2 3T at egdes pass [E1][E1][E1][80][80][80] [E1][80][80] [E1][80][80]
[iconv] L2 T 2L2 3T at egdes pass [E1][80][E1][E1][80][80][80] [E1][80][80] [E1][80][80]
[iconv] lowest out of range 4-byte starting with F4 - U+110000 pass a[F4][90][80][80]b ab ab
[iconv] highest out of range 4-byte starting with F4 - U+13FFFF pass a[F4][BF][BF][BF]b ab ab
[iconv] lowest out of range 4-byte starting over F4 - U+140000 pass a[F5][80][80][80]b ab ab
[iconv] highest out of range 4-byte starting over F4 - U+1FFFFF pass a[F7][BF][BF][BF]b ab ab
[iconv] lowest 5-byte U+200000 pass a[F8][88][80][80][80]b ab ab
[iconv] highest 5-byte U+3FFFFFF pass a[FB][BF][BF][BF][BF]b ab ab
[iconv] lowest 6-byte starting with FC - U+4000000 pass a[FC][84][80][80][80][80]b ab ab
[iconv] highest 6-byte starting with FC - U+3FFFFFFF pass a[FC][BF][BF][BF][BF][BF]b ab ab
[iconv] lowest 6-byte starting with FD - U+40000000 pass a[FD][80][80][80][80][80]b ab ab
[iconv] highest 6-byte starting with FD - U+7FFFFFFF pass a[FD][BF][BF][BF][BF][BF]b ab ab
[iconv] lowest overlong 2-byte - U+0000 pass a[C0][80]b ab ab
[iconv] highest overlong 2-byte - U+007F pass a[C1][BF]b ab ab
[iconv] lowest valid 2-byte - U+00A0 pass a[C2][A0]b a[C2][A0]b a[C2][A0]b
[iconv] highest valid 2-byte - U+07FA pass a[DF][BA]b a[DF][BA]b a[DF][BA]b
[iconv] highest possible 2-byte (no strip) - U+07FF pass a[DF][BF]b a[DF][BF]b a[DF][BF]b
[iconv] highest possible 2-byte (strip) - U+07FF fail a[DF][BF]b ab a[DF][BF]b
[iconv] lowest overlong 3-byte - U+0000 pass a[E0][80][80]b ab ab
[iconv] highest overlong 3-byte - U+07FF pass a[E0][9F][BF]b ab ab
[iconv] lowest valid 3-byte - U+0800 pass a[E0][A0][80]b a[E0][A0][80]b a[E0][A0][80]b
[iconv] highest valid 3-byte - U+FFFB pass a[EF][BF][BB]b a[EF][BF][BB]b a[EF][BF][BB]b
[iconv] lowest overlong 4-byte - U+0000 pass a[F0][80][80][80]b ab ab
[iconv] highest overlong 4-byte - U+FFFB pass a[F0][8F][BF][BB]b ab ab
[iconv] lowest valid 4-byte - U+10000 pass a[F0][90][80][80]b a[F0][90][80][80]b a[F0][90][80][80]b
[iconv] highest valid 4-byte - U+10FFFD pass a[F4][8F][BF][BD]b a[F4][8F][BF][BD]b a[F4][8F][BF][BD]b
[iconv] lowest overlong 5-byte - U+0000 pass a[F8][80][80][80][80]b ab ab
[iconv] highest overlong 5-byte - U+1FFFFD pass a[F8][87][BF][BF][BD]b ab ab
[iconv] lowest overlong 6-byte - U+0000 pass a[FC][80][80][80][80][80]b ab ab
[iconv] highest overlong 6-byte - U+3FFFFFF pass a[FC][83][BF][BF][BF][BF]b ab ab
[iconv] Latin-1 fallback 0x76 pass v v v
[iconv] Latin-1 fallback 0xEB pass [EB] [C3][AB] [C3][AB]
[iconv] Latin-1 fallback word pass H[EB]llo H[C3][AB]llo H[C3][AB]llo
[iconv] Unknown sanitize mode exception pass sanitize("hello\xC0world", "str"); thrown thrown
[iconv] SJIS 0x76 -> U+0076 pass v v v
[iconv] SJIS 0xA6 -> U+FF66 pass [A6] [EF][BD][A6] [EF][BD][A6]
[iconv] SJIS 0x8140 -> U+3000 pass [81]@ [E3][80][80] [E3][80][80]
[iconv] SJIS 0x82DC -> U+307E pass [82][DC] [E3][81][BE] [E3][81][BE]
[iconv] SJIS 0x8CCC -> U+6545 pass [8C][CC] [E6][95][85] [E6][95][85]
[iconv] EUC-JP US-ASCII 0x76 -> U+0076 pass v v v
[iconv] EUC-JP JIS-X-201 0xB6 -> U+FF76 pass [8E][B6] [EF][BD][B6] [EF][BD][B6]
[iconv] EUC-JP JIS-X-201 0xDE -> U+FF9E pass [8E][DE] [EF][BE][9E] [EF][BE][9E]
[iconv] EUC-JP JIS-X-0208 0x2133 -> U+30FD pass [A1][B3] [E3][83][BD] [E3][83][BD]
[iconv] EUC-JP JIS-X-0208 0x3053 -> U+5C09 pass [B0][D3] [E5][B0][89] [E5][B0][89]
[iconv] EUC-JP JIS-X-0212 0x3031 - U+4E44 pass [8F][B0][B1] [E4][B9][84] [E4][B9][84]
[iconv] EUC-JP JIS-X-0212 0x4258 - U+66A4 pass [8F][C2][D8] [E6][9A][A4] [E6][9A][A4]
[iconv] ISO-8859-1 0x76 -> U+0076 pass v v v
[iconv] ISO-8859-1 0xE6 -> U+00E6 pass [E6] [C3][A6] [C3][A6]
[iconv] ISO-8859-2 0x76 -> U+0076 pass v v v
[iconv] ISO-8859-2 0xE6 -> U+0107 pass [E6] [C4][87] [C4][87]
[iconv] ISO-8859-15 0x76 -> U+0076 pass v v v
[iconv] ISO-8859-15 0xBE -> U+0178 pass [BE] [C5][B8] [C5][B8]
Untitled sanitize test 1 (str) pass
Untitled sanitize test 2 (str) pass hello hello hello
Untitled sanitize test 3 (str) pass 1 1 1
Untitled sanitize test 4 (str) pass [E2][80][A8]
Untitled sanitize test 5 (str_multi) pass [E2][80][A8] [\n] [\n]
Untitled sanitize test 6 (str) pass [E2][80][A9]
Untitled sanitize test 7 (str_multi) pass [E2][80][A9] [\n][\n] [\n][\n]
Untitled sanitize test 8 (str) pass [0B]
Untitled sanitize test 9 (str_multi) pass [0B] [\n][\n] [\n][\n]
Untitled sanitize test 10 (str) pass [0C]
Untitled sanitize test 11 (str_multi) pass [0C] [\n][\n] [\n][\n]
Untitled sanitize test 12 (str) pass [0D][\n]
Untitled sanitize test 13 (str_multi) pass [0D][\n] [\n] [\n]
LF [single line mode] pass [\n]
LF [multi line mode] pass [\n] [\n] [\n]
Untitled sanitize test 16 (str) pass [0D]
Untitled sanitize test 17 (str_multi) pass [0D] [\n] [\n]
mix of CRLF and CR [single line mode] pass [0D][0D][\n]
mix of CRLF and CR [multi line mode] pass [0D][0D][\n] [\n][\n] [\n][\n]
TAB [single line mode] pass [09]
TAB [multi line mode] pass [09]
NEL [single line mode] pass [C2][85]
NEL [multi line mode] pass [C2][85] [\n] [\n]
Strip Cc U+0000 pass foo[00]bar foobar foobar
Strip Cc U+0001 pass foo[01]bar foobar foobar
Strip Cc U+0002 pass foo[02]bar foobar foobar
Strip Cc U+0003 pass foo[03]bar foobar foobar
Strip Cc U+0004 pass foo[04]bar foobar foobar
Strip Cc U+0005 pass foo[05]bar foobar foobar
Strip Cc U+0006 pass foo[06]bar foobar foobar
Strip Cc U+0007 pass foo[07]bar foobar foobar
Strip Cc U+0008 pass foo[08]bar foobar foobar
Strip Cc U+000E pass foo[0E]bar foobar foobar
Strip Cc U+000F pass foo[0F]bar foobar foobar
Strip Cc U+0010 pass foo[10]bar foobar foobar
Strip Cc U+0011 pass foo[11]bar foobar foobar
Strip Cc U+0012 pass foo[12]bar foobar foobar
Strip Cc U+0013 pass foo[13]bar foobar foobar
Strip Cc U+0014 pass foo[14]bar foobar foobar
Strip Cc U+0015 pass foo[15]bar foobar foobar
Strip Cc U+0016 pass foo[16]bar foobar foobar
Strip Cc U+0017 pass foo[17]bar foobar foobar
Strip Cc U+0018 pass foo[18]bar foobar foobar
Strip Cc U+0019 pass foo[19]bar foobar foobar
Strip Cc U+001A pass foo[1A]bar foobar foobar
Strip Cc U+001B pass foo[1B]bar foobar foobar
Strip Cc U+001C pass foo[1C]bar foobar foobar
Strip Cc U+001D pass foo[1D]bar foobar foobar
Strip Cc U+001E pass foo[1E]bar foobar foobar
Strip Cc U+001F pass foo[1F]bar foobar foobar
Strip Cc U+007F pass foobar foobar foobar
Strip Cc U+0080 fail foo[80]bar foobar fooBAD+80bar
Strip Cc U+0081 pass foo[C2][81]bar foobar foobar
Strip Cc U+0082 pass foo[C2][82]bar foobar foobar
Strip Cc U+0083 pass foo[C2][83]bar foobar foobar
Strip Cc U+0084 pass foo[C2][84]bar foobar foobar
Strip Cc U+0086 pass foo[C2][86]bar foobar foobar
Strip Cc U+0087 pass foo[C2][87]bar foobar foobar
Strip Cc U+0088 pass foo[C2][88]bar foobar foobar
Strip Cc U+0089 pass foo[C2][89]bar foobar foobar
Strip Cc U+008A pass foo[C2][8A]bar foobar foobar
Strip Cc U+008B pass foo[C2][8B]bar foobar foobar
Strip Cc U+008C pass foo[C2][8C]bar foobar foobar
Strip Cc U+008D pass foo[C2][8D]bar foobar foobar
Strip Cc U+008E pass foo[C2][8E]bar foobar foobar
Strip Cc U+008F pass foo[C2][8F]bar foobar foobar
Strip Cc U+0090 pass foo[C2][90]bar foobar foobar
Strip Cc U+0091 pass foo[C2][91]bar foobar foobar
Strip Cc U+0092 pass foo[C2][92]bar foobar foobar
Strip Cc U+0093 pass foo[C2][93]bar foobar foobar
Strip Cc U+0094 pass foo[C2][94]bar foobar foobar
Strip Cc U+0095 pass foo[C2][95]bar foobar foobar
Strip Cc U+0096 pass foo[C2][96]bar foobar foobar
Strip Cc U+0097 pass foo[C2][97]bar foobar foobar
Strip Cc U+0098 pass foo[C2][98]bar foobar foobar
Strip Cc U+0099 pass foo[C2][99]bar foobar foobar
Strip Cc U+009A pass foo[C2][9A]bar foobar foobar
Strip Cc U+009B pass foo[C2][9B]bar foobar foobar
Strip Cc U+009C pass foo[C2][9C]bar foobar foobar
Strip Cc U+009D pass foo[C2][9D]bar foobar foobar
Strip Cc U+009E pass foo[C2][9E]bar foobar foobar
Strip Cc U+009F pass foo[C2][9F]bar foobar foobar
Strip Cf U+FEFF pass foo[EF][BB][BF]bar foobar foobar
Strip Cf U+206A pass foo[E2][81][AA]bar foobar foobar
Strip Cf U+206B pass foo[E2][81][AB]bar foobar foobar
Strip Cf U+206C pass foo[E2][81][AC]bar foobar foobar
Strip Cf U+206D pass foo[E2][81][AD]bar foobar foobar
Strip Cf U+206E pass foo[E2][81][AE]bar foobar foobar
Strip Cf U+206F pass foo[E2][81][AF]bar foobar foobar
Strip Cf U+FFF9 pass foo[EF][BF][B9]bar foobar foobar
Strip Cf U+FFFA pass foo[EF][BF][BA]bar foobar foobar
Strip Cf U+E0000 pass foo[F3][A0][80][80]bar foobar foobar
Strip Cf U+E003F pass foo[F3][A0][80][BF]bar foobar foobar
Strip Cf U+E007F pass foo[F3][A0][81][BF]bar foobar foobar
Strip Cs U+D800 fail foo[ED][A0][80]bar foobar fooBAD+DBAD+A0BAD+80bar
Strip Cs U+DA00 fail foo[ED][A8][80]bar foobar fooBAD+DBAD+A8BAD+80bar
Strip Cs U+DBFF fail foo[ED][AF][BF]bar foobar fooBAD+DBAD+AFBAD+BFbar
Strip Cs U+DC00 fail foo[ED][B0][80]bar foobar fooBAD+DBAD+B0BAD+80bar
Strip Cs U+DE00 fail foo[ED][B8][80]bar foobar fooBAD+DBAD+B8BAD+80bar
Strip Cs U+DFFF fail foo[ED][BF][BF]bar foobar fooBAD+DBAD+BFBAD+BFbar
Strip Cn non-character U+FFFE pass foo[EF][BF][BE]bar foobar foobar
Strip Cn non-character U+FFFF pass foo[EF][BF][BF]bar foobar foobar
Strip Cn non-character U+1FFFE pass foo[F0][9F][BF][BE]bar foobar foobar
Strip Cn non-character U+1FFFF pass foo[F0][9F][BF][BF]bar foobar foobar
Strip Cn non-character U+2FFFE pass foo[F0][AF][BF][BE]bar foobar foobar
Strip Cn non-character U+2FFFF pass foo[F0][AF][BF][BF]bar foobar foobar
Strip Cn non-character U+10FFFE pass foo[F4][8F][BF][BE]bar foobar foobar
Strip Cn non-character U+10FFFF pass foo[F4][8F][BF][BF]bar foobar foobar
Strip Cn non-character U+FDD0 pass foo[EF][B7][90]bar foobar foobar
Strip Cn non-character U+FDE0 pass foo[EF][B7][A0]bar foobar foobar
Strip Cn non-character U+FDEF pass foo[EF][B7][AF]bar foobar foobar
Replace So U+FFFC with ? pass foo[EF][BF][BC]bar foo?bar foo?bar
Replace So U+FFFD with ? pass foo[EF][BF][BD]bar foo?bar foo?bar

Passed 331 of 383 tests (86.42%)

Hide test details