From 8f8d459534bd094be810ed800323a8b9138c842f Mon Sep 17 00:00:00 2001 From: Edgar Simo Date: Sat, 11 Jul 2009 18:54:03 +0000 Subject: [PATCH] Added SDL_ATvassert for printf style printing. Check to see if testcase is closed before finishing testsuite. --- test/automated/SDL_at.c | 31 +++++++++++++++++++++++++++++++ test/automated/SDL_at.h | 16 +++++++++++++--- 2 files changed, 44 insertions(+), 3 deletions(-) diff --git a/test/automated/SDL_at.c b/test/automated/SDL_at.c index 26bf3254a..5b164093e 100644 --- a/test/automated/SDL_at.c +++ b/test/automated/SDL_at.c @@ -66,6 +66,12 @@ int SDL_ATfinish( int verbose ) return 1; } + /* Finished without closing testcase. */ + if (at_test_msg) { + SDL_ATprint( "AT suite '%s' finished without closing testcase '%s'\n", + ac_suite_msg, ac_test_msg ); + } + /* Display message if verbose on failed. */ failed = at_failure; if (verbose) { @@ -134,7 +140,32 @@ int SDL_ATassert( const char *msg, int condition ) { /* Condition failed. */ if (!condition) { + /* Print. */ SDL_ATprint( "%s [%s] : %s\n", at_suite_msg, at_test_msg, msg ); + /* End. */ + SDL_ATendWith(0); + } + return !condition; +} + + +/** + * @brief Testcase test. + */ +int SDL_ATvassert( int condition, const char *msg, ... ) +{ + va_list args; + char buf[256]; + + /* Condition failed. */ + if (!condition) { + /* Get message. */ + va_start( args, msg ); + vsnprintf( buf, sizeof(buf), msg, args ); + va_end( args ); + /* Print. */ + SDL_ATprint( "%s [%s] : %s\n", at_suite_msg, at_test_msg, buf ); + /* End. */ SDL_ATendWith(0); } return !condition; diff --git a/test/automated/SDL_at.h b/test/automated/SDL_at.h index 616901de9..dc5736567 100644 --- a/test/automated/SDL_at.h +++ b/test/automated/SDL_at.h @@ -20,11 +20,11 @@ * SDL_ATinit( "My testsuite" ); * * SDL_ATbegin( "My first testcase" ); - * if (!SDL_ATassert( "Trying '1+1=2'.", (1+1)==2)) + * if (!SDL_ATassert( (1+1)==2, "Trying '1+1=2'.")) * return; * * SDL_ATbegin( "My second testcase" ); - * if (!SDL_ATassert( "Trying '4/2=2'.", (4/2)==2)) + * if (!SDL_ATassert( (4/2)==2, "Trying '4/2=2'.")) * return; * * f = SDL_ATend(); @@ -69,11 +69,21 @@ void SDL_ATbegin( const char *testcase ); * * Will automatically call SDL_ATend if the condition isn't met. * - * @param msg Message to display for failure. * @param condition Condition to make sure is true. + * @param msg Message to display for failure. * @return Returns 1 if the condition isn't met. */ int SDL_ATassert( const char *msg, int condition ); +/** + * @brief Checks a condition in the testcase. + * + * Will automatically call SDL_ATend if the condition isn't met. + * + * @param condition Condition to make sure is true. + * @param msg Message to display for failure with printf style formatting. + * @return Returns 1 if the condition isn't met. + */ +int SDL_ATvassert( int condition, const char *msg, ... ); /** * @brief Ends a testcase. */