Author: sebor Date: Fri Nov 18 17:58:46 2005 New Revision: 345623 URL: http://svn.apache.org/viewcvs?rev=345623&view=rev Log: 2005-11-18 Martin Sebor * 0.printf.cpp: (do_test): Tightened up and detected error cases. (test_paramno): Added a couple of test cases. Modified: incubator/stdcxx/trunk/tests/self/0.printf.cpp Modified: incubator/stdcxx/trunk/tests/self/0.printf.cpp URL: http://svn.apache.org/viewcvs/incubator/stdcxx/trunk/tests/self/0.printf.cpp?rev=345623&r1=345622&r2=345623&view=diff ============================================================================== --- incubator/stdcxx/trunk/tests/self/0.printf.cpp (original) +++ incubator/stdcxx/trunk/tests/self/0.printf.cpp Fri Nov 18 17:58:46 2005 @@ -45,13 +45,16 @@ int exit_status /* = 0 */; static void -do_test (int line, const char *fmt, const char *expect, char *result) +do_test (int line, // line number of the test case + const char *fmt, // format string + const char *expect, // expected output or 0 on error + const char *result) // actual result (0 on error) { - const char* quotes = "\"\""; + const char* q_fmt = "\"\""; if (0 == fmt) { - fmt = "null"; - quotes = "()"; + fmt = "null"; + q_fmt = "()"; } if (result && expect) { @@ -63,19 +66,36 @@ fprintf (stderr, "Assertion failed on line %d: " "rw_sprintf(%c%s%c, ...) == \"%s\", got \"%s\"\n", - line, quotes [0], fmt, quotes [1], expect, result); + line, q_fmt [0], fmt, q_fmt [1], expect, result); } } - else if (result) { + else if (result || expect) { exit_status = 2; + + const char* q_expect = "\"\""; + const char* q_result = "\"\""; + + if (0 == expect) { + expect = "null"; + q_expect = "()"; + } + + if (0 == result) { + result = "null"; + q_result = "()"; + } + fprintf (stderr, "Assertion failed on line %d: " - "rw_sprintf(%c%s%c, ...) == (null), got \"%s\"\n", - line, quotes [0], fmt, quotes [1], result); + "rw_sprintf(%c%s%c, ...) == %c%s%c got %c%s%c\n", + line, q_fmt [0], fmt, q_fmt [1], + q_expect [0], expect, q_expect [1], + q_result [0], result, q_result [1]); } else /* if (!result && !expect) */ { + _RWSTD_ASSERT (!result && !expect); } - free (result); + free ((char*)result); } @@ -1281,6 +1301,7 @@ TEST ("%c %1$c", 'a', 0, 0, "a a"); TEST ("%c %1$c %1$c", 'b', 0, 0, "b b b"); TEST ("%c %1$c %c %2$c", 'c', 'd', 0, "c c d d"); + TEST ("%c %c %1$c %1$c", 'e', 'f', 0, "e f e e"); TEST ("%s %1$s", "b", 0, 0, "b b"); TEST ("%s %1$s", "cd", 0, 0, "cd cd"); @@ -1314,6 +1335,10 @@ TEST ("[%s|%1$6.3s]", "xyz", 0, 0, "[xyz| xyz]"); TEST ("[%s|%1$6.3s]", "xyz", 0, 0, "[xyz| xyz]"); + + TEST ("[foo=%s, bar=%s|foo=%1$s, bar=%2$s]", + "abc", "def", 0, + "[foo=abc, bar=def|foo=abc, bar=def]"); TEST ("%i %1$i", 1, 0, 0, "1 1"); TEST ("%i %1$i", 1, 0, 0, "1 1");