Skip to content
This repository has been archived by the owner on Feb 11, 2021. It is now read-only.

Commit

Permalink
Added SDL_ATvassert for printf style printing.
Browse files Browse the repository at this point in the history
Check to see if testcase is closed before finishing testsuite.
  • Loading branch information
bobbens committed Jul 11, 2009
1 parent ebf2eda commit 8f8d459
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 3 deletions.
31 changes: 31 additions & 0 deletions test/automated/SDL_at.c
Expand Up @@ -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) {
Expand Down Expand Up @@ -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;
Expand Down
16 changes: 13 additions & 3 deletions test/automated/SDL_at.h
Expand Up @@ -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();
Expand Down Expand Up @@ -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.
*/
Expand Down

0 comments on commit 8f8d459

Please sign in to comment.