1===== Conversion of a one-byte character =====
2
3----- Valid characters -----
4UTF8:   00 7f 01 10 7e 5d
5UTF32:  00000000 0000007f 00000001 00000010 0000007e 0000005d
6  cc = 0
7  dst address difference: 24  dst len: 1976
8  src address difference: 6  src len: 0
9
10----- Invalid characters -----
11UTF8:   80
12UTF32:  <none>
13  cc = 2
14  dst address difference: 0  dst len: 2000
15  src address difference: 0  src len: 1
16UTF8:   bf
17UTF32:  <none>
18  cc = 2
19  dst address difference: 0  dst len: 2000
20  src address difference: 0  src len: 1
21UTF8:   f8
22UTF32:  <none>
23  cc = 2
24  dst address difference: 0  dst len: 2000
25  src address difference: 0  src len: 1
26UTF8:   ff
27UTF32:  <none>
28  cc = 2
29  dst address difference: 0  dst len: 2000
30  src address difference: 0  src len: 1
31UTF8:   81
32UTF32:  <none>
33  cc = 2
34  dst address difference: 0  dst len: 2000
35  src address difference: 0  src len: 1
36UTF8:   be
37UTF32:  <none>
38  cc = 2
39  dst address difference: 0  dst len: 2000
40  src address difference: 0  src len: 1
41UTF8:   95
42UTF32:  <none>
43  cc = 2
44  dst address difference: 0  dst len: 2000
45  src address difference: 0  src len: 1
46UTF8:   ab
47UTF32:  <none>
48  cc = 2
49  dst address difference: 0  dst len: 2000
50  src address difference: 0  src len: 1
51
52----- Invalid characters if m3 == 1 -----
53UTF8:   c0
54UTF32:  <none>
55  cc = 2
56  dst address difference: 0  dst len: 2000
57  src address difference: 0  src len: 1
58UTF8:   c1
59UTF32:  <none>
60  cc = 2
61  dst address difference: 0  dst len: 2000
62  src address difference: 0  src len: 1
63UTF8:   f5
64UTF32:  <none>
65  cc = 2
66  dst address difference: 0  dst len: 2000
67  src address difference: 0  src len: 1
68UTF8:   f6
69UTF32:  <none>
70  cc = 2
71  dst address difference: 0  dst len: 2000
72  src address difference: 0  src len: 1
73UTF8:   f7
74UTF32:  <none>
75  cc = 2
76  dst address difference: 0  dst len: 2000
77  src address difference: 0  src len: 1
78
79----- 1st char valid, 2nd char invalid -----
80UTF8:   10 aa
81UTF32:  00000010
82  cc = 2
83  dst address difference: 4  dst len: 1996
84  src address difference: 1  src len: 1
85
86===== Conversion of a two-byte character =====
87
88----- Valid characters -----
89UTF8:   c2 80 c2 bf df 80 df bf c3 be da bc
90UTF32:  00000080 000000bf 000007c0 000007ff 000000fe 000006bc
91  cc = 0
92  dst address difference: 24  dst len: 1976
93  src address difference: 12  src len: 0
94
95----- Valid characters if m3 == 0 -----
96UTF8:   c0 80 c0 bf c1 80 c0 bf
97UTF32:  <none>
98  cc = 2
99  dst address difference: 0  dst len: 2000
100  src address difference: 0  src len: 8
101
102----- Invalid characters if m3 == 1 -----
103UTF8:   c2 00
104UTF32:  <none>
105  cc = 2
106  dst address difference: 0  dst len: 2000
107  src address difference: 0  src len: 2
108UTF8:   c2 7f
109UTF32:  <none>
110  cc = 2
111  dst address difference: 0  dst len: 2000
112  src address difference: 0  src len: 2
113UTF8:   c2 c0
114UTF32:  <none>
115  cc = 2
116  dst address difference: 0  dst len: 2000
117  src address difference: 0  src len: 2
118UTF8:   c2 ff
119UTF32:  <none>
120  cc = 2
121  dst address difference: 0  dst len: 2000
122  src address difference: 0  src len: 2
123
124----- 1st char valid, 2nd char invalid -----
125UTF8:   c3 81 c4 00
126UTF32:  000000c1
127  cc = 2
128  dst address difference: 4  dst len: 1996
129  src address difference: 2  src len: 2
130
131===== Conversion of a three-byte character =====
132
133----- Valid characters -----
134UTF8:   e0 a0 80 e0 bf 80 e0 a0 bf e0 bf bf e0 aa bb
135UTF32:  00000800 00000fc0 0000083f 00000fff 00000abb
136  cc = 0
137  dst address difference: 20  dst len: 1980
138  src address difference: 15  src len: 0
139UTF8:   ed 80 80 ed 9f 80 ed 80 bf ed 9f bf ed 8a bb
140UTF32:  0000d000 0000d7c0 0000d03f 0000d7ff 0000d2bb
141  cc = 0
142  dst address difference: 20  dst len: 1980
143  src address difference: 15  src len: 0
144UTF8:   e1 80 80
145UTF32:  00001000
146  cc = 0
147  dst address difference: 4  dst len: 1996
148  src address difference: 3  src len: 0
149UTF8:   e1 bf 80
150UTF32:  00001fc0
151  cc = 0
152  dst address difference: 4  dst len: 1996
153  src address difference: 3  src len: 0
154UTF8:   e1 80 bf
155UTF32:  0000103f
156  cc = 0
157  dst address difference: 4  dst len: 1996
158  src address difference: 3  src len: 0
159UTF8:   e1 bf bf
160UTF32:  00001fff
161  cc = 0
162  dst address difference: 4  dst len: 1996
163  src address difference: 3  src len: 0
164UTF8:   e2 80 80
165UTF32:  00002000
166  cc = 0
167  dst address difference: 4  dst len: 1996
168  src address difference: 3  src len: 0
169UTF8:   e2 bf 80
170UTF32:  00002fc0
171  cc = 0
172  dst address difference: 4  dst len: 1996
173  src address difference: 3  src len: 0
174UTF8:   e2 80 bf
175UTF32:  0000203f
176  cc = 0
177  dst address difference: 4  dst len: 1996
178  src address difference: 3  src len: 0
179UTF8:   e2 bf bf
180UTF32:  00002fff
181  cc = 0
182  dst address difference: 4  dst len: 1996
183  src address difference: 3  src len: 0
184UTF8:   e3 80 80
185UTF32:  00003000
186  cc = 0
187  dst address difference: 4  dst len: 1996
188  src address difference: 3  src len: 0
189UTF8:   e3 bf 80
190UTF32:  00003fc0
191  cc = 0
192  dst address difference: 4  dst len: 1996
193  src address difference: 3  src len: 0
194UTF8:   e3 80 bf
195UTF32:  0000303f
196  cc = 0
197  dst address difference: 4  dst len: 1996
198  src address difference: 3  src len: 0
199UTF8:   e3 bf bf
200UTF32:  00003fff
201  cc = 0
202  dst address difference: 4  dst len: 1996
203  src address difference: 3  src len: 0
204UTF8:   e4 80 80
205UTF32:  00004000
206  cc = 0
207  dst address difference: 4  dst len: 1996
208  src address difference: 3  src len: 0
209UTF8:   e4 bf 80
210UTF32:  00004fc0
211  cc = 0
212  dst address difference: 4  dst len: 1996
213  src address difference: 3  src len: 0
214UTF8:   e4 80 bf
215UTF32:  0000403f
216  cc = 0
217  dst address difference: 4  dst len: 1996
218  src address difference: 3  src len: 0
219UTF8:   e4 bf bf
220UTF32:  00004fff
221  cc = 0
222  dst address difference: 4  dst len: 1996
223  src address difference: 3  src len: 0
224UTF8:   e5 80 80
225UTF32:  00005000
226  cc = 0
227  dst address difference: 4  dst len: 1996
228  src address difference: 3  src len: 0
229UTF8:   e5 bf 80
230UTF32:  00005fc0
231  cc = 0
232  dst address difference: 4  dst len: 1996
233  src address difference: 3  src len: 0
234UTF8:   e5 80 bf
235UTF32:  0000503f
236  cc = 0
237  dst address difference: 4  dst len: 1996
238  src address difference: 3  src len: 0
239UTF8:   e5 bf bf
240UTF32:  00005fff
241  cc = 0
242  dst address difference: 4  dst len: 1996
243  src address difference: 3  src len: 0
244UTF8:   e6 80 80
245UTF32:  00006000
246  cc = 0
247  dst address difference: 4  dst len: 1996
248  src address difference: 3  src len: 0
249UTF8:   e6 bf 80
250UTF32:  00006fc0
251  cc = 0
252  dst address difference: 4  dst len: 1996
253  src address difference: 3  src len: 0
254UTF8:   e6 80 bf
255UTF32:  0000603f
256  cc = 0
257  dst address difference: 4  dst len: 1996
258  src address difference: 3  src len: 0
259UTF8:   e6 bf bf
260UTF32:  00006fff
261  cc = 0
262  dst address difference: 4  dst len: 1996
263  src address difference: 3  src len: 0
264UTF8:   e7 80 80
265UTF32:  00007000
266  cc = 0
267  dst address difference: 4  dst len: 1996
268  src address difference: 3  src len: 0
269UTF8:   e7 bf 80
270UTF32:  00007fc0
271  cc = 0
272  dst address difference: 4  dst len: 1996
273  src address difference: 3  src len: 0
274UTF8:   e7 80 bf
275UTF32:  0000703f
276  cc = 0
277  dst address difference: 4  dst len: 1996
278  src address difference: 3  src len: 0
279UTF8:   e7 bf bf
280UTF32:  00007fff
281  cc = 0
282  dst address difference: 4  dst len: 1996
283  src address difference: 3  src len: 0
284UTF8:   e8 80 80
285UTF32:  00008000
286  cc = 0
287  dst address difference: 4  dst len: 1996
288  src address difference: 3  src len: 0
289UTF8:   e8 bf 80
290UTF32:  00008fc0
291  cc = 0
292  dst address difference: 4  dst len: 1996
293  src address difference: 3  src len: 0
294UTF8:   e8 80 bf
295UTF32:  0000803f
296  cc = 0
297  dst address difference: 4  dst len: 1996
298  src address difference: 3  src len: 0
299UTF8:   e8 bf bf
300UTF32:  00008fff
301  cc = 0
302  dst address difference: 4  dst len: 1996
303  src address difference: 3  src len: 0
304UTF8:   e9 80 80
305UTF32:  00009000
306  cc = 0
307  dst address difference: 4  dst len: 1996
308  src address difference: 3  src len: 0
309UTF8:   e9 bf 80
310UTF32:  00009fc0
311  cc = 0
312  dst address difference: 4  dst len: 1996
313  src address difference: 3  src len: 0
314UTF8:   e9 80 bf
315UTF32:  0000903f
316  cc = 0
317  dst address difference: 4  dst len: 1996
318  src address difference: 3  src len: 0
319UTF8:   e9 bf bf
320UTF32:  00009fff
321  cc = 0
322  dst address difference: 4  dst len: 1996
323  src address difference: 3  src len: 0
324UTF8:   ea 80 80
325UTF32:  0000a000
326  cc = 0
327  dst address difference: 4  dst len: 1996
328  src address difference: 3  src len: 0
329UTF8:   ea bf 80
330UTF32:  0000afc0
331  cc = 0
332  dst address difference: 4  dst len: 1996
333  src address difference: 3  src len: 0
334UTF8:   ea 80 bf
335UTF32:  0000a03f
336  cc = 0
337  dst address difference: 4  dst len: 1996
338  src address difference: 3  src len: 0
339UTF8:   ea bf bf
340UTF32:  0000afff
341  cc = 0
342  dst address difference: 4  dst len: 1996
343  src address difference: 3  src len: 0
344UTF8:   eb 80 80
345UTF32:  0000b000
346  cc = 0
347  dst address difference: 4  dst len: 1996
348  src address difference: 3  src len: 0
349UTF8:   eb bf 80
350UTF32:  0000bfc0
351  cc = 0
352  dst address difference: 4  dst len: 1996
353  src address difference: 3  src len: 0
354UTF8:   eb 80 bf
355UTF32:  0000b03f
356  cc = 0
357  dst address difference: 4  dst len: 1996
358  src address difference: 3  src len: 0
359UTF8:   eb bf bf
360UTF32:  0000bfff
361  cc = 0
362  dst address difference: 4  dst len: 1996
363  src address difference: 3  src len: 0
364UTF8:   ec 80 80
365UTF32:  0000c000
366  cc = 0
367  dst address difference: 4  dst len: 1996
368  src address difference: 3  src len: 0
369UTF8:   ec bf 80
370UTF32:  0000cfc0
371  cc = 0
372  dst address difference: 4  dst len: 1996
373  src address difference: 3  src len: 0
374UTF8:   ec 80 bf
375UTF32:  0000c03f
376  cc = 0
377  dst address difference: 4  dst len: 1996
378  src address difference: 3  src len: 0
379UTF8:   ec bf bf
380UTF32:  0000cfff
381  cc = 0
382  dst address difference: 4  dst len: 1996
383  src address difference: 3  src len: 0
384UTF8:   ee 80 80
385UTF32:  0000e000
386  cc = 0
387  dst address difference: 4  dst len: 1996
388  src address difference: 3  src len: 0
389UTF8:   ee bf 80
390UTF32:  0000efc0
391  cc = 0
392  dst address difference: 4  dst len: 1996
393  src address difference: 3  src len: 0
394UTF8:   ee 80 bf
395UTF32:  0000e03f
396  cc = 0
397  dst address difference: 4  dst len: 1996
398  src address difference: 3  src len: 0
399UTF8:   ee bf bf
400UTF32:  0000efff
401  cc = 0
402  dst address difference: 4  dst len: 1996
403  src address difference: 3  src len: 0
404UTF8:   ef 80 80
405UTF32:  0000f000
406  cc = 0
407  dst address difference: 4  dst len: 1996
408  src address difference: 3  src len: 0
409UTF8:   ef bf 80
410UTF32:  0000ffc0
411  cc = 0
412  dst address difference: 4  dst len: 1996
413  src address difference: 3  src len: 0
414UTF8:   ef 80 bf
415UTF32:  0000f03f
416  cc = 0
417  dst address difference: 4  dst len: 1996
418  src address difference: 3  src len: 0
419UTF8:   ef bf bf
420UTF32:  0000ffff
421  cc = 0
422  dst address difference: 4  dst len: 1996
423  src address difference: 3  src len: 0
424
425----- Invalid characters (2nd byte is invalid) -----
426UTF8:   e0 9f 80 e0 bf 80 e0 a0 bf e0 bf bf e0 aa bb
427UTF32:  <none>
428  cc = 2
429  dst address difference: 0  dst len: 2000
430  src address difference: 0  src len: 15
431UTF8:   e0 c0 80 e0 bf 80 e0 a0 bf e0 bf bf e0 aa bb
432UTF32:  <none>
433  cc = 2
434  dst address difference: 0  dst len: 2000
435  src address difference: 0  src len: 15
436UTF8:   ed 7f 80 ed 9f 80 ed 80 bf ed 9f bf ed 8a bb
437UTF32:  <none>
438  cc = 2
439  dst address difference: 0  dst len: 2000
440  src address difference: 0  src len: 15
441UTF8:   ed a0 80 ed 9f 80 ed 80 bf ed 9f bf ed 8a bb
442UTF32:  <none>
443  cc = 2
444  dst address difference: 0  dst len: 2000
445  src address difference: 0  src len: 15
446UTF8:   e1 7f 80
447UTF32:  <none>
448  cc = 2
449  dst address difference: 0  dst len: 2000
450  src address difference: 0  src len: 3
451UTF8:   e1 c0 80
452UTF32:  <none>
453  cc = 2
454  dst address difference: 0  dst len: 2000
455  src address difference: 0  src len: 3
456UTF8:   e2 7f 80
457UTF32:  <none>
458  cc = 2
459  dst address difference: 0  dst len: 2000
460  src address difference: 0  src len: 3
461UTF8:   e2 c0 80
462UTF32:  <none>
463  cc = 2
464  dst address difference: 0  dst len: 2000
465  src address difference: 0  src len: 3
466UTF8:   e3 7f 80
467UTF32:  <none>
468  cc = 2
469  dst address difference: 0  dst len: 2000
470  src address difference: 0  src len: 3
471UTF8:   e3 c0 80
472UTF32:  <none>
473  cc = 2
474  dst address difference: 0  dst len: 2000
475  src address difference: 0  src len: 3
476UTF8:   e4 7f 80
477UTF32:  <none>
478  cc = 2
479  dst address difference: 0  dst len: 2000
480  src address difference: 0  src len: 3
481UTF8:   e4 c0 80
482UTF32:  <none>
483  cc = 2
484  dst address difference: 0  dst len: 2000
485  src address difference: 0  src len: 3
486UTF8:   e5 7f 80
487UTF32:  <none>
488  cc = 2
489  dst address difference: 0  dst len: 2000
490  src address difference: 0  src len: 3
491UTF8:   e5 c0 80
492UTF32:  <none>
493  cc = 2
494  dst address difference: 0  dst len: 2000
495  src address difference: 0  src len: 3
496UTF8:   e6 7f 80
497UTF32:  <none>
498  cc = 2
499  dst address difference: 0  dst len: 2000
500  src address difference: 0  src len: 3
501UTF8:   e6 c0 80
502UTF32:  <none>
503  cc = 2
504  dst address difference: 0  dst len: 2000
505  src address difference: 0  src len: 3
506UTF8:   e7 7f 80
507UTF32:  <none>
508  cc = 2
509  dst address difference: 0  dst len: 2000
510  src address difference: 0  src len: 3
511UTF8:   e7 c0 80
512UTF32:  <none>
513  cc = 2
514  dst address difference: 0  dst len: 2000
515  src address difference: 0  src len: 3
516UTF8:   e8 7f 80
517UTF32:  <none>
518  cc = 2
519  dst address difference: 0  dst len: 2000
520  src address difference: 0  src len: 3
521UTF8:   e8 c0 80
522UTF32:  <none>
523  cc = 2
524  dst address difference: 0  dst len: 2000
525  src address difference: 0  src len: 3
526UTF8:   e9 7f 80
527UTF32:  <none>
528  cc = 2
529  dst address difference: 0  dst len: 2000
530  src address difference: 0  src len: 3
531UTF8:   e9 c0 80
532UTF32:  <none>
533  cc = 2
534  dst address difference: 0  dst len: 2000
535  src address difference: 0  src len: 3
536UTF8:   ea 7f 80
537UTF32:  <none>
538  cc = 2
539  dst address difference: 0  dst len: 2000
540  src address difference: 0  src len: 3
541UTF8:   ea c0 80
542UTF32:  <none>
543  cc = 2
544  dst address difference: 0  dst len: 2000
545  src address difference: 0  src len: 3
546UTF8:   eb 7f 80
547UTF32:  <none>
548  cc = 2
549  dst address difference: 0  dst len: 2000
550  src address difference: 0  src len: 3
551UTF8:   eb c0 80
552UTF32:  <none>
553  cc = 2
554  dst address difference: 0  dst len: 2000
555  src address difference: 0  src len: 3
556UTF8:   ec 7f 80
557UTF32:  <none>
558  cc = 2
559  dst address difference: 0  dst len: 2000
560  src address difference: 0  src len: 3
561UTF8:   ec c0 80
562UTF32:  <none>
563  cc = 2
564  dst address difference: 0  dst len: 2000
565  src address difference: 0  src len: 3
566UTF8:   ee 7f 80
567UTF32:  <none>
568  cc = 2
569  dst address difference: 0  dst len: 2000
570  src address difference: 0  src len: 3
571UTF8:   ee c0 80
572UTF32:  <none>
573  cc = 2
574  dst address difference: 0  dst len: 2000
575  src address difference: 0  src len: 3
576UTF8:   ef 7f 80
577UTF32:  <none>
578  cc = 2
579  dst address difference: 0  dst len: 2000
580  src address difference: 0  src len: 3
581UTF8:   ef c0 80
582UTF32:  <none>
583  cc = 2
584  dst address difference: 0  dst len: 2000
585  src address difference: 0  src len: 3
586
587----- Invalid characters (3rd byte is invalid) -----
588UTF8:   e0 ab 7f
589UTF32:  <none>
590  cc = 2
591  dst address difference: 0  dst len: 2000
592  src address difference: 0  src len: 3
593UTF8:   e0 ab c0
594UTF32:  <none>
595  cc = 2
596  dst address difference: 0  dst len: 2000
597  src address difference: 0  src len: 3
598UTF8:   e1 ab 7f
599UTF32:  <none>
600  cc = 2
601  dst address difference: 0  dst len: 2000
602  src address difference: 0  src len: 3
603UTF8:   e1 ab c0
604UTF32:  <none>
605  cc = 2
606  dst address difference: 0  dst len: 2000
607  src address difference: 0  src len: 3
608UTF8:   e2 ab 7f
609UTF32:  <none>
610  cc = 2
611  dst address difference: 0  dst len: 2000
612  src address difference: 0  src len: 3
613UTF8:   e2 ab c0
614UTF32:  <none>
615  cc = 2
616  dst address difference: 0  dst len: 2000
617  src address difference: 0  src len: 3
618UTF8:   e3 ab 7f
619UTF32:  <none>
620  cc = 2
621  dst address difference: 0  dst len: 2000
622  src address difference: 0  src len: 3
623UTF8:   e3 ab c0
624UTF32:  <none>
625  cc = 2
626  dst address difference: 0  dst len: 2000
627  src address difference: 0  src len: 3
628UTF8:   e4 ab 7f
629UTF32:  <none>
630  cc = 2
631  dst address difference: 0  dst len: 2000
632  src address difference: 0  src len: 3
633UTF8:   e4 ab c0
634UTF32:  <none>
635  cc = 2
636  dst address difference: 0  dst len: 2000
637  src address difference: 0  src len: 3
638UTF8:   e5 ab 7f
639UTF32:  <none>
640  cc = 2
641  dst address difference: 0  dst len: 2000
642  src address difference: 0  src len: 3
643UTF8:   e5 ab c0
644UTF32:  <none>
645  cc = 2
646  dst address difference: 0  dst len: 2000
647  src address difference: 0  src len: 3
648UTF8:   e6 ab 7f
649UTF32:  <none>
650  cc = 2
651  dst address difference: 0  dst len: 2000
652  src address difference: 0  src len: 3
653UTF8:   e6 ab c0
654UTF32:  <none>
655  cc = 2
656  dst address difference: 0  dst len: 2000
657  src address difference: 0  src len: 3
658UTF8:   e7 ab 7f
659UTF32:  <none>
660  cc = 2
661  dst address difference: 0  dst len: 2000
662  src address difference: 0  src len: 3
663UTF8:   e7 ab c0
664UTF32:  <none>
665  cc = 2
666  dst address difference: 0  dst len: 2000
667  src address difference: 0  src len: 3
668UTF8:   e8 ab 7f
669UTF32:  <none>
670  cc = 2
671  dst address difference: 0  dst len: 2000
672  src address difference: 0  src len: 3
673UTF8:   e8 ab c0
674UTF32:  <none>
675  cc = 2
676  dst address difference: 0  dst len: 2000
677  src address difference: 0  src len: 3
678UTF8:   e9 ab 7f
679UTF32:  <none>
680  cc = 2
681  dst address difference: 0  dst len: 2000
682  src address difference: 0  src len: 3
683UTF8:   e9 ab c0
684UTF32:  <none>
685  cc = 2
686  dst address difference: 0  dst len: 2000
687  src address difference: 0  src len: 3
688UTF8:   ea ab 7f
689UTF32:  <none>
690  cc = 2
691  dst address difference: 0  dst len: 2000
692  src address difference: 0  src len: 3
693UTF8:   ea ab c0
694UTF32:  <none>
695  cc = 2
696  dst address difference: 0  dst len: 2000
697  src address difference: 0  src len: 3
698UTF8:   eb ab 7f
699UTF32:  <none>
700  cc = 2
701  dst address difference: 0  dst len: 2000
702  src address difference: 0  src len: 3
703UTF8:   eb ab c0
704UTF32:  <none>
705  cc = 2
706  dst address difference: 0  dst len: 2000
707  src address difference: 0  src len: 3
708UTF8:   ec ab 7f
709UTF32:  <none>
710  cc = 2
711  dst address difference: 0  dst len: 2000
712  src address difference: 0  src len: 3
713UTF8:   ec ab c0
714UTF32:  <none>
715  cc = 2
716  dst address difference: 0  dst len: 2000
717  src address difference: 0  src len: 3
718UTF8:   ed ab 7f
719UTF32:  <none>
720  cc = 2
721  dst address difference: 0  dst len: 2000
722  src address difference: 0  src len: 3
723UTF8:   ed ab c0
724UTF32:  <none>
725  cc = 2
726  dst address difference: 0  dst len: 2000
727  src address difference: 0  src len: 3
728UTF8:   ee ab 7f
729UTF32:  <none>
730  cc = 2
731  dst address difference: 0  dst len: 2000
732  src address difference: 0  src len: 3
733UTF8:   ee ab c0
734UTF32:  <none>
735  cc = 2
736  dst address difference: 0  dst len: 2000
737  src address difference: 0  src len: 3
738UTF8:   ef ab 7f
739UTF32:  <none>
740  cc = 2
741  dst address difference: 0  dst len: 2000
742  src address difference: 0  src len: 3
743UTF8:   ef ab c0
744UTF32:  <none>
745  cc = 2
746  dst address difference: 0  dst len: 2000
747  src address difference: 0  src len: 3
748
749----- Invalid 2nd char AND output exhausted -----
750UTF8:   e0 00 80
751UTF32:  <none>
752  cc = 2
753  dst address difference: 0  dst len: 1
754  src address difference: 0  src len: 3
755
756----- Invalid 3rd char AND output exhausted -----
757UTF8:   e4 84 00
758UTF32:  <none>
759  cc = 2
760  dst address difference: 0  dst len: 1
761  src address difference: 0  src len: 3
762
763----- 1st char valid, 2nd char invalid -----
764UTF8:   e1 90 90 e1 00 90
765UTF32:  00001410
766  cc = 2
767  dst address difference: 4  dst len: 1996
768  src address difference: 3  src len: 3
769
770===== Conversion of a four-byte character =====
771
772----- Valid characters -----
773UTF8:   f0 90 80 80
774UTF32:  00010000
775  cc = 0
776  dst address difference: 4  dst len: 1996
777  src address difference: 4  src len: 0
778UTF8:   f0 90 80 bf
779UTF32:  0001003f
780  cc = 0
781  dst address difference: 4  dst len: 1996
782  src address difference: 4  src len: 0
783UTF8:   f0 90 bf 80
784UTF32:  00010fc0
785  cc = 0
786  dst address difference: 4  dst len: 1996
787  src address difference: 4  src len: 0
788UTF8:   f0 90 bf bf
789UTF32:  00010fff
790  cc = 0
791  dst address difference: 4  dst len: 1996
792  src address difference: 4  src len: 0
793UTF8:   f0 bf 80 80
794UTF32:  0003f000
795  cc = 0
796  dst address difference: 4  dst len: 1996
797  src address difference: 4  src len: 0
798UTF8:   f0 bf 80 bf
799UTF32:  0003f03f
800  cc = 0
801  dst address difference: 4  dst len: 1996
802  src address difference: 4  src len: 0
803UTF8:   f0 bf bf 80
804UTF32:  0003ffc0
805  cc = 0
806  dst address difference: 4  dst len: 1996
807  src address difference: 4  src len: 0
808UTF8:   f0 bf bf bf
809UTF32:  0003ffff
810  cc = 0
811  dst address difference: 4  dst len: 1996
812  src address difference: 4  src len: 0
813UTF8:   f1 80 80 80
814UTF32:  00040000
815  cc = 0
816  dst address difference: 4  dst len: 1996
817  src address difference: 4  src len: 0
818UTF8:   f1 80 80 bf
819UTF32:  0004003f
820  cc = 0
821  dst address difference: 4  dst len: 1996
822  src address difference: 4  src len: 0
823UTF8:   f1 80 bf 80
824UTF32:  00040fc0
825  cc = 0
826  dst address difference: 4  dst len: 1996
827  src address difference: 4  src len: 0
828UTF8:   f1 80 bf bf
829UTF32:  00040fff
830  cc = 0
831  dst address difference: 4  dst len: 1996
832  src address difference: 4  src len: 0
833UTF8:   f1 bf 80 80
834UTF32:  0007f000
835  cc = 0
836  dst address difference: 4  dst len: 1996
837  src address difference: 4  src len: 0
838UTF8:   f1 bf 80 bf
839UTF32:  0007f03f
840  cc = 0
841  dst address difference: 4  dst len: 1996
842  src address difference: 4  src len: 0
843UTF8:   f1 bf bf 80
844UTF32:  0007ffc0
845  cc = 0
846  dst address difference: 4  dst len: 1996
847  src address difference: 4  src len: 0
848UTF8:   f1 bf bf bf
849UTF32:  0007ffff
850  cc = 0
851  dst address difference: 4  dst len: 1996
852  src address difference: 4  src len: 0
853UTF8:   f2 80 80 80
854UTF32:  00080000
855  cc = 0
856  dst address difference: 4  dst len: 1996
857  src address difference: 4  src len: 0
858UTF8:   f2 80 80 bf
859UTF32:  0008003f
860  cc = 0
861  dst address difference: 4  dst len: 1996
862  src address difference: 4  src len: 0
863UTF8:   f2 80 bf 80
864UTF32:  00080fc0
865  cc = 0
866  dst address difference: 4  dst len: 1996
867  src address difference: 4  src len: 0
868UTF8:   f2 80 bf bf
869UTF32:  00080fff
870  cc = 0
871  dst address difference: 4  dst len: 1996
872  src address difference: 4  src len: 0
873UTF8:   f2 bf 80 80
874UTF32:  000bf000
875  cc = 0
876  dst address difference: 4  dst len: 1996
877  src address difference: 4  src len: 0
878UTF8:   f2 bf 80 bf
879UTF32:  000bf03f
880  cc = 0
881  dst address difference: 4  dst len: 1996
882  src address difference: 4  src len: 0
883UTF8:   f2 bf bf 80
884UTF32:  000bffc0
885  cc = 0
886  dst address difference: 4  dst len: 1996
887  src address difference: 4  src len: 0
888UTF8:   f2 bf bf bf
889UTF32:  000bffff
890  cc = 0
891  dst address difference: 4  dst len: 1996
892  src address difference: 4  src len: 0
893UTF8:   f3 80 80 80
894UTF32:  000c0000
895  cc = 0
896  dst address difference: 4  dst len: 1996
897  src address difference: 4  src len: 0
898UTF8:   f3 80 80 bf
899UTF32:  000c003f
900  cc = 0
901  dst address difference: 4  dst len: 1996
902  src address difference: 4  src len: 0
903UTF8:   f3 80 bf 80
904UTF32:  000c0fc0
905  cc = 0
906  dst address difference: 4  dst len: 1996
907  src address difference: 4  src len: 0
908UTF8:   f3 80 bf bf
909UTF32:  000c0fff
910  cc = 0
911  dst address difference: 4  dst len: 1996
912  src address difference: 4  src len: 0
913UTF8:   f3 bf 80 80
914UTF32:  000ff000
915  cc = 0
916  dst address difference: 4  dst len: 1996
917  src address difference: 4  src len: 0
918UTF8:   f3 bf 80 bf
919UTF32:  000ff03f
920  cc = 0
921  dst address difference: 4  dst len: 1996
922  src address difference: 4  src len: 0
923UTF8:   f3 bf bf 80
924UTF32:  000fffc0
925  cc = 0
926  dst address difference: 4  dst len: 1996
927  src address difference: 4  src len: 0
928UTF8:   f3 bf bf bf
929UTF32:  000fffff
930  cc = 0
931  dst address difference: 4  dst len: 1996
932  src address difference: 4  src len: 0
933UTF8:   f4 80 80 80
934UTF32:  00100000
935  cc = 0
936  dst address difference: 4  dst len: 1996
937  src address difference: 4  src len: 0
938UTF8:   f4 80 80 bf
939UTF32:  0010003f
940  cc = 0
941  dst address difference: 4  dst len: 1996
942  src address difference: 4  src len: 0
943UTF8:   f4 80 bf 80
944UTF32:  00100fc0
945  cc = 0
946  dst address difference: 4  dst len: 1996
947  src address difference: 4  src len: 0
948UTF8:   f4 80 bf bf
949UTF32:  00100fff
950  cc = 0
951  dst address difference: 4  dst len: 1996
952  src address difference: 4  src len: 0
953UTF8:   f4 8f 80 80
954UTF32:  0010f000
955  cc = 0
956  dst address difference: 4  dst len: 1996
957  src address difference: 4  src len: 0
958UTF8:   f4 8f 80 bf
959UTF32:  0010f03f
960  cc = 0
961  dst address difference: 4  dst len: 1996
962  src address difference: 4  src len: 0
963UTF8:   f4 8f bf 80
964UTF32:  0010ffc0
965  cc = 0
966  dst address difference: 4  dst len: 1996
967  src address difference: 4  src len: 0
968UTF8:   f4 8f bf bf
969UTF32:  0010ffff
970  cc = 0
971  dst address difference: 4  dst len: 1996
972  src address difference: 4  src len: 0
973
974----- Valid characters if m3 == 0 -----
975UTF8:   f5 00 00 00 f6 11 22 33 f7 44 55 66
976UTF32:  <none>
977  cc = 2
978  dst address difference: 0  dst len: 2000
979  src address difference: 0  src len: 12
980
981----- Invalid characters (2nd byte is invalid) -----
982UTF8:   f0 8f 80 80
983UTF32:  <none>
984  cc = 2
985  dst address difference: 0  dst len: 2000
986  src address difference: 0  src len: 4
987UTF8:   f0 c0 80 80
988UTF32:  <none>
989  cc = 2
990  dst address difference: 0  dst len: 2000
991  src address difference: 0  src len: 4
992UTF8:   f4 7f 80 80
993UTF32:  <none>
994  cc = 2
995  dst address difference: 0  dst len: 2000
996  src address difference: 0  src len: 4
997UTF8:   f4 90 80 80
998UTF32:  <none>
999  cc = 2
1000  dst address difference: 0  dst len: 2000
1001  src address difference: 0  src len: 4
1002UTF8:   f1 7f 80 80
1003UTF32:  <none>
1004  cc = 2
1005  dst address difference: 0  dst len: 2000
1006  src address difference: 0  src len: 4
1007UTF8:   f1 c0 80 80
1008UTF32:  <none>
1009  cc = 2
1010  dst address difference: 0  dst len: 2000
1011  src address difference: 0  src len: 4
1012UTF8:   f2 7f 80 80
1013UTF32:  <none>
1014  cc = 2
1015  dst address difference: 0  dst len: 2000
1016  src address difference: 0  src len: 4
1017UTF8:   f2 c0 80 80
1018UTF32:  <none>
1019  cc = 2
1020  dst address difference: 0  dst len: 2000
1021  src address difference: 0  src len: 4
1022UTF8:   f3 7f 80 80
1023UTF32:  <none>
1024  cc = 2
1025  dst address difference: 0  dst len: 2000
1026  src address difference: 0  src len: 4
1027UTF8:   f3 c0 80 80
1028UTF32:  <none>
1029  cc = 2
1030  dst address difference: 0  dst len: 2000
1031  src address difference: 0  src len: 4
1032
1033----- Invalid characters (3rd byte is invalid) -----
1034UTF8:   f0 94 7f 80
1035UTF32:  <none>
1036  cc = 2
1037  dst address difference: 0  dst len: 2000
1038  src address difference: 0  src len: 4
1039UTF8:   f0 94 c0 80
1040UTF32:  <none>
1041  cc = 2
1042  dst address difference: 0  dst len: 2000
1043  src address difference: 0  src len: 4
1044UTF8:   f1 84 7f 80
1045UTF32:  <none>
1046  cc = 2
1047  dst address difference: 0  dst len: 2000
1048  src address difference: 0  src len: 4
1049UTF8:   f1 84 c0 80
1050UTF32:  <none>
1051  cc = 2
1052  dst address difference: 0  dst len: 2000
1053  src address difference: 0  src len: 4
1054UTF8:   f2 84 7f 80
1055UTF32:  <none>
1056  cc = 2
1057  dst address difference: 0  dst len: 2000
1058  src address difference: 0  src len: 4
1059UTF8:   f2 84 c0 80
1060UTF32:  <none>
1061  cc = 2
1062  dst address difference: 0  dst len: 2000
1063  src address difference: 0  src len: 4
1064UTF8:   f3 84 7f 80
1065UTF32:  <none>
1066  cc = 2
1067  dst address difference: 0  dst len: 2000
1068  src address difference: 0  src len: 4
1069UTF8:   f3 84 c0 80
1070UTF32:  <none>
1071  cc = 2
1072  dst address difference: 0  dst len: 2000
1073  src address difference: 0  src len: 4
1074UTF8:   f4 84 7f 80
1075UTF32:  <none>
1076  cc = 2
1077  dst address difference: 0  dst len: 2000
1078  src address difference: 0  src len: 4
1079UTF8:   f4 84 c0 80
1080UTF32:  <none>
1081  cc = 2
1082  dst address difference: 0  dst len: 2000
1083  src address difference: 0  src len: 4
1084
1085----- Invalid characters (4th byte is invalid) -----
1086UTF8:   f0 94 80 7f
1087UTF32:  <none>
1088  cc = 2
1089  dst address difference: 0  dst len: 2000
1090  src address difference: 0  src len: 4
1091UTF8:   f0 94 80 c0
1092UTF32:  <none>
1093  cc = 2
1094  dst address difference: 0  dst len: 2000
1095  src address difference: 0  src len: 4
1096UTF8:   f1 84 80 7f
1097UTF32:  <none>
1098  cc = 2
1099  dst address difference: 0  dst len: 2000
1100  src address difference: 0  src len: 4
1101UTF8:   f1 84 80 c0
1102UTF32:  <none>
1103  cc = 2
1104  dst address difference: 0  dst len: 2000
1105  src address difference: 0  src len: 4
1106UTF8:   f2 84 80 7f
1107UTF32:  <none>
1108  cc = 2
1109  dst address difference: 0  dst len: 2000
1110  src address difference: 0  src len: 4
1111UTF8:   f2 84 80 c0
1112UTF32:  <none>
1113  cc = 2
1114  dst address difference: 0  dst len: 2000
1115  src address difference: 0  src len: 4
1116UTF8:   f3 84 80 7f
1117UTF32:  <none>
1118  cc = 2
1119  dst address difference: 0  dst len: 2000
1120  src address difference: 0  src len: 4
1121UTF8:   f3 84 80 c0
1122UTF32:  <none>
1123  cc = 2
1124  dst address difference: 0  dst len: 2000
1125  src address difference: 0  src len: 4
1126UTF8:   f4 84 80 7f
1127UTF32:  <none>
1128  cc = 2
1129  dst address difference: 0  dst len: 2000
1130  src address difference: 0  src len: 4
1131UTF8:   f4 84 80 c0
1132UTF32:  <none>
1133  cc = 2
1134  dst address difference: 0  dst len: 2000
1135  src address difference: 0  src len: 4
1136
1137----- Invalid 2nd char AND output exhausted -----
1138UTF8:   f0 00 80 80
1139UTF32:  <none>
1140  cc = 2
1141  dst address difference: 0  dst len: 1
1142  src address difference: 0  src len: 4
1143
1144----- Invalid 3rd char AND output exhausted -----
1145UTF8:   f0 aa 00 80
1146UTF32:  <none>
1147  cc = 2
1148  dst address difference: 0  dst len: 3
1149  src address difference: 0  src len: 4
1150
1151----- Invalid 4th char AND output exhausted -----
1152UTF8:   f0 aa aa 00
1153UTF32:  <none>
1154  cc = 2
1155  dst address difference: 0  dst len: 3
1156  src address difference: 0  src len: 4
1157
1158----- 1st char valid, 2nd char invalid -----
1159UTF8:   f0 aa aa aa f0 00 00 00
1160UTF32:  0002aaaa
1161  cc = 2
1162  dst address difference: 4  dst len: 1996
1163  src address difference: 4  src len: 4
1164
1165------------- test1 ----------------
1166UTF8:   <none>
1167UTF32:  <none>
1168  cc = 0
1169  dst len: 0
1170  src len: 0
1171
1172------------- test2.1 ----------------
1173UTF8:   <none>
1174UTF32:  <none>
1175  cc = 0
1176  dst address difference: 0  dst len: 2000
1177  src len: 0
1178UTF8:   <none>
1179UTF32:  <none>
1180  cc = 0
1181  dst address difference: 0  dst len: 2000
1182  src address difference: 0  src len: 0
1183UTF8:   <none>
1184UTF32:  <none>
1185  cc = 0
1186  dst address difference: 0  dst len: 2000
1187  src address difference: 0  src len: 0
1188UTF8:   c2
1189UTF32:  <none>
1190  cc = 0
1191  dst address difference: 0  dst len: 2000
1192  src address difference: 0  src len: 1
1193UTF8:   <none>
1194UTF32:  <none>
1195  cc = 0
1196  dst address difference: 0  dst len: 2000
1197  src address difference: 0  src len: 0
1198UTF8:   e1
1199UTF32:  <none>
1200  cc = 0
1201  dst address difference: 0  dst len: 2000
1202  src address difference: 0  src len: 1
1203UTF8:   e1 80
1204UTF32:  <none>
1205  cc = 0
1206  dst address difference: 0  dst len: 2000
1207  src address difference: 0  src len: 2
1208UTF8:   <none>
1209UTF32:  <none>
1210  cc = 0
1211  dst address difference: 0  dst len: 2000
1212  src address difference: 0  src len: 0
1213UTF8:   f4
1214UTF32:  <none>
1215  cc = 0
1216  dst address difference: 0  dst len: 2000
1217  src address difference: 0  src len: 1
1218UTF8:   f4 80
1219UTF32:  <none>
1220  cc = 0
1221  dst address difference: 0  dst len: 2000
1222  src address difference: 0  src len: 2
1223UTF8:   f4 80 80
1224UTF32:  <none>
1225  cc = 0
1226  dst address difference: 0  dst len: 2000
1227  src address difference: 0  src len: 3
1228
1229------------- test2.2 ----------------
1230UTF8:   00 01
1231UTF32:  00000000 00000001
1232  cc = 0
1233  dst address difference: 8  dst len: 1992
1234  src address difference: 2  src len: 0
1235UTF8:   c2 80 c2 81 c2
1236UTF32:  00000080 00000081
1237  cc = 0
1238  dst address difference: 8  dst len: 1992
1239  src address difference: 4  src len: 1
1240UTF8:   e1 80 80 e1 80 81
1241UTF32:  00001000 00001001
1242  cc = 0
1243  dst address difference: 8  dst len: 1992
1244  src address difference: 6  src len: 0
1245UTF8:   f4 80 80 80 f4 80 80 81 f4
1246UTF32:  00100000 00100001
1247  cc = 0
1248  dst address difference: 8  dst len: 1992
1249  src address difference: 8  src len: 1
1250
1251------------- test3.1 ----------------
1252UTF8:   00 01 02 03
1253UTF32:  <none>
1254  cc = 1
1255  dst len: 0
1256  src address difference: 0  src len: 4
1257UTF8:   c2 80 c2 81 c2 82 c2 83
1258UTF32:  <none>
1259  cc = 1
1260  dst len: 0
1261  src address difference: 0  src len: 8
1262UTF8:   c2 80 c2 81 c2 82 c2 83
1263UTF32:  <none>
1264  cc = 1
1265  dst len: 1
1266  src address difference: 0  src len: 8
1267UTF8:   e1 80 80 e1 80 81 e1 80 82 e1 80 83
1268UTF32:  <none>
1269  cc = 1
1270  dst len: 0
1271  src address difference: 0  src len: 12
1272UTF8:   e1 80 80 e1 80 81 e1 80 82 e1 80 83
1273UTF32:  <none>
1274  cc = 1
1275  dst len: 1
1276  src address difference: 0  src len: 12
1277UTF8:   f4 80 80 80 f4 80 80 81 f4 80 80 82 f4 80 80 83
1278UTF32:  <none>
1279  cc = 1
1280  dst len: 0
1281  src address difference: 0  src len: 16
1282UTF8:   f4 80 80 80 f4 80 80 81 f4 80 80 82 f4 80 80 83
1283UTF32:  <none>
1284  cc = 1
1285  dst len: 1
1286  src address difference: 0  src len: 16
1287UTF8:   f4 80 80 80 f4 80 80 81 f4 80 80 82 f4 80 80 83
1288UTF32:  <none>
1289  cc = 1
1290  dst len: 2
1291  src address difference: 0  src len: 16
1292UTF8:   f4 80 80 80 f4 80 80 81 f4 80 80 82 f4 80 80 83
1293UTF32:  <none>
1294  cc = 1
1295  dst len: 3
1296  src address difference: 0  src len: 16
1297
1298------------- test3.2 ----------------
1299UTF8:   00 01 02 03
1300UTF32:  00000000
1301  cc = 1
1302  dst address difference: 4  dst len: 0
1303  src address difference: 1  src len: 3
1304UTF8:   00 01 02 03 c2 80 c2 81
1305UTF32:  00000000
1306  cc = 1
1307  dst address difference: 4  dst len: 1
1308  src address difference: 1  src len: 7
1309UTF8:   00 01 02 03 c2 80 c2 81 c2 82 c2 83
1310UTF32:  00000000
1311  cc = 1
1312  dst address difference: 4  dst len: 2
1313  src address difference: 1  src len: 11
1314UTF8:   00 01 02 03 c2 80 c2 81 c2 82 c2 83 e1 80 80 e1
1315UTF32:  00000000
1316  cc = 1
1317  dst address difference: 4  dst len: 3
1318  src address difference: 1  src len: 15
1319
1320------------- test4 ----------------
1321UTF8:   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
1322UTF32:  00000001 000000c0 00000012 00001413 00000023 0010040a 00000034 0000010c 00001454 0000014a 0010040a 0000014a 00001454 0010040a 00001454
1323  cc = 0
1324  dst address difference: 60  dst len: 1940
1325  src address difference: 36  src len: 0
1326