#include #include #include // FIXME: Add more tests. TestResult test_basic_scanf() { char hello[21]; char world[21]; int parsed = sscanf("hello world", "%20s %20s", hello, world); validate(parsed == 2); validate(!strcmp(hello, "hello")); validate(!strcmp(world, "world")); test_success; } TestResult test_incomplete_scanf() { char hello[21]; char world[21]; int parsed = sscanf("hello ", "%20s %20s", hello, world); validate(parsed == 1); validate(!strcmp(hello, "hello")); test_success; } TestResult test_integer_scanf() { int hour; int min; int parsed = sscanf("23:59", "%d:%d", &hour, &min); validate(parsed == 2); validate(hour == 23); validate(min == 59); test_success; } TestResult test_integer_auto_base_scanf() { int a; int b; int c; int parsed = sscanf("65, \t0x23, 0755", "%i, %i, %i", &a, &b, &c); validate(parsed == 3); validate(a == 65); validate(b == 0x23); validate(c == 0755); test_success; } TestResult test_scanf_characters_consumed() { int hour; int min; int nr_chars; int parsed = sscanf("23:59", "%d:%d%n", &hour, &min, &nr_chars); validate(parsed == 2); validate(hour == 23); validate(min == 59); validate(nr_chars == 5); test_success; } Result test_main() { test_prelude; run_test(test_basic_scanf); run_test(test_incomplete_scanf); run_test(test_integer_scanf); run_test(test_integer_auto_base_scanf); run_test(test_scanf_characters_consumed); return {}; }