]> pd.if.org Git - pdclib/blob - testing/scanf_testcases.h
Some testcases for scanf(). Fixed bug with %*... . Fixed artifact in Makefile.
[pdclib] / testing / scanf_testcases.h
1 {
2     char buffer[100];
3     int i;
4     unsigned int u;
5     /* basic: reading of three-char string */
6     SCANF_TEST( 1, "foo", "%3c", buffer );
7     TESTCASE( memcmp( buffer, "foo", 3 ) == 0 );
8 #ifndef TEST_CONVERSION_ONLY
9     /* %% for single % */
10     SCANF_TEST( 1, "%x", "%%%c", buffer );
11     TESTCASE( buffer[0] == 'x' );
12     /* * to skip assignment */
13     SCANF_TEST( 1, "3xfoo", "%*dx%3c", buffer );
14     TESTCASE( memcmp( buffer, "foo", 3 ) == 0 );
15 #endif
16     /* domain testing on 'int' type */
17     SCANF_TEST( 1, "-" INT_MIN_DEZ_STR, "%d", &i );
18     TESTCASE( i == INT_MIN );
19     SCANF_TEST( 1, INT_MAX_DEZ_STR, "%d", &i );
20     TESTCASE( i == INT_MAX );
21     SCANF_TEST( 1, "-1", "%d", &i );
22     TESTCASE( i == -1 );
23     SCANF_TEST( 1, "0", "%d", &i );
24     TESTCASE( i == 0 );
25     SCANF_TEST( 1, "1", "%d", &i );
26     TESTCASE( i == 1 );
27     SCANF_TEST( 1, "-" INT_MIN_DEZ_STR, "%i", &i );
28     TESTCASE( i == INT_MIN );
29     SCANF_TEST( 1, INT_MAX_DEZ_STR, "%i", &i );
30     TESTCASE( i == INT_MAX );
31     SCANF_TEST( 1, "-1", "%i", &i );
32     TESTCASE( i == -1 );
33     SCANF_TEST( 1, "0", "%i", &i );
34     TESTCASE( i == 0 );
35     SCANF_TEST( 1, "1", "%i", &i );
36     TESTCASE( i == 1 );
37     SCANF_TEST( 1, "0x7" INT_HEXDIG, "%i", &i );
38     TESTCASE( i == INT_MAX );
39     SCANF_TEST( 1, "0x0", "%i", &i );
40     TESTCASE( i == 0 );
41 #ifndef TEST_CONVERSION_ONLY
42     SCANF_TEST( 1, "00", "%i%n", &i, &u );
43     TESTCASE( i == 0 );
44     TESTCASE( u == 2 );
45 #endif
46     /* domain testing on 'unsigned int' type */
47     SCANF_TEST( 1, UINT_MAX_DEZ_STR, "%u", &u );
48     TESTCASE( u == UINT_MAX );
49     SCANF_TEST( 1, "0", "%u", &u );
50     TESTCASE( u == 0 );
51     SCANF_TEST( 1, "f" INT_HEXDIG, "%x", &u );
52     TESTCASE( u == UINT_MAX );
53     SCANF_TEST( 1, "7" INT_HEXDIG, "%x", &u );
54     TESTCASE( u == INT_MAX );
55     SCANF_TEST( 1, "0", "%o", &u );
56     TESTCASE( u == 0 );
57     SCANF_TEST( 1, INT_OCTDIG, "%o", &u );
58     TESTCASE( u == UINT_MAX );
59 }