|
From: <sv...@va...> - 2012-08-05 03:02:54
|
florian 2012-08-05 04:02:43 +0100 (Sun, 05 Aug 2012)
New Revision: 12837
Log:
Add testcases for the cu14 insn. Update opcode table.
Part of fixing #289839.
Added files:
trunk/none/tests/s390x/cu14.c
trunk/none/tests/s390x/cu14.stderr.exp
trunk/none/tests/s390x/cu14.stdout.exp
trunk/none/tests/s390x/cu14.vgtest
trunk/none/tests/s390x/cu14_1.c
trunk/none/tests/s390x/cu14_1.stderr.exp
trunk/none/tests/s390x/cu14_1.stdout.exp
trunk/none/tests/s390x/cu14_1.vgtest
Modified directories:
trunk/none/tests/s390x/
Modified files:
trunk/docs/internals/s390-opcodes.csv
trunk/none/tests/s390x/Makefile.am
Modified: trunk/none/tests/s390x/
Property changed: trunk/none/tests/s390x/cu14_1.c (+0 -0)
___________________________________________________________________
Name: svn:special
+ *
Added: trunk/none/tests/s390x/cu14_1.c (+1 -0)
===================================================================
--- trunk/none/tests/s390x/cu14_1.c 2012-08-05 03:22:52 +01:00 (rev 12836)
+++ trunk/none/tests/s390x/cu14_1.c 2012-08-05 04:02:43 +01:00 (rev 12837)
@@ -0,0 +1 @@
+link cu14.c
\ No newline at end of file
Added: trunk/none/tests/s390x/cu14.vgtest (+1 -0)
===================================================================
--- trunk/none/tests/s390x/cu14.vgtest 2012-08-05 03:22:52 +01:00 (rev 12836)
+++ trunk/none/tests/s390x/cu14.vgtest 2012-08-05 04:02:43 +01:00 (rev 12837)
@@ -0,0 +1 @@
+prog: cu14
Added: trunk/none/tests/s390x/cu14.stderr.exp (+2 -0)
===================================================================
--- trunk/none/tests/s390x/cu14.stderr.exp 2012-08-05 03:22:52 +01:00 (rev 12836)
+++ trunk/none/tests/s390x/cu14.stderr.exp 2012-08-05 04:02:43 +01:00 (rev 12837)
@@ -0,0 +1,2 @@
+
+
Property changed: trunk/none/tests/s390x (+0 -0)
___________________________________________________________________
Name: svn:ignore
- .deps
add
add_EI
add_GE
allexec
and
and_EI
clc
clcle
cvb
cvd
div
ex_clone
ex_sig
flogr
icm
insert
insert_EI
lam_stam
lpr
Makefile
Makefile.in
mul
mul_GE
mvst
or
or_EI
srst
sub
sub_EI
tcxb
xc
xor
xor_EI
stck
stcke
stckf
op_exception
fgx
condloadstore
fold_And16
stfle
op00
cksm
clcl
mvcl
troo
trot
trto
trtt
tr
tre
clrj
clgrj
crj
cgrj
clij
clgij
cij
cgij
cs
csg
cds
cdsg
cu21
cu21_1
cu24
cu24_1
cu42
cu12
cu12_1
+ .deps
add
add_EI
add_GE
allexec
and
and_EI
clc
clcle
cvb
cvd
div
ex_clone
ex_sig
flogr
icm
insert
insert_EI
lam_stam
lpr
Makefile
Makefile.in
mul
mul_GE
mvst
or
or_EI
srst
sub
sub_EI
tcxb
xc
xor
xor_EI
stck
stcke
stckf
op_exception
fgx
condloadstore
fold_And16
stfle
op00
cksm
clcl
mvcl
troo
trot
trto
trtt
tr
tre
clrj
clgrj
crj
cgrj
clij
clgij
cij
cgij
cs
csg
cds
cdsg
cu21
cu21_1
cu24
cu24_1
cu42
cu12
cu12_1
cu14
cu14_1
Added: trunk/none/tests/s390x/cu14_1.stderr.exp (+2 -0)
===================================================================
--- trunk/none/tests/s390x/cu14_1.stderr.exp 2012-08-05 03:22:52 +01:00 (rev 12836)
+++ trunk/none/tests/s390x/cu14_1.stderr.exp 2012-08-05 04:02:43 +01:00 (rev 12837)
@@ -0,0 +1,2 @@
+
+
Added: trunk/none/tests/s390x/cu14_1.vgtest (+1 -0)
===================================================================
--- trunk/none/tests/s390x/cu14_1.vgtest 2012-08-05 03:22:52 +01:00 (rev 12836)
+++ trunk/none/tests/s390x/cu14_1.vgtest 2012-08-05 04:02:43 +01:00 (rev 12837)
@@ -0,0 +1 @@
+prog: cu14_1
Added: trunk/none/tests/s390x/cu14.stdout.exp (+1325 -0)
===================================================================
--- trunk/none/tests/s390x/cu14.stdout.exp 2012-08-05 03:22:52 +01:00 (rev 12836)
+++ trunk/none/tests/s390x/cu14.stdout.exp 2012-08-05 04:02:43 +01:00 (rev 12837)
@@ -0,0 +1,1325 @@
+===== Conversion of a one-byte character =====
+
+----- Valid characters -----
+UTF8: 00 7f 01 10 7e 5d
+UTF32: 00000000 0000007f 00000001 00000010 0000007e 0000005d
+ cc = 0
+ dst address difference: 24 dst len: 1976
+ src address difference: 6 src len: 0
+
+----- Invalid characters -----
+UTF8: 80
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 1
+UTF8: bf
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 1
+UTF8: f8
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 1
+UTF8: ff
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 1
+UTF8: 81
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 1
+UTF8: be
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 1
+UTF8: 95
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 1
+UTF8: ab
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 1
+
+----- Invalid characters if m3 == 1 -----
+UTF8: c0
+UTF32: <none>
+ cc = 0
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 1
+UTF8: c1
+UTF32: <none>
+ cc = 0
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 1
+UTF8: f5
+UTF32: <none>
+ cc = 0
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 1
+UTF8: f6
+UTF32: <none>
+ cc = 0
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 1
+UTF8: f7
+UTF32: <none>
+ cc = 0
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 1
+
+----- 1st char valid, 2nd char invalid -----
+UTF8: 10 aa
+UTF32: 00000010
+ cc = 2
+ dst address difference: 4 dst len: 1996
+ src address difference: 1 src len: 1
+
+===== Conversion of a two-byte character =====
+
+----- Valid characters -----
+UTF8: c2 80 c2 bf df 80 df bf c3 be da bc
+UTF32: 00000080 000000bf 000007c0 000007ff 000000fe 000006bc
+ cc = 0
+ dst address difference: 24 dst len: 1976
+ src address difference: 12 src len: 0
+
+----- Valid characters if m3 == 0 -----
+UTF8: c0 80 c0 bf c1 80 c0 bf
+UTF32: 00000000 0000003f 00000040 0000003f
+ cc = 0
+ dst address difference: 16 dst len: 1984
+ src address difference: 8 src len: 0
+
+----- Invalid characters if m3 == 1 -----
+UTF8: c2 00
+UTF32: 00000080
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 2 src len: 0
+UTF8: c2 7f
+UTF32: 000000bf
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 2 src len: 0
+UTF8: c2 c0
+UTF32: 00000080
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 2 src len: 0
+UTF8: c2 ff
+UTF32: 000000bf
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 2 src len: 0
+
+----- 1st char valid, 2nd char invalid -----
+UTF8: c3 81 c4 00
+UTF32: 000000c1 00000100
+ cc = 0
+ dst address difference: 8 dst len: 1992
+ src address difference: 4 src len: 0
+
+===== Conversion of a three-byte character =====
+
+----- Valid characters -----
+UTF8: e0 a0 80 e0 bf 80 e0 a0 bf e0 bf bf e0 aa bb
+UTF32: 00000800 00000fc0 0000083f 00000fff 00000abb
+ cc = 0
+ dst address difference: 20 dst len: 1980
+ src address difference: 15 src len: 0
+UTF8: ed 80 80 ed 9f 80 ed 80 bf ed 9f bf ed 8a bb
+UTF32: 0000d000 0000d7c0 0000d03f 0000d7ff 0000d2bb
+ cc = 0
+ dst address difference: 20 dst len: 1980
+ src address difference: 15 src len: 0
+UTF8: e1 80 80
+UTF32: 00001000
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e1 bf 80
+UTF32: 00001fc0
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e1 80 bf
+UTF32: 0000103f
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e1 bf bf
+UTF32: 00001fff
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e2 80 80
+UTF32: 00002000
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e2 bf 80
+UTF32: 00002fc0
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e2 80 bf
+UTF32: 0000203f
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e2 bf bf
+UTF32: 00002fff
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e3 80 80
+UTF32: 00003000
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e3 bf 80
+UTF32: 00003fc0
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e3 80 bf
+UTF32: 0000303f
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e3 bf bf
+UTF32: 00003fff
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e4 80 80
+UTF32: 00004000
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e4 bf 80
+UTF32: 00004fc0
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e4 80 bf
+UTF32: 0000403f
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e4 bf bf
+UTF32: 00004fff
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e5 80 80
+UTF32: 00005000
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e5 bf 80
+UTF32: 00005fc0
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e5 80 bf
+UTF32: 0000503f
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e5 bf bf
+UTF32: 00005fff
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e6 80 80
+UTF32: 00006000
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e6 bf 80
+UTF32: 00006fc0
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e6 80 bf
+UTF32: 0000603f
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e6 bf bf
+UTF32: 00006fff
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e7 80 80
+UTF32: 00007000
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e7 bf 80
+UTF32: 00007fc0
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e7 80 bf
+UTF32: 0000703f
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e7 bf bf
+UTF32: 00007fff
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e8 80 80
+UTF32: 00008000
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e8 bf 80
+UTF32: 00008fc0
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e8 80 bf
+UTF32: 0000803f
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e8 bf bf
+UTF32: 00008fff
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e9 80 80
+UTF32: 00009000
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e9 bf 80
+UTF32: 00009fc0
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e9 80 bf
+UTF32: 0000903f
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e9 bf bf
+UTF32: 00009fff
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: ea 80 80
+UTF32: 0000a000
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: ea bf 80
+UTF32: 0000afc0
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: ea 80 bf
+UTF32: 0000a03f
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: ea bf bf
+UTF32: 0000afff
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: eb 80 80
+UTF32: 0000b000
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: eb bf 80
+UTF32: 0000bfc0
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: eb 80 bf
+UTF32: 0000b03f
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: eb bf bf
+UTF32: 0000bfff
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: ec 80 80
+UTF32: 0000c000
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: ec bf 80
+UTF32: 0000cfc0
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: ec 80 bf
+UTF32: 0000c03f
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: ec bf bf
+UTF32: 0000cfff
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: ee 80 80
+UTF32: 0000e000
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: ee bf 80
+UTF32: 0000efc0
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: ee 80 bf
+UTF32: 0000e03f
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: ee bf bf
+UTF32: 0000efff
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: ef 80 80
+UTF32: 0000f000
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: ef bf 80
+UTF32: 0000ffc0
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: ef 80 bf
+UTF32: 0000f03f
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: ef bf bf
+UTF32: 0000ffff
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+
+----- Invalid characters (2nd byte is invalid) -----
+UTF8: e0 9f 80 e0 bf 80 e0 a0 bf e0 bf bf e0 aa bb
+UTF32: 000007c0 00000fc0 0000083f 00000fff 00000abb
+ cc = 0
+ dst address difference: 20 dst len: 1980
+ src address difference: 15 src len: 0
+UTF8: e0 c0 80 e0 bf 80 e0 a0 bf e0 bf bf e0 aa bb
+UTF32: 00000000 00000fc0 0000083f 00000fff 00000abb
+ cc = 0
+ dst address difference: 20 dst len: 1980
+ src address difference: 15 src len: 0
+UTF8: ed 7f 80 ed 9f 80 ed 80 bf ed 9f bf ed 8a bb
+UTF32: 0000dfc0 0000d7c0 0000d03f 0000d7ff 0000d2bb
+ cc = 0
+ dst address difference: 20 dst len: 1980
+ src address difference: 15 src len: 0
+UTF8: ed a0 80 ed 9f 80 ed 80 bf ed 9f bf ed 8a bb
+UTF32: 0000d800 0000d7c0 0000d03f 0000d7ff 0000d2bb
+ cc = 0
+ dst address difference: 20 dst len: 1980
+ src address difference: 15 src len: 0
+UTF8: e1 7f 80
+UTF32: 00001fc0
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e1 c0 80
+UTF32: 00001000
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e2 7f 80
+UTF32: 00002fc0
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e2 c0 80
+UTF32: 00002000
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e3 7f 80
+UTF32: 00003fc0
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e3 c0 80
+UTF32: 00003000
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e4 7f 80
+UTF32: 00004fc0
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e4 c0 80
+UTF32: 00004000
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e5 7f 80
+UTF32: 00005fc0
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e5 c0 80
+UTF32: 00005000
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e6 7f 80
+UTF32: 00006fc0
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e6 c0 80
+UTF32: 00006000
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e7 7f 80
+UTF32: 00007fc0
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e7 c0 80
+UTF32: 00007000
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e8 7f 80
+UTF32: 00008fc0
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e8 c0 80
+UTF32: 00008000
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e9 7f 80
+UTF32: 00009fc0
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e9 c0 80
+UTF32: 00009000
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: ea 7f 80
+UTF32: 0000afc0
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: ea c0 80
+UTF32: 0000a000
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: eb 7f 80
+UTF32: 0000bfc0
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: eb c0 80
+UTF32: 0000b000
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: ec 7f 80
+UTF32: 0000cfc0
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: ec c0 80
+UTF32: 0000c000
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: ee 7f 80
+UTF32: 0000efc0
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: ee c0 80
+UTF32: 0000e000
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: ef 7f 80
+UTF32: 0000ffc0
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: ef c0 80
+UTF32: 0000f000
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+
+----- Invalid characters (3rd byte is invalid) -----
+UTF8: e0 ab 7f
+UTF32: 00000aff
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e0 ab c0
+UTF32: 00000ac0
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e1 ab 7f
+UTF32: 00001aff
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e1 ab c0
+UTF32: 00001ac0
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e2 ab 7f
+UTF32: 00002aff
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e2 ab c0
+UTF32: 00002ac0
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e3 ab 7f
+UTF32: 00003aff
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e3 ab c0
+UTF32: 00003ac0
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e4 ab 7f
+UTF32: 00004aff
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e4 ab c0
+UTF32: 00004ac0
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e5 ab 7f
+UTF32: 00005aff
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e5 ab c0
+UTF32: 00005ac0
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e6 ab 7f
+UTF32: 00006aff
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e6 ab c0
+UTF32: 00006ac0
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e7 ab 7f
+UTF32: 00007aff
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e7 ab c0
+UTF32: 00007ac0
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e8 ab 7f
+UTF32: 00008aff
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e8 ab c0
+UTF32: 00008ac0
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e9 ab 7f
+UTF32: 00009aff
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e9 ab c0
+UTF32: 00009ac0
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: ea ab 7f
+UTF32: 0000aaff
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: ea ab c0
+UTF32: 0000aac0
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: eb ab 7f
+UTF32: 0000baff
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: eb ab c0
+UTF32: 0000bac0
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: ec ab 7f
+UTF32: 0000caff
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: ec ab c0
+UTF32: 0000cac0
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: ed ab 7f
+UTF32: 0000daff
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: ed ab c0
+UTF32: 0000dac0
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: ee ab 7f
+UTF32: 0000eaff
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: ee ab c0
+UTF32: 0000eac0
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: ef ab 7f
+UTF32: 0000faff
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: ef ab c0
+UTF32: 0000fac0
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+
+----- Invalid 2nd char AND output exhausted -----
+UTF8: e0 00 80
+UTF32: <none>
+ cc = 1
+ dst address difference: 0 dst len: 1
+ src address difference: 0 src len: 3
+
+----- Invalid 3rd char AND output exhausted -----
+UTF8: e4 84 00
+UTF32: <none>
+ cc = 1
+ dst address difference: 0 dst len: 1
+ src address difference: 0 src len: 3
+
+----- 1st char valid, 2nd char invalid -----
+UTF8: e1 90 90 e1 00 90
+UTF32: 00001410 00001010
+ cc = 0
+ dst address difference: 8 dst len: 1992
+ src address difference: 6 src len: 0
+
+===== Conversion of a four-byte character =====
+
+----- Valid characters -----
+UTF8: f0 90 80 80
+UTF32: 00010000
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 4 src len: 0
+UTF8: f0 90 80 bf
+UTF32: 0001003f
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 4 src len: 0
+UTF8: f0 90 bf 80
+UTF32: 00010fc0
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 4 src len: 0
+UTF8: f0 90 bf bf
+UTF32: 00010fff
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 4 src len: 0
+UTF8: f0 bf 80 80
+UTF32: 0003f000
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 4 src len: 0
+UTF8: f0 bf 80 bf
+UTF32: 0003f03f
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 4 src len: 0
+UTF8: f0 bf bf 80
+UTF32: 0003ffc0
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 4 src len: 0
+UTF8: f0 bf bf bf
+UTF32: 0003ffff
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 4 src len: 0
+UTF8: f1 80 80 80
+UTF32: 00040000
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 4 src len: 0
+UTF8: f1 80 80 bf
+UTF32: 0004003f
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 4 src len: 0
+UTF8: f1 80 bf 80
+UTF32: 00040fc0
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 4 src len: 0
+UTF8: f1 80 bf bf
+UTF32: 00040fff
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 4 src len: 0
+UTF8: f1 bf 80 80
+UTF32: 0007f000
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 4 src len: 0
+UTF8: f1 bf 80 bf
+UTF32: 0007f03f
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 4 src len: 0
+UTF8: f1 bf bf 80
+UTF32: 0007ffc0
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 4 src len: 0
+UTF8: f1 bf bf bf
+UTF32: 0007ffff
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 4 src len: 0
+UTF8: f2 80 80 80
+UTF32: 00080000
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 4 src len: 0
+UTF8: f2 80 80 bf
+UTF32: 0008003f
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 4 src len: 0
+UTF8: f2 80 bf 80
+UTF32: 00080fc0
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 4 src len: 0
+UTF8: f2 80 bf bf
+UTF32: 00080fff
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 4 src len: 0
+UTF8: f2 bf 80 80
+UTF32: 000bf000
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 4 src len: 0
+UTF8: f2 bf 80 bf
+UTF32: 000bf03f
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 4 src len: 0
+UTF8: f2 bf bf 80
+UTF32: 000bffc0
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 4 src len: 0
+UTF8: f2 bf bf bf
+UTF32: 000bffff
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 4 src len: 0
+UTF8: f3 80 80 80
+UTF32: 000c0000
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 4 src len: 0
+UTF8: f3 80 80 bf
+UTF32: 000c003f
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 4 src len: 0
+UTF8: f3 80 bf 80
+UTF32: 000c0fc0
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 4 src len: 0
+UTF8: f3 80 bf bf
+UTF32: 000c0fff
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 4 src len: 0
+UTF8: f3 bf 80 80
+UTF32: 000ff000
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 4 src len: 0
+UTF8: f3 bf 80 bf
+UTF32: 000ff03f
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 4 src len: 0
+UTF8: f3 bf bf 80
+UTF32: 000fffc0
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 4 src len: 0
+UTF8: f3 bf bf bf
+UTF32: 000fffff
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 4 src len: 0
+UTF8: f4 80 80 80
+UTF32: 00100000
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 4 src len: 0
+UTF8: f4 80 80 bf
+UTF32: 0010003f
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 4 src len: 0
+UTF8: f4 80 bf 80
+UTF32: 00100fc0
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 4 src len: 0
+UTF8: f4 80 bf bf
+UTF32: 00100fff
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 4 src len: 0
+UTF8: f4 8f 80 80
+UTF32: 0010f000
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 4 src len: 0
+UTF8: f4 8f 80 bf
+UTF32: 0010f03f
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 4 src len: 0
+UTF8: f4 8f bf 80
+UTF32: 0010ffc0
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 4 src len: 0
+UTF8: f4 8f bf bf
+UTF32: 0010ffff
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 4 src len: 0
+
+----- Valid characters if m3 == 0 -----
+UTF8: f5 00 00 00 f6 11 22 33 f7 44 55 66
+UTF32: 00140000 001918b3 001c4566
+ cc = 0
+ dst address difference: 12 dst len: 1988
+ src address difference: 12 src len: 0
+
+----- Invalid characters (2nd byte is invalid) -----
+UTF8: f0 8f 80 80
+UTF32: 0000f000
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 4 src len: 0
+UTF8: f0 c0 80 80
+UTF32: 00000000
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 4 src len: 0
+UTF8: f4 7f 80 80
+UTF32: 0013f000
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 4 src len: 0
+UTF8: f4 90 80 80
+UTF32: 00110000
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 4 src len: 0
+UTF8: f1 7f 80 80
+UTF32: 0007f000
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 4 src len: 0
+UTF8: f1 c0 80 80
+UTF32: 00040000
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 4 src len: 0
+UTF8: f2 7f 80 80
+UTF32: 000bf000
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 4 src len: 0
+UTF8: f2 c0 80 80
+UTF32: 00080000
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 4 src len: 0
+UTF8: f3 7f 80 80
+UTF32: 000ff000
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 4 src len: 0
+UTF8: f3 c0 80 80
+UTF32: 000c0000
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 4 src len: 0
+
+----- Invalid characters (3rd byte is invalid) -----
+UTF8: f0 94 7f 80
+UTF32: 00014fc0
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 4 src len: 0
+UTF8: f0 94 c0 80
+UTF32: 00014000
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 4 src len: 0
+UTF8: f1 84 7f 80
+UTF32: 00044fc0
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 4 src len: 0
+UTF8: f1 84 c0 80
+UTF32: 00044000
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 4 src len: 0
+UTF8: f2 84 7f 80
+UTF32: 00084fc0
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 4 src len: 0
+UTF8: f2 84 c0 80
+UTF32: 00084000
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 4 src len: 0
+UTF8: f3 84 7f 80
+UTF32: 000c4fc0
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 4 src len: 0
+UTF8: f3 84 c0 80
+UTF32: 000c4000
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 4 src len: 0
+UTF8: f4 84 7f 80
+UTF32: 00104fc0
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 4 src len: 0
+UTF8: f4 84 c0 80
+UTF32: 00104000
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 4 src len: 0
+
+----- Invalid characters (4th byte is invalid) -----
+UTF8: f0 94 80 7f
+UTF32: 0001403f
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 4 src len: 0
+UTF8: f0 94 80 c0
+UTF32: 00014000
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 4 src len: 0
+UTF8: f1 84 80 7f
+UTF32: 0004403f
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 4 src len: 0
+UTF8: f1 84 80 c0
+UTF32: 00044000
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 4 src len: 0
+UTF8: f2 84 80 7f
+UTF32: 0008403f
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 4 src len: 0
+UTF8: f2 84 80 c0
+UTF32: 00084000
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 4 src len: 0
+UTF8: f3 84 80 7f
+UTF32: 000c403f
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 4 src len: 0
+UTF8: f3 84 80 c0
+UTF32: 000c4000
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 4 src len: 0
+UTF8: f4 84 80 7f
+UTF32: 0010403f
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 4 src len: 0
+UTF8: f4 84 80 c0
+UTF32: 00104000
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 4 src len: 0
+
+----- Invalid 2nd char AND output exhausted -----
+UTF8: f0 00 80 80
+UTF32: <none>
+ cc = 1
+ dst address difference: 0 dst len: 1
+ src address difference: 0 src len: 4
+
+----- Invalid 3rd char AND output exhausted -----
+UTF8: f0 aa 00 80
+UTF32: <none>
+ cc = 1
+ dst address difference: 0 dst len: 3
+ src address difference: 0 src len: 4
+
+----- Invalid 4th char AND output exhausted -----
+UTF8: f0 aa aa 00
+UTF32: <none>
+ cc = 1
+ dst address difference: 0 dst len: 3
+ src address difference: 0 src len: 4
+
+----- 1st char valid, 2nd char invalid -----
+UTF8: f0 aa aa aa f0 00 00 00
+UTF32: 0002aaaa 00000000
+ cc = 0
+ dst address difference: 8 dst len: 1992
+ src address difference: 8 src len: 0
+
+------------- test1 ----------------
+UTF8: <none>
+UTF32: <none>
+ cc = 0
+ dst len: 0
+ src len: 0
+
+------------- test2.1 ----------------
+UTF8: <none>
+UTF32: <none>
+ cc = 0
+ dst address difference: 0 dst len: 2000
+ src len: 0
+UTF8: <none>
+UTF32: <none>
+ cc = 0
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 0
+UTF8: <none>
+UTF32: <none>
+ cc = 0
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 0
+UTF8: c2
+UTF32: <none>
+ cc = 0
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 1
+UTF8: <none>
+UTF32: <none>
+ cc = 0
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 0
+UTF8: e1
+UTF32: <none>
+ cc = 0
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 1
+UTF8: e1 80
+UTF32: <none>
+ cc = 0
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 2
+UTF8: <none>
+UTF32: <none>
+ cc = 0
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 0
+UTF8: f4
+UTF32: <none>
+ cc = 0
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 1
+UTF8: f4 80
+UTF32: <none>
+ cc = 0
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 2
+UTF8: f4 80 80
+UTF32: <none>
+ cc = 0
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 3
+
+------------- test2.2 ----------------
+UTF8: 00 01
+UTF32: 00000000 00000001
+ cc = 0
+ dst address difference: 8 dst len: 1992
+ src address difference: 2 src len: 0
+UTF8: c2 80 c2 81 c2
+UTF32: 00000080 00000081
+ cc = 0
+ dst address difference: 8 dst len: 1992
+ src address difference: 4 src len: 1
+UTF8: e1 80 80 e1 80 81
+UTF32: 00001000 00001001
+ cc = 0
+ dst address difference: 8 dst len: 1992
+ src address difference: 6 src len: 0
+UTF8: f4 80 80 80 f4 80 80 81 f4
+UTF32: 00100000 00100001
+ cc = 0
+ dst address difference: 8 dst len: 1992
+ src address difference: 8 src len: 1
+
+------------- test3.1 ----------------
+UTF8: 00 01 02 03
+UTF32: <none>
+ cc = 1
+ dst len: 0
+ src address difference: 0 src len: 4
+UTF8: c2 80 c2 81 c2 82 c2 83
+UTF32: <none>
+ cc = 1
+ dst len: 0
+ src address difference: 0 src len: 8
+UTF8: c2 80 c2 81 c2 82 c2 83
+UTF32: <none>
+ cc = 1
+ dst len: 1
+ src address difference: 0 src len: 8
+UTF8: e1 80 80 e1 80 81 e1 80 82 e1 80 83
+UTF32: <none>
+ cc = 1
+ dst len: 0
+ src address difference: 0 src len: 12
+UTF8: e1 80 80 e1 80 81 e1 80 82 e1 80 83
+UTF32: <none>
+ cc = 1
+ dst len: 1
+ src address difference: 0 src len: 12
+UTF8: f4 80 80 80 f4 80 80 81 f4 80 80 82 f4 80 80 83
+UTF32: <none>
+ cc = 1
+ dst len: 0
+ src address difference: 0 src len: 16
+UTF8: f4 80 80 80 f4 80 80 81 f4 80 80 82 f4 80 80 83
+UTF32: <none>
+ cc = 1
+ dst len: 1
+ src address difference: 0 src len: 16
+UTF8: f4 80 80 80 f4 80 80 81 f4 80 80 82 f4 80 80 83
+UTF32: <none>
+ cc = 1
+ dst len: 2
+ src address difference: 0 src len: 16
+UTF8: f4 80 80 80 f4 80 80 81 f4 80 80 82 f4 80 80 83
+UTF32: <none>
+ cc = 1
+ dst len: 3
+ src address difference: 0 src len: 16
+
+------------- test3.2 ----------------
+UTF8: 00 01 02 03
+UTF32: 00000000
+ cc = 1
+ dst address difference: 4 dst len: 0
+ src address difference: 1 src len: 3
+UTF8: 00 01 02 03 c2 80 c2 81
+UTF32: 00000000
+ cc = 1
+ dst address difference: 4 dst len: 1
+ src address difference: 1 src len: 7
+UTF8: 00 01 02 03 c2 80 c2 81 c2 82 c2 83
+UTF32: 00000000
+ cc = 1
+ dst address difference: 4 dst len: 2
+ src address difference: 1 src len: 11
+UTF8: 00 01 02 03 c2 80 c2 81 c2 82 c2 83 e1 80 80 e1
+UTF32: 00000000
+ cc = 1
+ dst address difference: 4 dst len: 3
+ src address difference: 1 src len: 15
+
+------------- test4 ----------------
+UTF8: 01 c3 80 12 e1 90 93 23 f4 80 90 8a 34 c4 8c e1 91 94 c5 8a f4 80 90 8a c5 8a e1 91 94 f4 80 90 8a e1 91 94
+UTF32: 00000001 000000c0 00000012 00001413 00000023 0010040a 00000034 0000010c 00001454 0000014a 0010040a 0000014a 00001454 0010040a 00001454
+ cc = 0
+ dst address difference: 60 dst len: 1940
+ src address difference: 36 src len: 0
Added: trunk/none/tests/s390x/cu14_1.stdout.exp (+1325 -0)
===================================================================
--- trunk/none/tests/s390x/cu14_1.stdout.exp 2012-08-05 03:22:52 +01:00 (rev 12836)
+++ trunk/none/tests/s390x/cu14_1.stdout.exp 2012-08-05 04:02:43 +01:00 (rev 12837)
@@ -0,0 +1,1325 @@
+===== Conversion of a one-byte character =====
+
+----- Valid characters -----
+UTF8: 00 7f 01 10 7e 5d
+UTF32: 00000000 0000007f 00000001 00000010 0000007e 0000005d
+ cc = 0
+ dst address difference: 24 dst len: 1976
+ src address difference: 6 src len: 0
+
+----- Invalid characters -----
+UTF8: 80
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 1
+UTF8: bf
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 1
+UTF8: f8
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 1
+UTF8: ff
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 1
+UTF8: 81
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 1
+UTF8: be
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 1
+UTF8: 95
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 1
+UTF8: ab
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 1
+
+----- Invalid characters if m3 == 1 -----
+UTF8: c0
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 1
+UTF8: c1
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 1
+UTF8: f5
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 1
+UTF8: f6
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 1
+UTF8: f7
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 1
+
+----- 1st char valid, 2nd char invalid -----
+UTF8: 10 aa
+UTF32: 00000010
+ cc = 2
+ dst address difference: 4 dst len: 1996
+ src address difference: 1 src len: 1
+
+===== Conversion of a two-byte character =====
+
+----- Valid characters -----
+UTF8: c2 80 c2 bf df 80 df bf c3 be da bc
+UTF32: 00000080 000000bf 000007c0 000007ff 000000fe 000006bc
+ cc = 0
+ dst address difference: 24 dst len: 1976
+ src address difference: 12 src len: 0
+
+----- Valid characters if m3 == 0 -----
+UTF8: c0 80 c0 bf c1 80 c0 bf
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 8
+
+----- Invalid characters if m3 == 1 -----
+UTF8: c2 00
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 2
+UTF8: c2 7f
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 2
+UTF8: c2 c0
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 2
+UTF8: c2 ff
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 2
+
+----- 1st char valid, 2nd char invalid -----
+UTF8: c3 81 c4 00
+UTF32: 000000c1
+ cc = 2
+ dst address difference: 4 dst len: 1996
+ src address difference: 2 src len: 2
+
+===== Conversion of a three-byte character =====
+
+----- Valid characters -----
+UTF8: e0 a0 80 e0 bf 80 e0 a0 bf e0 bf bf e0 aa bb
+UTF32: 00000800 00000fc0 0000083f 00000fff 00000abb
+ cc = 0
+ dst address difference: 20 dst len: 1980
+ src address difference: 15 src len: 0
+UTF8: ed 80 80 ed 9f 80 ed 80 bf ed 9f bf ed 8a bb
+UTF32: 0000d000 0000d7c0 0000d03f 0000d7ff 0000d2bb
+ cc = 0
+ dst address difference: 20 dst len: 1980
+ src address difference: 15 src len: 0
+UTF8: e1 80 80
+UTF32: 00001000
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e1 bf 80
+UTF32: 00001fc0
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e1 80 bf
+UTF32: 0000103f
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e1 bf bf
+UTF32: 00001fff
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e2 80 80
+UTF32: 00002000
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e2 bf 80
+UTF32: 00002fc0
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e2 80 bf
+UTF32: 0000203f
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e2 bf bf
+UTF32: 00002fff
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e3 80 80
+UTF32: 00003000
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e3 bf 80
+UTF32: 00003fc0
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e3 80 bf
+UTF32: 0000303f
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e3 bf bf
+UTF32: 00003fff
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e4 80 80
+UTF32: 00004000
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e4 bf 80
+UTF32: 00004fc0
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e4 80 bf
+UTF32: 0000403f
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e4 bf bf
+UTF32: 00004fff
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e5 80 80
+UTF32: 00005000
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e5 bf 80
+UTF32: 00005fc0
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e5 80 bf
+UTF32: 0000503f
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e5 bf bf
+UTF32: 00005fff
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e6 80 80
+UTF32: 00006000
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e6 bf 80
+UTF32: 00006fc0
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e6 80 bf
+UTF32: 0000603f
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e6 bf bf
+UTF32: 00006fff
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e7 80 80
+UTF32: 00007000
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e7 bf 80
+UTF32: 00007fc0
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e7 80 bf
+UTF32: 0000703f
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e7 bf bf
+UTF32: 00007fff
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e8 80 80
+UTF32: 00008000
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e8 bf 80
+UTF32: 00008fc0
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e8 80 bf
+UTF32: 0000803f
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e8 bf bf
+UTF32: 00008fff
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e9 80 80
+UTF32: 00009000
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e9 bf 80
+UTF32: 00009fc0
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e9 80 bf
+UTF32: 0000903f
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: e9 bf bf
+UTF32: 00009fff
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: ea 80 80
+UTF32: 0000a000
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: ea bf 80
+UTF32: 0000afc0
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: ea 80 bf
+UTF32: 0000a03f
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: ea bf bf
+UTF32: 0000afff
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: eb 80 80
+UTF32: 0000b000
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: eb bf 80
+UTF32: 0000bfc0
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: eb 80 bf
+UTF32: 0000b03f
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: eb bf bf
+UTF32: 0000bfff
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: ec 80 80
+UTF32: 0000c000
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: ec bf 80
+UTF32: 0000cfc0
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: ec 80 bf
+UTF32: 0000c03f
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: ec bf bf
+UTF32: 0000cfff
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: ee 80 80
+UTF32: 0000e000
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: ee bf 80
+UTF32: 0000efc0
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: ee 80 bf
+UTF32: 0000e03f
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: ee bf bf
+UTF32: 0000efff
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: ef 80 80
+UTF32: 0000f000
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: ef bf 80
+UTF32: 0000ffc0
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: ef 80 bf
+UTF32: 0000f03f
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+UTF8: ef bf bf
+UTF32: 0000ffff
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 0
+
+----- Invalid characters (2nd byte is invalid) -----
+UTF8: e0 9f 80 e0 bf 80 e0 a0 bf e0 bf bf e0 aa bb
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 15
+UTF8: e0 c0 80 e0 bf 80 e0 a0 bf e0 bf bf e0 aa bb
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 15
+UTF8: ed 7f 80 ed 9f 80 ed 80 bf ed 9f bf ed 8a bb
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 15
+UTF8: ed a0 80 ed 9f 80 ed 80 bf ed 9f bf ed 8a bb
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 15
+UTF8: e1 7f 80
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 3
+UTF8: e1 c0 80
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 3
+UTF8: e2 7f 80
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 3
+UTF8: e2 c0 80
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 3
+UTF8: e3 7f 80
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 3
+UTF8: e3 c0 80
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 3
+UTF8: e4 7f 80
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 3
+UTF8: e4 c0 80
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 3
+UTF8: e5 7f 80
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 3
+UTF8: e5 c0 80
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 3
+UTF8: e6 7f 80
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 3
+UTF8: e6 c0 80
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 3
+UTF8: e7 7f 80
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 3
+UTF8: e7 c0 80
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 3
+UTF8: e8 7f 80
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 3
+UTF8: e8 c0 80
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 3
+UTF8: e9 7f 80
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 3
+UTF8: e9 c0 80
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 3
+UTF8: ea 7f 80
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 3
+UTF8: ea c0 80
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 3
+UTF8: eb 7f 80
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 3
+UTF8: eb c0 80
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 3
+UTF8: ec 7f 80
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 3
+UTF8: ec c0 80
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 3
+UTF8: ee 7f 80
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 3
+UTF8: ee c0 80
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 3
+UTF8: ef 7f 80
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 3
+UTF8: ef c0 80
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 3
+
+----- Invalid characters (3rd byte is invalid) -----
+UTF8: e0 ab 7f
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 3
+UTF8: e0 ab c0
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 3
+UTF8: e1 ab 7f
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 3
+UTF8: e1 ab c0
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 3
+UTF8: e2 ab 7f
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 3
+UTF8: e2 ab c0
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 3
+UTF8: e3 ab 7f
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 3
+UTF8: e3 ab c0
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 3
+UTF8: e4 ab 7f
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 3
+UTF8: e4 ab c0
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 3
+UTF8: e5 ab 7f
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 3
+UTF8: e5 ab c0
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 3
+UTF8: e6 ab 7f
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 3
+UTF8: e6 ab c0
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 3
+UTF8: e7 ab 7f
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 3
+UTF8: e7 ab c0
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 3
+UTF8: e8 ab 7f
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 3
+UTF8: e8 ab c0
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 3
+UTF8: e9 ab 7f
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 3
+UTF8: e9 ab c0
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 3
+UTF8: ea ab 7f
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 3
+UTF8: ea ab c0
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 3
+UTF8: eb ab 7f
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 3
+UTF8: eb ab c0
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 3
+UTF8: ec ab 7f
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 3
+UTF8: ec ab c0
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 3
+UTF8: ed ab 7f
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 3
+UTF8: ed ab c0
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 3
+UTF8: ee ab 7f
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 3
+UTF8: ee ab c0
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 3
+UTF8: ef ab 7f
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 3
+UTF8: ef ab c0
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 2000
+ src address difference: 0 src len: 3
+
+----- Invalid 2nd char AND output exhausted -----
+UTF8: e0 00 80
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 1
+ src address difference: 0 src len: 3
+
+----- Invalid 3rd char AND output exhausted -----
+UTF8: e4 84 00
+UTF32: <none>
+ cc = 2
+ dst address difference: 0 dst len: 1
+ src address difference: 0 src len: 3
+
+----- 1st char valid, 2nd char invalid -----
+UTF8: e1 90 90 e1 00 90
+UTF32: 00001410
+ cc = 2
+ dst address difference: 4 dst len: 1996
+ src address difference: 3 src len: 3
+
+===== Conversion of a four-byte character =====
+
+----- Valid characters -----
+UTF8: f0 90 80 80
+UTF32: 00010000
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 4 src len: 0
+UTF8: f0 90 80 bf
+UTF32: 0001003f
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 4 src len: 0
+UTF8: f0 90 bf 80
+UTF32: 00010fc0
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 4 src len: 0
+UTF8: f0 90 bf bf
+UTF32: 00010fff
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 4 src len: 0
+UTF8: f0 bf 80 80
+UTF32: 0003f000
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 4 src len: 0
+UTF8: f0 bf 80 bf
+UTF32: 0003f03f
+ cc = 0
+ dst address difference: 4 dst len: 1996
+ src address difference: 4 src len: 0
+UTF8: f0 bf bf 80
+UTF32: 0003ffc0
+ cc = 0
+ dst address difference: 4...
[truncated message content] |