67 const char* src =
"\x41\xC3\xB1\x42";
68 int32_t expected[] = {0x41, 0xF1, 0x42};
70 memset(dst, 0,
sizeof(dst));
73 EXPECT(!memcmp(expected, dst,
sizeof(expected)));
77 const char* src =
"\x4D";
78 int32_t expected[] = {0x4D};
80 memset(dst, 0,
sizeof(dst));
83 EXPECT(!memcmp(expected, dst,
sizeof(expected)));
87 const char* src =
"\xD0\xB0";
88 int32_t expected[] = {0x430};
90 memset(dst, 0,
sizeof(dst));
93 EXPECT(!memcmp(expected, dst,
sizeof(expected)));
97 const char* src =
"\xE4\xBA\x8C";
98 int32_t expected[] = {0x4E8C};
100 memset(dst, 0,
sizeof(dst));
103 EXPECT(!memcmp(expected, dst,
sizeof(expected)));
107 const char* src =
"\xF0\x90\x8C\x82";
108 int32_t expected[] = {0x10302};
110 memset(dst, 0,
sizeof(dst));
113 EXPECT(!memcmp(expected, dst,
sizeof(expected)));
117 const char* src =
"\x4D\xD0\xB0\xE4\xBA\x8C\xF0\x90\x8C\x82";
118 int32_t expected[] = {0x4D, 0x430, 0x4E8C, 0x10302};
120 memset(dst, 0,
sizeof(dst));
123 EXPECT(!memcmp(expected, dst,
sizeof(expected)));
129 "\xD7\x92\xD7\x9C\xD7\xA2\xD7\x93"
131 "\xD7\x91\xD7\xA8\xD7\x9B\xD7\x94";
132 int32_t expected[] = {0x5D2, 0x5DC, 0x5E2, 0x5D3, 0x20,
133 0x5D1, 0x5E8, 0x5DB, 0x5D4};
135 memset(dst, 0,
sizeof(dst));
138 EXPECT(!memcmp(expected, dst,
sizeof(expected)));
145 const char* src =
"\xCE\xBA\xE1\xBD\xB9\xCF\x83\xCE\xBC\xCE\xB5";
146 int32_t expected[] = {0x3BA, 0x1F79, 0x3C3, 0x3BC, 0x3B5};
148 memset(dst, 0,
sizeof(dst));
151 EXPECT(!memcmp(expected, dst,
sizeof(expected)));
160 const char* src =
"\x00";
161 int32_t expected[] = {0x0};
163 memset(dst, 0xFF,
sizeof(dst));
166 EXPECT(memcmp(expected, dst,
sizeof(expected)));
171 const char* src =
"\xC2\x80";
172 int32_t expected[] = {0x80};
174 memset(dst, 0,
sizeof(dst));
177 EXPECT(!memcmp(expected, dst,
sizeof(expected)));
182 const char* src =
"\xE0\xA0\x80";
183 int32_t expected[] = {0x800};
185 memset(dst, 0,
sizeof(dst));
188 EXPECT(!memcmp(expected, dst,
sizeof(expected)));
193 const char* src =
"\xF0\x90\x80\x80";
194 int32_t expected[] = {0x10000};
196 memset(dst, 0,
sizeof(dst));
199 EXPECT(!memcmp(expected, dst,
sizeof(expected)));
204 const char* src =
"\xF8\x88\x80\x80\x80";
205 int32_t expected[] = {0x200000};
207 memset(dst, 0,
sizeof(dst));
210 EXPECT(memcmp(expected, dst,
sizeof(expected)));
215 const char* src =
"\xFC\x84\x80\x80\x80\x80";
216 int32_t expected[] = {0x400000};
218 memset(dst, 0,
sizeof(dst));
221 EXPECT(memcmp(expected, dst,
sizeof(expected)));
228 const char* src =
"\x7F";
229 int32_t expected[] = {0x7F};
231 memset(dst, 0,
sizeof(dst));
234 EXPECT(!memcmp(expected, dst,
sizeof(expected)));
239 const char* src =
"\xDF\xBF";
240 int32_t expected[] = {0x7FF};
242 memset(dst, 0,
sizeof(dst));
245 EXPECT(!memcmp(expected, dst,
sizeof(expected)));
250 const char* src =
"\xEF\xBF\xBF";
251 int32_t expected[] = {0xFFFF};
253 memset(dst, 0,
sizeof(dst));
256 EXPECT(!memcmp(expected, dst,
sizeof(expected)));
261 const char* src =
"\xF7\xBF\xBF\xBF";
262 int32_t expected[] = {0x1FFFF};
264 memset(dst, 0,
sizeof(dst));
267 EXPECT(memcmp(expected, dst,
sizeof(expected)));
272 const char* src =
"\xFB\xBF\xBF\xBF\xBF";
273 int32_t expected[] = {0x3FFFFFF};
275 memset(dst, 0,
sizeof(dst));
278 EXPECT(memcmp(expected, dst,
sizeof(expected)));
283 const char* src =
"\xFD\xBF\xBF\xBF\xBF\xBF";
284 int32_t expected[] = {0x7FFFFFF};
286 memset(dst, 0,
sizeof(dst));
289 EXPECT(memcmp(expected, dst,
sizeof(expected)));
296 const char* src =
"\xED\x9F\xBF";
297 int32_t expected[] = {0xD7FF};
299 memset(dst, 0,
sizeof(dst));
302 EXPECT(!memcmp(expected, dst,
sizeof(expected)));
307 const char* src =
"\xEE\x80\x80";
308 int32_t expected[] = {0xE000};
310 memset(dst, 0,
sizeof(dst));
313 EXPECT(!memcmp(expected, dst,
sizeof(expected)));
318 const char* src =
"\xEF\xBF\xBD";
319 int32_t expected[] = {0xFFFD};
321 memset(dst, 0,
sizeof(dst));
324 EXPECT(!memcmp(expected, dst,
sizeof(expected)));
329 const char* src =
"\xF4\x8F\xBF\xBF";
330 int32_t expected[] = {0x10FFFF};
332 memset(dst, 0,
sizeof(dst));
335 EXPECT(!memcmp(expected, dst,
sizeof(expected)));
340 const char* src =
"\xF4\x90\x80\x80";
341 int32_t expected[] = {0x110000};
343 memset(dst, 0,
sizeof(dst));
346 EXPECT(memcmp(expected, dst,
sizeof(expected)));
355 const char* src =
"\x80";
356 int32_t expected[] = {0x80};
358 memset(dst, 0,
sizeof(dst));
361 EXPECT(memcmp(expected, dst,
sizeof(expected)));
366 const char* src =
"\xBF";
367 int32_t expected[] = {0xBF};
369 memset(dst, 0,
sizeof(dst));
372 EXPECT(memcmp(expected, dst,
sizeof(expected)));
377 const char* src =
"\x80\xBF";
378 int32_t expected[] = {0x80, 0xBF};
380 memset(dst, 0,
sizeof(dst));
383 EXPECT(memcmp(expected, dst,
sizeof(expected)));
388 const char* src =
"\x80\xBF\x80";
389 int32_t expected[] = {0x80, 0xBF, 0x80};
391 memset(dst, 0,
sizeof(dst));
394 EXPECT(memcmp(expected, dst,
sizeof(expected)));
399 const char* src =
"\x80\xBF\x80\xBF";
400 int32_t expected[] = {0x80, 0xBF, 0x80, 0xBF};
402 memset(dst, 0,
sizeof(dst));
405 EXPECT(memcmp(expected, dst,
sizeof(expected)));
410 const char* src =
"\x80\xBF\x80\xBF\x80";
411 int32_t expected[] = {0x80, 0xBF, 0x80, 0xBF, 0x80};
413 memset(dst, 0,
sizeof(dst));
416 EXPECT(memcmp(expected, dst,
sizeof(expected)));
421 const char* src =
"\x80\xBF\x80\xBF\x80\xBF";
422 int32_t expected[] = {0x80, 0xBF, 0x80, 0xBF, 0x80, 0xBF};
424 memset(dst, 0,
sizeof(dst));
427 EXPECT(memcmp(expected, dst,
sizeof(expected)));
432 const char* src =
"\x80\xBF\x80\xBF\x80\xBF\x80";
433 int32_t expected[] = {0x80, 0xBF, 0x80, 0xBF, 0x80, 0xBF, 0x80};
435 memset(dst, 0,
sizeof(dst));
438 EXPECT(memcmp(expected, dst,
sizeof(expected)));
444 "\x80\x81\x82\x83\x84\x85\x86\x87"
445 "\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F"
446 "\x90\x91\x92\x93\x94\x95\x96\x97"
447 "\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F"
448 "\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7"
449 "\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF"
450 "\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7"
451 "\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF";
452 int32_t expected[] = {0x0};
454 for (
size_t i = 0; i < strlen(src); ++i) {
455 memset(dst, 0xFF,
sizeof(dst));
458 EXPECT(memcmp(expected, dst,
sizeof(expected)));
468 "\xC0\x20\xC1\x20\xC2\x20\xC3\x20"
469 "\xC4\x20\xC5\x20\xC6\x20\xC7\x20"
470 "\xC8\x20\xC9\x20\xCA\x20\xCB\x20"
471 "\xCC\x20\xCD\x20\xCE\x20\xCF\x20"
472 "\xD0\x20\xD1\x20\xD2\x20\xD3\x20"
473 "\xD4\x20\xD5\x20\xD6\x20\xD7\x20"
474 "\xD8\x20\xD9\x20\xDA\x20\xDB\x20"
475 "\xDC\x20\xDD\x20\xDE\x20\xDF\x20";
476 int32_t expected[] = {0x0};
478 for (
size_t i = 0; i < strlen(src); i += 2) {
479 memset(dst, 0xFF,
sizeof(dst));
482 EXPECT(memcmp(expected, dst,
sizeof(expected)));
490 "\xE0\x20\xE1\x20\xE2\x20\xE3\x20"
491 "\xE4\x20\xE5\x20\xE6\x20\xE7\x20"
492 "\xE8\x20\xE9\x20\xEA\x20\xEB\x20"
493 "\xEC\x20\xED\x20\xEE\x20\xEF\x20";
494 int32_t expected[] = {0x0};
496 for (
size_t i = 0; i < strlen(src); i += 2) {
497 memset(dst, 0xFF,
sizeof(dst));
500 EXPECT(memcmp(expected, dst,
sizeof(expected)));
508 "\xF0\x20\xF1\x20\xF2\x20\xF3\x20"
509 "\xF4\x20\xF5\x20\xF6\x20\xF7\x20";
510 int32_t expected[] = {0x0};
512 for (
size_t i = 0; i < strlen(src); i += 2) {
513 memset(dst, 0xFF,
sizeof(dst));
516 EXPECT(memcmp(expected, dst,
sizeof(expected)));
523 const char* src =
"\xF8\x20\xF9\x20\xFA\x20\xFB\x20";
524 int32_t expected[] = {0x0};
526 for (
size_t i = 0; i < strlen(src); i += 2) {
527 memset(dst, 0xFF,
sizeof(dst));
530 EXPECT(memcmp(expected, dst,
sizeof(expected)));
537 const char* src =
"\xFC\x20\xFD\x20";
538 int32_t expected[] = {0x0};
540 for (
size_t i = 0; i < strlen(src); i += 2) {
541 memset(dst, 0xFF,
sizeof(dst));
544 EXPECT(memcmp(expected, dst,
sizeof(expected)));
552 const char* src =
"\xC0";
553 int32_t expected[] = {0x0};
555 memset(dst, 0xFF,
sizeof(dst));
558 EXPECT(memcmp(expected, dst,
sizeof(expected)));
563 const char* src =
"\xE0\x80";
564 int32_t expected[] = {0x0};
566 memset(dst, 0xFF,
sizeof(dst));
569 EXPECT(memcmp(expected, dst,
sizeof(expected)));
574 const char* src =
"\xF0\x80\x80";
575 int32_t expected[] = {0x0};
577 memset(dst, 0xFF,
sizeof(dst));
580 EXPECT(memcmp(expected, dst,
sizeof(expected)));
585 const char* src =
"\xF8\x80\x80\x80";
586 int32_t expected[] = {0x0};
588 memset(dst, 0xFF,
sizeof(dst));
591 EXPECT(memcmp(expected, dst,
sizeof(expected)));
597 const char* src =
"\xFC\x80\x80\x80\x80";
598 int32_t expected[] = {0x0};
600 memset(dst, 0xFF,
sizeof(dst));
603 EXPECT(memcmp(expected, dst,
sizeof(expected)));
608 const char* src =
"\xDF";
609 int32_t expected[] = {0x0};
611 memset(dst, 0xFF,
sizeof(dst));
614 EXPECT(memcmp(expected, dst,
sizeof(expected)));
619 const char* src =
"\xEF\xBF";
620 int32_t expected[] = {0x0};
622 memset(dst, 0xFF,
sizeof(dst));
625 EXPECT(memcmp(expected, dst,
sizeof(expected)));
630 const char* src =
"\xF7\xBF\xBF";
631 int32_t expected[] = {0x0};
633 memset(dst, 0xFF,
sizeof(dst));
636 EXPECT(memcmp(expected, dst,
sizeof(expected)));
642 const char* src =
"\xFB\xBF\xBF\xBF";
643 int32_t expected[] = {0x0};
645 memset(dst, 0xFF,
sizeof(dst));
648 EXPECT(memcmp(expected, dst,
sizeof(expected)));
654 const char* src =
"\xFD\xBF\xBF\xBF\xBF";
655 int32_t expected[] = {0x0};
657 memset(dst, 0xFF,
sizeof(dst));
660 EXPECT(memcmp(expected, dst,
sizeof(expected)));
666 "\xC0\xE0\x80\xF0\x80\x80"
667 "\xF8\x80\x80\x80\xFC\x80"
668 "\x80\x80\x80\xDF\xEF\xBF"
669 "\xF7\xBF\xBF\xFB\xBF\xBF"
670 "\xBF\xFD\xBF\xBF\xBF\xBF";
671 int32_t expected[] = {0x0};
673 for (
size_t i = 0; i < strlen(src); ++i) {
674 for (
size_t j = 1; j < (strlen(src) - i); ++j) {
675 memset(dst, 0xFF,
sizeof(dst));
679 EXPECT(memcmp(expected, dst,
sizeof(expected)));
688 const char* src =
"\xFE";
689 int32_t expected[] = {0xFE};
691 memset(dst, 0,
sizeof(dst));
694 EXPECT(memcmp(expected, dst,
sizeof(expected)));
699 const char* src =
"\xFF";
700 int32_t expected[] = {0xFF};
702 memset(dst, 0,
sizeof(dst));
705 EXPECT(memcmp(expected, dst,
sizeof(expected)));
710 const char* src =
"\xFE\xFE\xFF\xFF";
711 int32_t expected[] = {0xFF};
713 memset(dst, 0,
sizeof(dst));
716 EXPECT(memcmp(expected, dst,
sizeof(expected)));
725 const char* src =
"\xC0\xAF";
726 int32_t expected[] = {0x2F};
728 memset(dst, 0,
sizeof(dst));
731 EXPECT(memcmp(expected, dst,
sizeof(expected)));
736 const char* src =
"\xE0\x80\xAF";
737 int32_t expected[] = {0x2F};
739 memset(dst, 0,
sizeof(dst));
742 EXPECT(memcmp(expected, dst,
sizeof(expected)));
747 const char* src =
"\xF0\x80\x80\xAF";
748 int32_t expected[] = {0x2F};
750 memset(dst, 0,
sizeof(dst));
753 EXPECT(memcmp(expected, dst,
sizeof(expected)));
758 const char* src =
"\xF8\x80\x80\x80\xAF";
759 int32_t expected[] = {0x2F};
761 memset(dst, 0,
sizeof(dst));
764 EXPECT(memcmp(expected, dst,
sizeof(expected)));
769 const char* src =
"\xFC\x80\x80\x80\x80\xAF";
770 int32_t expected[] = {0x2F};
772 memset(dst, 0,
sizeof(dst));
775 EXPECT(memcmp(expected, dst,
sizeof(expected)));
782 const char* src =
"\xC1\xBF";
783 int32_t expected[] = {0x7F};
785 memset(dst, 0,
sizeof(dst));
788 EXPECT(memcmp(expected, dst,
sizeof(expected)));
793 const char* src =
"\xE0\x9F\xBF";
794 int32_t expected[] = {0x7FF};
796 memset(dst, 0,
sizeof(dst));
799 EXPECT(memcmp(expected, dst,
sizeof(expected)));
804 const char* src =
"\xF0\x8F\xBF\xBF";
805 int32_t expected[] = {0xFFFF};
807 memset(dst, 0,
sizeof(dst));
810 EXPECT(memcmp(expected, dst,
sizeof(expected)));
815 const char* src =
"\xF8\x87\xBF\xBF\xBF";
816 int32_t expected[] = {0x1FFFFF};
818 memset(dst, 0,
sizeof(dst));
821 EXPECT(memcmp(expected, dst,
sizeof(expected)));
826 const char* src =
"\xFC\x83\xBF\xBF\xBF\xBF";
827 int32_t expected[] = {0x3FFFFFF};
829 memset(dst, 0,
sizeof(dst));
832 EXPECT(memcmp(expected, dst,
sizeof(expected)));
839 const char* src =
"\xC0\x80";
840 int32_t expected[] = {0x0};
842 memset(dst, 0xFF,
sizeof(dst));
845 EXPECT(memcmp(expected, dst,
sizeof(expected)));
850 const char* src =
"\xE0\x80\x80";
851 int32_t expected[] = {0x0};
853 memset(dst, 0xFF,
sizeof(dst));
856 EXPECT(memcmp(expected, dst,
sizeof(expected)));
861 const char* src =
"\xF0\x80\x80\x80";
862 int32_t expected[] = {0x0};
864 memset(dst, 0xFF,
sizeof(dst));
867 EXPECT(memcmp(expected, dst,
sizeof(expected)));
872 const char* src =
"\xF8\x80\x80\x80\x80";
873 int32_t expected[] = {0x0};
875 memset(dst, 0xFF,
sizeof(dst));
878 EXPECT(memcmp(expected, dst,
sizeof(expected)));
883 const char* src =
"\xFC\x80\x80\x80\x80\x80";
884 int32_t expected[] = {0x0};
886 memset(dst, 0xFF,
sizeof(dst));
889 EXPECT(memcmp(expected, dst,
sizeof(expected)));
898 const char* src =
"\xED\xA0\x80";
899 int32_t expected[] = {0xD800};
901 memset(dst, 0,
sizeof(dst));
904 EXPECT(!memcmp(expected, dst,
sizeof(expected)));
909 const char* src =
"\xED\xAD\xBF";
910 int32_t expected[] = {0xDB7F};
912 memset(dst, 0,
sizeof(dst));
915 EXPECT(!memcmp(expected, dst,
sizeof(expected)));
920 const char* src =
"\xED\xAE\x80";
921 int32_t expected[] = {0xDB80};
923 memset(dst, 0,
sizeof(dst));
926 EXPECT(!memcmp(expected, dst,
sizeof(expected)));
931 const char* src =
"\xED\xAF\xBF";
932 int32_t expected[] = {0xDBFF};
934 memset(dst, 0,
sizeof(dst));
937 EXPECT(!memcmp(expected, dst,
sizeof(expected)));
942 const char* src =
"\xED\xB0\x80";
943 int32_t expected[] = {0xDC00};
945 memset(dst, 0,
sizeof(dst));
948 EXPECT(!memcmp(expected, dst,
sizeof(expected)));
953 const char* src =
"\xED\xBE\x80";
954 int32_t expected[] = {0xDF80};
956 memset(dst, 0,
sizeof(dst));
959 EXPECT(!memcmp(expected, dst,
sizeof(expected)));
964 const char* src =
"\xED\xBF\xBF";
965 int32_t expected[] = {0xDFFF};
967 memset(dst, 0,
sizeof(dst));
970 EXPECT(!memcmp(expected, dst,
sizeof(expected)));
982 const char* src =
"\xED\xA0\x80\xED\xB0\x80";
983 int32_t expected[] = {0xD800, 0xDC00};
985 memset(dst, 0,
sizeof(dst));
988 EXPECT(!memcmp(expected, dst,
sizeof(expected)));
993 const char* src =
"\xED\xA0\x80\xED\xBF\xBF";
994 int32_t expected[] = {0xD800, 0xDFFF};
996 memset(dst, 0,
sizeof(dst));
999 EXPECT(!memcmp(expected, dst,
sizeof(expected)));
1004 const char* src =
"\xED\xAD\xBF\xED\xB0\x80";
1005 int32_t expected[] = {0xDB7F, 0xDC00};
1007 memset(dst, 0,
sizeof(dst));
1010 EXPECT(!memcmp(expected, dst,
sizeof(expected)));
1015 const char* src =
"\xED\xAD\xBF\xED\xBF\xBF";
1016 int32_t expected[] = {0xDB7F, 0xDFFF};
1018 memset(dst, 0,
sizeof(dst));
1021 EXPECT(!memcmp(expected, dst,
sizeof(expected)));
1026 const char* src =
"\xED\xAE\x80\xED\xB0\x80";
1027 int32_t expected[] = {0xDB80, 0xDC00};
1029 memset(dst, 0,
sizeof(dst));
1032 EXPECT(!memcmp(expected, dst,
sizeof(expected)));
1037 const char* src =
"\xED\xAE\x80\xED\xBF\xBF";
1038 int32_t expected[] = {0xDB80, 0xDFFF};
1040 memset(dst, 0,
sizeof(dst));
1043 EXPECT(!memcmp(expected, dst,
sizeof(expected)));
1048 const char* src =
"\xED\xAF\xBF\xED\xB0\x80";
1049 int32_t expected[] = {0xDBFF, 0xDC00};
1051 memset(dst, 0,
sizeof(dst));
1054 EXPECT(!memcmp(expected, dst,
sizeof(expected)));
1059 const char* src =
"\xED\xAF\xBF\xED\xBF\xBF";
1060 int32_t expected[] = {0xDBFF, 0xDFFF};
1062 memset(dst, 0,
sizeof(dst));
1065 EXPECT(!memcmp(expected, dst,
sizeof(expected)));
1072 const char* src =
"\xEF\xBF\xBE";
1073 int32_t expected[] = {0xFFFE};
1075 memset(dst, 0,
sizeof(dst));
1078 EXPECT(!memcmp(expected, dst,
sizeof(expected)));
1083 const char* src =
"\xEF\xBF\xBF";
1084 int32_t expected[] = {0xFFFF};
1086 memset(dst, 0,
sizeof(dst));
1089 EXPECT(!memcmp(expected, dst,
sizeof(expected)));