Basic tests for %c, %s, %[ and %p.
authorsolar <solar@546481bc-9713-0410-bf18-d3337bbf4a3e>
Mon, 20 Dec 2010 07:15:23 +0000 (07:15 +0000)
committersolar <solar@546481bc-9713-0410-bf18-d3337bbf4a3e>
Mon, 20 Dec 2010 07:15:23 +0000 (07:15 +0000)
git-svn-id: https://srv7.svn-repos.de/dev34/pdclib/trunk@500 546481bc-9713-0410-bf18-d3337bbf4a3e

testing/scanf_testcases.h

index a1521fee3e2f04fb9dd362bf81f39ca0fd1fbd9a..f9007d6f9c5ba54a139cb08ba39b845673081ec2 100644 (file)
@@ -2,6 +2,7 @@
     char buffer[100];
     int i;
     unsigned int u;
+    int * p;
     /* basic: reading of three-char string */
     SCANF_TEST( 1, "foo", "%3c", buffer );
     TESTCASE( memcmp( buffer, "foo", 3 ) == 0 );
     TESTCASE( u == 0 );
     SCANF_TEST( 1, INT_OCTDIG, "%o", &u );
     TESTCASE( u == UINT_MAX );
+    /* testing %c */
+    memset( buffer, '\0', 100 );
+    SCANF_TEST( 1, "x", "%c", buffer );
+    TESTCASE( memcmp( buffer, "x\0", 2 ) == 0 );
+    /* testing %s */
+    memset( buffer, '\0', 100 );
+    SCANF_TEST( 1, "foo bar", "%s", buffer );
+    TESTCASE( memcmp( buffer, "foo\0", 4 ) == 0 );
+#ifndef TEST_CONVERSION_ONLY
+    SCANF_TEST( 2, "foo bar  baz", "%s %s %n", buffer, buffer + 4, &u );
+    TESTCASE( u == 9 );
+    TESTCASE( memcmp( buffer, "foo\0bar\0", 8 ) == 0 );
+#endif
+    /* testing %[ */
+    SCANF_TEST( 1, "abcdefg", "%[cba]", buffer );
+    TESTCASE( memcmp( buffer, "abc\0", 4 ) == 0 );
+    /* testing %p */
+    p = NULL;
+    sprintf( buffer, "%p", p );
+    p = &i;
+    SCANF_TEST( 1, buffer, "%p", &p );
+    TESTCASE( p == NULL );
+    p = &i;
+    sprintf( buffer, "%p", p );
+    p = NULL;
+    SCANF_TEST( 1, buffer, "%p", &p );
+    TESTCASE( p == &i );
 }