4 * Copyright (c) 2009-2011 project bchan
6 * This software is provided 'as-is', without any express or implied
7 * warranty. In no event will the authors be held liable for any damages
8 * arising from the use of this software.
10 * Permission is granted to anyone to use this software for any purpose,
11 * including commercial applications, and to alter it and redistribute it
12 * freely, subject to the following restrictions:
14 * 1. The origin of this software must not be misrepresented; you must not
15 * claim that you wrote the original software. If you use this software
16 * in a product, an acknowledgment in the product documentation would be
17 * appreciated but is not required.
19 * 2. Altered source versions must be plainly marked as such, and must not be
20 * misrepresented as being the original software.
22 * 3. This notice may not be removed or altered from any source
27 #include <btron/btron.h>
36 LOCAL tokenchecker_valuetuple_t test_tokenchecker_testdata_tuple_0001[] = {
45 LOCAL UB test_tokenchecker_testdata_etoken_0001[] = ":>";
47 LOCAL TEST_RESULT test_tokenchecker_1()
49 tokenchecker_t checker;
50 W i, j, len, len2, val, ret;
53 str = strdup(test_tokenchecker_testdata_tuple_0001[0].name);
56 tokenchecker_initialize(&checker,
57 test_tokenchecker_testdata_tuple_0001,
59 test_tokenchecker_testdata_etoken_0001);
61 for (i = 0; i < len; i++) {
62 ret = tokenchecker_inputchar(&checker, str[i], &val);
63 if (ret != TOKENCHECKER_CONTINUE) {
64 printf("tokenchecker_inputchar fail: right string\n");
66 return TEST_RESULT_FAIL;
68 tokenchecker_getlastmatchedstring(&checker, &str2, &len2);
69 if (strncmp(str, str2, len2) != 0) {
70 printf("tokenchecker_getlastmatchedstring fail: right string\n");
72 for (j = 0; j < len; j++) {
76 for (j = 0; j < len; j++) {
77 printf("%c", str2[j]);
81 return TEST_RESULT_FAIL;
84 ret = tokenchecker_inputchar(&checker, ':', &val);
85 if (ret != TOKENCHECKER_DETERMINE) {
86 printf("tokenchecker_inputchar fail: end character\n");
88 return TEST_RESULT_FAIL;
91 printf("tokenchecker_inputchar fail: select value\n");
93 return TEST_RESULT_FAIL;
95 tokenchecker_getlastmatchedstring(&checker, &str2, &len2);
96 if (strncmp(str, str2, len2) != 0) {
97 printf("tokenchecker_getlastmatchedstring fail: end token\n");
99 return TEST_RESULT_FAIL;
101 ret = tokenchecker_inputchar(&checker, ':', &val);
102 if (ret != TOKENCHECKER_AFTER_END) {
103 printf("tokenchecker_inputchar fail: after end\n");
105 return TEST_RESULT_FAIL;
109 return TEST_RESULT_PASS;
112 LOCAL TEST_RESULT test_tokenchecker_2()
114 tokenchecker_t checker;
115 W i, j, len, len2, val, ret;
118 str = strdup(test_tokenchecker_testdata_tuple_0001[1].name);
121 tokenchecker_initialize(&checker,
122 test_tokenchecker_testdata_tuple_0001,
124 test_tokenchecker_testdata_etoken_0001);
126 for (i = 0; i < len; i++) {
127 ret = tokenchecker_inputchar(&checker, str[i], &val);
128 if (ret != TOKENCHECKER_CONTINUE) {
129 printf("tokenchecker_inputchar fail: right string\n");
131 return TEST_RESULT_FAIL;
133 tokenchecker_getlastmatchedstring(&checker, &str2, &len2);
134 if (strncmp(str, str2, len2) != 0) {
135 printf("tokenchecker_getlastmatchedstring fail: right string\n");
137 for (j = 0; j < len; j++) {
138 printf("%c", str[j]);
141 for (j = 0; j < len; j++) {
142 printf("%c", str2[j]);
146 return TEST_RESULT_FAIL;
149 ret = tokenchecker_inputchar(&checker, ':', &val);
150 if (ret != TOKENCHECKER_DETERMINE) {
151 printf("tokenchecker_inputchar fail: end character\n");
153 return TEST_RESULT_FAIL;
156 printf("tokenchecker_inputchar fail: select value\n");
158 return TEST_RESULT_FAIL;
160 tokenchecker_getlastmatchedstring(&checker, &str2, &len2);
161 if (strncmp(str, str2, len2) != 0) {
162 printf("tokenchecker_getlastmatchedstring fail: end token\n");
164 return TEST_RESULT_FAIL;
166 ret = tokenchecker_inputchar(&checker, ':', &val);
167 if (ret != TOKENCHECKER_AFTER_END) {
168 printf("tokenchecker_inputchar fail: after end\n");
170 return TEST_RESULT_FAIL;
174 return TEST_RESULT_PASS;
177 LOCAL TEST_RESULT test_tokenchecker_3()
179 tokenchecker_t checker;
180 W i, j, len, len2, val, ret;
183 str = strdup(test_tokenchecker_testdata_tuple_0001[2].name);
186 tokenchecker_initialize(&checker,
187 test_tokenchecker_testdata_tuple_0001,
189 test_tokenchecker_testdata_etoken_0001);
191 for (i = 0; i < len; i++) {
192 ret = tokenchecker_inputchar(&checker, str[i], &val);
193 if (ret != TOKENCHECKER_CONTINUE) {
194 printf("tokenchecker_inputchar fail: right string\n");
196 return TEST_RESULT_FAIL;
198 tokenchecker_getlastmatchedstring(&checker, &str2, &len2);
199 if (strncmp(str, str2, len2) != 0) {
200 printf("tokenchecker_getlastmatchedstring fail: right string\n");
202 for (j = 0; j < len; j++) {
203 printf("%c", str[j]);
206 for (j = 0; j < len; j++) {
207 printf("%c", str2[j]);
211 return TEST_RESULT_FAIL;
214 ret = tokenchecker_inputchar(&checker, ':', &val);
215 if (ret != TOKENCHECKER_DETERMINE) {
216 printf("tokenchecker_inputchar fail: end character\n");
218 return TEST_RESULT_FAIL;
221 printf("tokenchecker_inputchar fail: select value\n");
223 return TEST_RESULT_FAIL;
225 tokenchecker_getlastmatchedstring(&checker, &str2, &len2);
226 if (strncmp(str, str2, len2) != 0) {
227 printf("tokenchecker_getlastmatchedstring fail: end token\n");
229 return TEST_RESULT_FAIL;
231 ret = tokenchecker_inputchar(&checker, ':', &val);
232 if (ret != TOKENCHECKER_AFTER_END) {
233 printf("tokenchecker_inputchar fail: after end\n");
235 return TEST_RESULT_FAIL;
239 return TEST_RESULT_PASS;
242 LOCAL TEST_RESULT test_tokenchecker_4()
244 tokenchecker_t checker;
245 W i, j, len, len2, val, ret;
248 str = strdup(test_tokenchecker_testdata_tuple_0001[3].name);
251 tokenchecker_initialize(&checker,
252 test_tokenchecker_testdata_tuple_0001,
254 test_tokenchecker_testdata_etoken_0001);
256 for (i = 0; i < len; i++) {
257 ret = tokenchecker_inputchar(&checker, str[i], &val);
258 if (ret != TOKENCHECKER_CONTINUE) {
259 printf("tokenchecker_inputchar fail: right string\n");
261 return TEST_RESULT_FAIL;
263 tokenchecker_getlastmatchedstring(&checker, &str2, &len2);
264 if (strncmp(str, str2, len2) != 0) {
265 printf("tokenchecker_getlastmatchedstring fail: right string\n");
267 for (j = 0; j < len; j++) {
268 printf("%c", str[j]);
271 for (j = 0; j < len; j++) {
272 printf("%c", str2[j]);
276 return TEST_RESULT_FAIL;
279 ret = tokenchecker_inputchar(&checker, ':', &val);
280 if (ret != TOKENCHECKER_DETERMINE) {
281 printf("tokenchecker_inputchar fail: end character\n");
283 return TEST_RESULT_FAIL;
286 printf("tokenchecker_inputchar fail: select value\n");
288 return TEST_RESULT_FAIL;
290 tokenchecker_getlastmatchedstring(&checker, &str2, &len2);
291 if (strncmp(str, str2, len2) != 0) {
292 printf("tokenchecker_getlastmatchedstring fail: end token\n");
294 return TEST_RESULT_FAIL;
296 ret = tokenchecker_inputchar(&checker, ':', &val);
297 if (ret != TOKENCHECKER_AFTER_END) {
298 printf("tokenchecker_inputchar fail: after end\n");
300 return TEST_RESULT_FAIL;
304 return TEST_RESULT_PASS;
307 LOCAL TEST_RESULT test_tokenchecker_5()
309 tokenchecker_t checker;
310 W i, j, len, len2, val, ret;
313 str = strdup(test_tokenchecker_testdata_tuple_0001[4].name);
316 tokenchecker_initialize(&checker,
317 test_tokenchecker_testdata_tuple_0001,
319 test_tokenchecker_testdata_etoken_0001);
321 for (i = 0; i < len; i++) {
322 ret = tokenchecker_inputchar(&checker, str[i], &val);
323 if (ret != TOKENCHECKER_CONTINUE) {
324 printf("tokenchecker_inputchar fail: right string\n");
326 return TEST_RESULT_FAIL;
328 tokenchecker_getlastmatchedstring(&checker, &str2, &len2);
329 if (strncmp(str, str2, len2) != 0) {
330 printf("tokenchecker_getlastmatchedstring fail: right string\n");
332 for (j = 0; j < len; j++) {
333 printf("%c", str[j]);
336 for (j = 0; j < len; j++) {
337 printf("%c", str2[j]);
341 return TEST_RESULT_FAIL;
344 ret = tokenchecker_inputchar(&checker, ':', &val);
345 if (ret != TOKENCHECKER_DETERMINE) {
346 printf("tokenchecker_inputchar fail: end character\n");
348 return TEST_RESULT_FAIL;
351 printf("tokenchecker_inputchar fail: select value\n");
353 return TEST_RESULT_FAIL;
355 tokenchecker_getlastmatchedstring(&checker, &str2, &len2);
356 if (strncmp(str, str2, len2) != 0) {
357 printf("tokenchecker_getlastmatchedstring fail: end token\n");
359 return TEST_RESULT_FAIL;
361 ret = tokenchecker_inputchar(&checker, ':', &val);
362 if (ret != TOKENCHECKER_AFTER_END) {
363 printf("tokenchecker_inputchar fail: after end\n");
365 return TEST_RESULT_FAIL;
369 return TEST_RESULT_PASS;
372 LOCAL TEST_RESULT test_tokenchecker_6()
374 tokenchecker_t checker;
375 W i, j, len, len2, val, ret;
378 str = strdup(test_tokenchecker_testdata_tuple_0001[5].name);
381 tokenchecker_initialize(&checker,
382 test_tokenchecker_testdata_tuple_0001,
384 test_tokenchecker_testdata_etoken_0001);
386 for (i = 0; i < len; i++) {
387 ret = tokenchecker_inputchar(&checker, str[i], &val);
388 if (ret != TOKENCHECKER_CONTINUE) {
389 printf("tokenchecker_inputchar fail: right string\n");
391 return TEST_RESULT_FAIL;
393 tokenchecker_getlastmatchedstring(&checker, &str2, &len2);
394 if (strncmp(str, str2, len2) != 0) {
395 printf("tokenchecker_getlastmatchedstring fail: right string\n");
397 for (j = 0; j < len; j++) {
398 printf("%c", str[j]);
401 for (j = 0; j < len; j++) {
402 printf("%c", str2[j]);
406 return TEST_RESULT_FAIL;
409 ret = tokenchecker_inputchar(&checker, ':', &val);
410 if (ret != TOKENCHECKER_DETERMINE) {
411 printf("tokenchecker_inputchar fail: end character\n");
413 return TEST_RESULT_FAIL;
416 printf("tokenchecker_inputchar fail: select value\n");
418 return TEST_RESULT_FAIL;
420 tokenchecker_getlastmatchedstring(&checker, &str2, &len2);
421 if (strncmp(str, str2, len2) != 0) {
422 printf("tokenchecker_getlastmatchedstring fail: end token\n");
424 return TEST_RESULT_FAIL;
426 ret = tokenchecker_inputchar(&checker, ':', &val);
427 if (ret != TOKENCHECKER_AFTER_END) {
428 printf("tokenchecker_inputchar fail: after end\n");
430 return TEST_RESULT_FAIL;
434 return TEST_RESULT_PASS;
437 LOCAL TEST_RESULT test_tokenchecker_7()
439 tokenchecker_t checker;
440 W i, j, len, len2, val, ret;
443 str = strdup(test_tokenchecker_testdata_tuple_0001[6].name);
446 tokenchecker_initialize(&checker,
447 test_tokenchecker_testdata_tuple_0001,
449 test_tokenchecker_testdata_etoken_0001);
451 for (i = 0; i < len; i++) {
452 ret = tokenchecker_inputchar(&checker, str[i], &val);
453 if (ret != TOKENCHECKER_CONTINUE) {
454 printf("tokenchecker_inputchar fail: right string\n");
456 return TEST_RESULT_FAIL;
458 tokenchecker_getlastmatchedstring(&checker, &str2, &len2);
459 if (strncmp(str, str2, len2) != 0) {
460 printf("tokenchecker_getlastmatchedstring fail: right string\n");
462 for (j = 0; j < len; j++) {
463 printf("%c", str[j]);
466 for (j = 0; j < len; j++) {
467 printf("%c", str2[j]);
471 return TEST_RESULT_FAIL;
474 ret = tokenchecker_inputchar(&checker, ':', &val);
475 if (ret != TOKENCHECKER_DETERMINE) {
476 printf("tokenchecker_inputchar fail: end character\n");
478 return TEST_RESULT_FAIL;
481 printf("tokenchecker_inputchar fail: select value\n");
483 return TEST_RESULT_FAIL;
485 tokenchecker_getlastmatchedstring(&checker, &str2, &len2);
486 if (strncmp(str, str2, len2) != 0) {
487 printf("tokenchecker_getlastmatchedstring fail: end token\n");
489 return TEST_RESULT_FAIL;
491 ret = tokenchecker_inputchar(&checker, ':', &val);
492 if (ret != TOKENCHECKER_AFTER_END) {
493 printf("tokenchecker_inputchar fail: after end\n");
495 return TEST_RESULT_FAIL;
499 return TEST_RESULT_PASS;
502 LOCAL TEST_RESULT test_tokenchecker_nomatch_getlastmatchedstring_sequence(tokenchecker_t *checker, W num, UB *teststr, W teststr_len)
504 W i, j, len2, ret, val;
507 for (i = 0; i < num; i++) {
508 ret = tokenchecker_inputchar(checker, teststr[i], &val);
509 if (ret != TOKENCHECKER_CONTINUE) {
510 printf("tokenchecker_inputchar fail: right string\n");
511 return TEST_RESULT_FAIL;
514 ret = tokenchecker_inputchar(checker, 'z', &val);
515 if (ret != TOKENCHECKER_CONTINUE_NOMATCH) {
516 printf("tokenchecker_inputchar fail: nomatch char\n");
517 return TEST_RESULT_FAIL;
519 tokenchecker_getlastmatchedstring(checker, &str2, &len2);
521 printf("tokenchecker_getlastmatchedstring fail: length\n");
522 return TEST_RESULT_FAIL;
524 if (strncmp(teststr, str2, len2) != 0) {
525 printf("tokenchecker_getlastmatchedstring fail: nomatch string\n");
527 for (j = 0; j < len2; j++) {
528 printf("%c", teststr[j]);
531 for (j = 0; j < len2; j++) {
532 printf("%c", str2[j]);
535 return TEST_RESULT_FAIL;
538 return TEST_RESULT_PASS;
541 LOCAL TEST_RESULT test_tokenchecker_8()
543 tokenchecker_t checker;
548 str = strdup(test_tokenchecker_testdata_tuple_0001[0].name);
551 tokenchecker_initialize(&checker,
552 test_tokenchecker_testdata_tuple_0001,
554 test_tokenchecker_testdata_etoken_0001);
556 for (i = 1; i < len; i++) {
557 result = test_tokenchecker_nomatch_getlastmatchedstring_sequence(&checker, i, str, len);
558 if (result != TEST_RESULT_PASS) {
561 tokenchecker_clear(&checker);
566 return TEST_RESULT_PASS;
569 LOCAL TEST_RESULT test_tokenchecker_9()
571 tokenchecker_t checker;
576 str = strdup(test_tokenchecker_testdata_tuple_0001[1].name);
579 tokenchecker_initialize(&checker,
580 test_tokenchecker_testdata_tuple_0001,
582 test_tokenchecker_testdata_etoken_0001);
584 for (i = 1; i < len; i++) {
585 result = test_tokenchecker_nomatch_getlastmatchedstring_sequence(&checker, i, str, len);
586 if (result != TEST_RESULT_PASS) {
589 tokenchecker_clear(&checker);
594 return TEST_RESULT_PASS;
597 LOCAL TEST_RESULT test_tokenchecker_10()
599 tokenchecker_t checker;
604 str = strdup(test_tokenchecker_testdata_tuple_0001[2].name);
607 tokenchecker_initialize(&checker,
608 test_tokenchecker_testdata_tuple_0001,
610 test_tokenchecker_testdata_etoken_0001);
612 for (i = 1; i < len; i++) {
613 result = test_tokenchecker_nomatch_getlastmatchedstring_sequence(&checker, i, str, len);
614 if (result != TEST_RESULT_PASS) {
617 tokenchecker_clear(&checker);
622 return TEST_RESULT_PASS;
625 LOCAL TEST_RESULT test_tokenchecker_11()
627 tokenchecker_t checker;
632 str = strdup(test_tokenchecker_testdata_tuple_0001[3].name);
635 tokenchecker_initialize(&checker,
636 test_tokenchecker_testdata_tuple_0001,
638 test_tokenchecker_testdata_etoken_0001);
640 for (i = 1; i < len; i++) {
641 result = test_tokenchecker_nomatch_getlastmatchedstring_sequence(&checker, i, str, len);
642 if (result != TEST_RESULT_PASS) {
645 tokenchecker_clear(&checker);
650 return TEST_RESULT_PASS;
653 LOCAL TEST_RESULT test_tokenchecker_12()
655 tokenchecker_t checker;
660 str = strdup(test_tokenchecker_testdata_tuple_0001[4].name);
663 tokenchecker_initialize(&checker,
664 test_tokenchecker_testdata_tuple_0001,
666 test_tokenchecker_testdata_etoken_0001);
668 for (i = 1; i < len; i++) {
669 result = test_tokenchecker_nomatch_getlastmatchedstring_sequence(&checker, i, str, len);
670 if (result != TEST_RESULT_PASS) {
673 tokenchecker_clear(&checker);
678 return TEST_RESULT_PASS;
681 LOCAL TEST_RESULT test_tokenchecker_13()
683 tokenchecker_t checker;
688 str = strdup(test_tokenchecker_testdata_tuple_0001[5].name);
691 tokenchecker_initialize(&checker,
692 test_tokenchecker_testdata_tuple_0001,
694 test_tokenchecker_testdata_etoken_0001);
696 for (i = 1; i < len; i++) {
697 result = test_tokenchecker_nomatch_getlastmatchedstring_sequence(&checker, i, str, len);
698 if (result != TEST_RESULT_PASS) {
701 tokenchecker_clear(&checker);
706 return TEST_RESULT_PASS;
709 LOCAL TEST_RESULT test_tokenchecker_14()
711 tokenchecker_t checker;
716 str = strdup(test_tokenchecker_testdata_tuple_0001[6].name);
719 tokenchecker_initialize(&checker,
720 test_tokenchecker_testdata_tuple_0001,
722 test_tokenchecker_testdata_etoken_0001);
724 for (i = 1; i < len; i++) {
725 result = test_tokenchecker_nomatch_getlastmatchedstring_sequence(&checker, i, str, len);
726 if (result != TEST_RESULT_PASS) {
729 tokenchecker_clear(&checker);
734 return TEST_RESULT_PASS;
737 /* testing endinput */
739 LOCAL TEST_RESULT test_tokenchecker_15()
741 tokenchecker_t checker;
742 W i, j, len, len2, val, ret;
745 str = strdup(test_tokenchecker_testdata_tuple_0001[0].name);
748 tokenchecker_initialize(&checker,
749 test_tokenchecker_testdata_tuple_0001,
751 test_tokenchecker_testdata_etoken_0001);
753 for (i = 0; i < len; i++) {
754 ret = tokenchecker_inputchar(&checker, str[i], &val);
755 if (ret != TOKENCHECKER_CONTINUE) {
756 printf("tokenchecker_inputchar fail: right string\n");
758 return TEST_RESULT_FAIL;
760 tokenchecker_getlastmatchedstring(&checker, &str2, &len2);
761 if (strncmp(str, str2, len2) != 0) {
762 printf("tokenchecker_getlastmatchedstring fail: right string\n");
764 for (j = 0; j < len; j++) {
765 printf("%c", str[j]);
768 for (j = 0; j < len; j++) {
769 printf("%c", str2[j]);
773 return TEST_RESULT_FAIL;
776 ret = tokenchecker_endinput(&checker, &val);
777 if (ret != TOKENCHECKER_DETERMINE) {
778 printf("tokenchecker_endinput fail\n");
780 return TEST_RESULT_FAIL;
783 printf("tokenchecker_endinput fail: select value\n");
785 return TEST_RESULT_FAIL;
787 tokenchecker_getlastmatchedstring(&checker, &str2, &len2);
788 if (strncmp(str, str2, len2) != 0) {
789 printf("tokenchecker_getlastmatchedstring fail: end token\n");
791 return TEST_RESULT_FAIL;
793 ret = tokenchecker_inputchar(&checker, ':', &val);
794 if (ret != TOKENCHECKER_AFTER_END) {
795 printf("tokenchecker_inputchar fail: after end\n");
797 return TEST_RESULT_FAIL;
801 return TEST_RESULT_PASS;
804 LOCAL TEST_RESULT test_tokenchecker_16()
806 tokenchecker_t checker;
807 W i, j, len, len2, val, ret;
810 str = strdup(test_tokenchecker_testdata_tuple_0001[1].name);
813 tokenchecker_initialize(&checker,
814 test_tokenchecker_testdata_tuple_0001,
816 test_tokenchecker_testdata_etoken_0001);
818 for (i = 0; i < len; i++) {
819 ret = tokenchecker_inputchar(&checker, str[i], &val);
820 if (ret != TOKENCHECKER_CONTINUE) {
821 printf("tokenchecker_inputchar fail: right string\n");
823 return TEST_RESULT_FAIL;
825 tokenchecker_getlastmatchedstring(&checker, &str2, &len2);
826 if (strncmp(str, str2, len2) != 0) {
827 printf("tokenchecker_getlastmatchedstring fail: right string\n");
829 for (j = 0; j < len; j++) {
830 printf("%c", str[j]);
833 for (j = 0; j < len; j++) {
834 printf("%c", str2[j]);
838 return TEST_RESULT_FAIL;
841 ret = tokenchecker_endinput(&checker, &val);
842 if (ret != TOKENCHECKER_DETERMINE) {
843 printf("tokenchecker_endinput fail\n");
845 return TEST_RESULT_FAIL;
848 printf("tokenchecker_endinput fail: select value\n");
850 return TEST_RESULT_FAIL;
852 tokenchecker_getlastmatchedstring(&checker, &str2, &len2);
853 if (strncmp(str, str2, len2) != 0) {
854 printf("tokenchecker_getlastmatchedstring fail: end token\n");
856 return TEST_RESULT_FAIL;
858 ret = tokenchecker_inputchar(&checker, ':', &val);
859 if (ret != TOKENCHECKER_AFTER_END) {
860 printf("tokenchecker_inputchar fail: after end\n");
862 return TEST_RESULT_FAIL;
866 return TEST_RESULT_PASS;
869 LOCAL TEST_RESULT test_tokenchecker_17()
871 tokenchecker_t checker;
872 W i, j, len, len2, val, ret;
875 str = strdup(test_tokenchecker_testdata_tuple_0001[2].name);
878 tokenchecker_initialize(&checker,
879 test_tokenchecker_testdata_tuple_0001,
881 test_tokenchecker_testdata_etoken_0001);
883 for (i = 0; i < len; i++) {
884 ret = tokenchecker_inputchar(&checker, str[i], &val);
885 if (ret != TOKENCHECKER_CONTINUE) {
886 printf("tokenchecker_inputchar fail: right string\n");
888 return TEST_RESULT_FAIL;
890 tokenchecker_getlastmatchedstring(&checker, &str2, &len2);
891 if (strncmp(str, str2, len2) != 0) {
892 printf("tokenchecker_getlastmatchedstring fail: right string\n");
894 for (j = 0; j < len; j++) {
895 printf("%c", str[j]);
898 for (j = 0; j < len; j++) {
899 printf("%c", str2[j]);
903 return TEST_RESULT_FAIL;
906 ret = tokenchecker_endinput(&checker, &val);
907 if (ret != TOKENCHECKER_DETERMINE) {
908 printf("tokenchecker_endinput fail\n");
910 return TEST_RESULT_FAIL;
913 printf("tokenchecker_endinput fail: select value\n");
915 return TEST_RESULT_FAIL;
917 tokenchecker_getlastmatchedstring(&checker, &str2, &len2);
918 if (strncmp(str, str2, len2) != 0) {
919 printf("tokenchecker_getlastmatchedstring fail: end token\n");
921 return TEST_RESULT_FAIL;
923 ret = tokenchecker_inputchar(&checker, ':', &val);
924 if (ret != TOKENCHECKER_AFTER_END) {
925 printf("tokenchecker_inputchar fail: after end\n");
927 return TEST_RESULT_FAIL;
931 return TEST_RESULT_PASS;
934 LOCAL TEST_RESULT test_tokenchecker_18()
936 tokenchecker_t checker;
937 W i, j, len, len2, val, ret;
940 str = strdup(test_tokenchecker_testdata_tuple_0001[3].name);
943 tokenchecker_initialize(&checker,
944 test_tokenchecker_testdata_tuple_0001,
946 test_tokenchecker_testdata_etoken_0001);
948 for (i = 0; i < len; i++) {
949 ret = tokenchecker_inputchar(&checker, str[i], &val);
950 if (ret != TOKENCHECKER_CONTINUE) {
951 printf("tokenchecker_inputchar fail: right string\n");
953 return TEST_RESULT_FAIL;
955 tokenchecker_getlastmatchedstring(&checker, &str2, &len2);
956 if (strncmp(str, str2, len2) != 0) {
957 printf("tokenchecker_getlastmatchedstring fail: right string\n");
959 for (j = 0; j < len; j++) {
960 printf("%c", str[j]);
963 for (j = 0; j < len; j++) {
964 printf("%c", str2[j]);
968 return TEST_RESULT_FAIL;
971 ret = tokenchecker_endinput(&checker, &val);
972 if (ret != TOKENCHECKER_DETERMINE) {
973 printf("tokenchecker_endinput fail\n");
975 return TEST_RESULT_FAIL;
978 printf("tokenchecker_endinput fail: select value\n");
980 return TEST_RESULT_FAIL;
982 tokenchecker_getlastmatchedstring(&checker, &str2, &len2);
983 if (strncmp(str, str2, len2) != 0) {
984 printf("tokenchecker_getlastmatchedstring fail: end token\n");
986 return TEST_RESULT_FAIL;
988 ret = tokenchecker_inputchar(&checker, ':', &val);
989 if (ret != TOKENCHECKER_AFTER_END) {
990 printf("tokenchecker_inputchar fail: after end\n");
992 return TEST_RESULT_FAIL;
996 return TEST_RESULT_PASS;
999 LOCAL TEST_RESULT test_tokenchecker_19()
1001 tokenchecker_t checker;
1002 W i, j, len, len2, val, ret;
1005 str = strdup(test_tokenchecker_testdata_tuple_0001[4].name);
1008 tokenchecker_initialize(&checker,
1009 test_tokenchecker_testdata_tuple_0001,
1011 test_tokenchecker_testdata_etoken_0001);
1013 for (i = 0; i < len; i++) {
1014 ret = tokenchecker_inputchar(&checker, str[i], &val);
1015 if (ret != TOKENCHECKER_CONTINUE) {
1016 printf("tokenchecker_inputchar fail: right string\n");
1018 return TEST_RESULT_FAIL;
1020 tokenchecker_getlastmatchedstring(&checker, &str2, &len2);
1021 if (strncmp(str, str2, len2) != 0) {
1022 printf("tokenchecker_getlastmatchedstring fail: right string\n");
1024 for (j = 0; j < len; j++) {
1025 printf("%c", str[j]);
1028 for (j = 0; j < len; j++) {
1029 printf("%c", str2[j]);
1033 return TEST_RESULT_FAIL;
1036 ret = tokenchecker_endinput(&checker, &val);
1037 if (ret != TOKENCHECKER_DETERMINE) {
1038 printf("tokenchecker_endinput fail\n");
1040 return TEST_RESULT_FAIL;
1043 printf("tokenchecker_endinput fail: select value\n");
1045 return TEST_RESULT_FAIL;
1047 tokenchecker_getlastmatchedstring(&checker, &str2, &len2);
1048 if (strncmp(str, str2, len2) != 0) {
1049 printf("tokenchecker_getlastmatchedstring fail: end token\n");
1051 return TEST_RESULT_FAIL;
1053 ret = tokenchecker_inputchar(&checker, ':', &val);
1054 if (ret != TOKENCHECKER_AFTER_END) {
1055 printf("tokenchecker_inputchar fail: after end\n");
1057 return TEST_RESULT_FAIL;
1061 return TEST_RESULT_PASS;
1064 LOCAL TEST_RESULT test_tokenchecker_20()
1066 tokenchecker_t checker;
1067 W i, j, len, len2, val, ret;
1070 str = strdup(test_tokenchecker_testdata_tuple_0001[5].name);
1073 tokenchecker_initialize(&checker,
1074 test_tokenchecker_testdata_tuple_0001,
1076 test_tokenchecker_testdata_etoken_0001);
1078 for (i = 0; i < len; i++) {
1079 ret = tokenchecker_inputchar(&checker, str[i], &val);
1080 if (ret != TOKENCHECKER_CONTINUE) {
1081 printf("tokenchecker_inputchar fail: right string\n");
1083 return TEST_RESULT_FAIL;
1085 tokenchecker_getlastmatchedstring(&checker, &str2, &len2);
1086 if (strncmp(str, str2, len2) != 0) {
1087 printf("tokenchecker_getlastmatchedstring fail: right string\n");
1089 for (j = 0; j < len; j++) {
1090 printf("%c", str[j]);
1093 for (j = 0; j < len; j++) {
1094 printf("%c", str2[j]);
1098 return TEST_RESULT_FAIL;
1101 ret = tokenchecker_endinput(&checker, &val);
1102 if (ret != TOKENCHECKER_DETERMINE) {
1103 printf("tokenchecker_endinput fail\n");
1105 return TEST_RESULT_FAIL;
1108 printf("tokenchecker_endinput fail: select value\n");
1110 return TEST_RESULT_FAIL;
1112 tokenchecker_getlastmatchedstring(&checker, &str2, &len2);
1113 if (strncmp(str, str2, len2) != 0) {
1114 printf("tokenchecker_getlastmatchedstring fail: end token\n");
1116 return TEST_RESULT_FAIL;
1118 ret = tokenchecker_inputchar(&checker, ':', &val);
1119 if (ret != TOKENCHECKER_AFTER_END) {
1120 printf("tokenchecker_inputchar fail: after end\n");
1122 return TEST_RESULT_FAIL;
1126 return TEST_RESULT_PASS;
1129 LOCAL TEST_RESULT test_tokenchecker_21()
1131 tokenchecker_t checker;
1132 W i, j, len, len2, val, ret;
1135 str = strdup(test_tokenchecker_testdata_tuple_0001[6].name);
1138 tokenchecker_initialize(&checker,
1139 test_tokenchecker_testdata_tuple_0001,
1141 test_tokenchecker_testdata_etoken_0001);
1143 for (i = 0; i < len; i++) {
1144 ret = tokenchecker_inputchar(&checker, str[i], &val);
1145 if (ret != TOKENCHECKER_CONTINUE) {
1146 printf("tokenchecker_inputchar fail: right string\n");
1148 return TEST_RESULT_FAIL;
1150 tokenchecker_getlastmatchedstring(&checker, &str2, &len2);
1151 if (strncmp(str, str2, len2) != 0) {
1152 printf("tokenchecker_getlastmatchedstring fail: right string\n");
1154 for (j = 0; j < len; j++) {
1155 printf("%c", str[j]);
1158 for (j = 0; j < len; j++) {
1159 printf("%c", str2[j]);
1163 return TEST_RESULT_FAIL;
1166 ret = tokenchecker_endinput(&checker, &val);
1167 if (ret != TOKENCHECKER_DETERMINE) {
1168 printf("tokenchecker_endinput fail\n");
1170 return TEST_RESULT_FAIL;
1173 printf("tokenchecker_endinput fail: select value\n");
1175 return TEST_RESULT_FAIL;
1177 tokenchecker_getlastmatchedstring(&checker, &str2, &len2);
1178 if (strncmp(str, str2, len2) != 0) {
1179 printf("tokenchecker_getlastmatchedstring fail: end token\n");
1181 return TEST_RESULT_FAIL;
1183 ret = tokenchecker_inputchar(&checker, ':', &val);
1184 if (ret != TOKENCHECKER_AFTER_END) {
1185 printf("tokenchecker_inputchar fail: after end\n");
1187 return TEST_RESULT_FAIL;
1191 return TEST_RESULT_PASS;
1194 LOCAL VOID test_parselib_printresult(TEST_RESULT (*proc)(), B *test_name)
1198 printf("test_parselib: %s\n", test_name);
1199 printf("---------------------------------------------\n");
1201 if (result == TEST_RESULT_PASS) {
1202 printf("--pass---------------------------------------\n");
1204 printf("--fail---------------------------------------\n");
1206 printf("---------------------------------------------\n");
1209 EXPORT VOID test_parselib_main()
1211 test_parselib_printresult(test_tokenchecker_1, "test_tokenchecker_1");
1212 test_parselib_printresult(test_tokenchecker_2, "test_tokenchecker_2");
1213 test_parselib_printresult(test_tokenchecker_3, "test_tokenchecker_3");
1214 test_parselib_printresult(test_tokenchecker_4, "test_tokenchecker_4");
1215 test_parselib_printresult(test_tokenchecker_5, "test_tokenchecker_5");
1216 test_parselib_printresult(test_tokenchecker_6, "test_tokenchecker_6");
1217 test_parselib_printresult(test_tokenchecker_7, "test_tokenchecker_7");
1218 test_parselib_printresult(test_tokenchecker_8, "test_tokenchecker_8");
1219 test_parselib_printresult(test_tokenchecker_9, "test_tokenchecker_9");
1220 test_parselib_printresult(test_tokenchecker_10, "test_tokenchecker_10");
1221 test_parselib_printresult(test_tokenchecker_11, "test_tokenchecker_11");
1222 test_parselib_printresult(test_tokenchecker_12, "test_tokenchecker_12");
1223 test_parselib_printresult(test_tokenchecker_13, "test_tokenchecker_13");
1224 test_parselib_printresult(test_tokenchecker_14, "test_tokenchecker_14");
1225 test_parselib_printresult(test_tokenchecker_15, "test_tokenchecker_15");
1226 test_parselib_printresult(test_tokenchecker_16, "test_tokenchecker_16");
1227 test_parselib_printresult(test_tokenchecker_17, "test_tokenchecker_17");
1228 test_parselib_printresult(test_tokenchecker_18, "test_tokenchecker_18");
1229 test_parselib_printresult(test_tokenchecker_19, "test_tokenchecker_19");
1230 test_parselib_printresult(test_tokenchecker_20, "test_tokenchecker_20");
1231 test_parselib_printresult(test_tokenchecker_21, "test_tokenchecker_21");