Added SDL_ATvassert for printf style printing. gsoc2009_unit_tests
authorEdgar Simo <bobbens@gmail.com>
Sat, 11 Jul 2009 18:54:03 +0000
branchgsoc2009_unit_tests
changeset 3725 6eca2af6a86b
parent 3724 48e2b67bb2de
child 3726 ffe22900a50a
Added SDL_ATvassert for printf style printing. Check to see if testcase is closed before finishing testsuite.
test/automated/SDL_at.c
test/automated/SDL_at.h
--- a/test/automated/SDL_at.c	Sat Jul 11 17:57:49 2009 +0000
+++ b/test/automated/SDL_at.c	Sat Jul 11 18:54:03 2009 +0000
@@ -66,6 +66,12 @@
       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 @@
 {
    /* 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;
--- a/test/automated/SDL_at.h	Sat Jul 11 17:57:49 2009 +0000
+++ b/test/automated/SDL_at.h	Sat Jul 11 18:54:03 2009 +0000
@@ -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,12 +69,22 @@
  *
  * 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.
- *    @param condition Condition to make sure is true.
  *    @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.
  */
 void SDL_ATend (void);