Fixed SDL_SetError() by making NULL fmt a no-op, update test automation
authorAndreas Schiffler <aschiffler@ferzkopp.net>
Sun, 17 Jul 2011 20:59:34 -0700
changeset 5766 8cc2ae74cd83
parent 5765 f4ed7142727a
child 5767 36f7413f460f
Fixed SDL_SetError() by making NULL fmt a no-op, update test automation
src/SDL_error.c
test/test-automation/testplatform/testplatform.c
--- a/src/SDL_error.c	Sun Jul 17 19:19:35 2011 +0300
+++ b/src/SDL_error.c	Sun Jul 17 20:59:34 2011 -0700
@@ -55,6 +55,9 @@
     va_list ap;
     SDL_error *error;
 
+    /* Ignore call if invalid format pointer was passed */
+    if (fmt == NULL) return;
+    
     /* Copy in the key, mark error as valid */
     error = SDL_GetErrBuf();
     error->error = 1;
--- a/test/test-automation/testplatform/testplatform.c	Sun Jul 17 19:19:35 2011 +0300
+++ b/test/test-automation/testplatform/testplatform.c	Sun Jul 17 20:59:34 2011 -0700
@@ -352,13 +352,52 @@
 int platform_testSetErrorInvalidInput(void *arg)
 {
    const char *testError = NULL;
+   const char *probeError = "Testing";
    char *lastError;
+   int len;
+
+   // Reset
+   SDL_ClearError();
    
+   // Check for no-op
    SDL_SetError(testError);
    AssertPass("SDL_SetError()");
    lastError = (char *)SDL_GetError();   
-   AssertTrue(lastError == NULL, 
-             "SDL_GetError() == NULL");
+   AssertTrue(lastError != NULL, 
+             "SDL_GetError() != NULL");
+   if (lastError != NULL)
+   {
+     len = strlen(lastError);
+     AssertTrue(len == 0, 
+             "SDL_GetError(): expected message len 0, was len: %i", 
+             0, 
+             len);
+     AssertTrue(strcmp(lastError, "") == 0, 
+             "SDL_GetError(): expected message '', was message: '%s'",           
+             lastError);
+   }
+   
+   // Set
+   SDL_SetError(probeError);
+   
+   // Check for no-op
+   SDL_SetError(testError);
+   AssertPass("SDL_SetError()");
+   lastError = (char *)SDL_GetError();   
+   AssertTrue(lastError != NULL, 
+             "SDL_GetError() != NULL");
+   if (lastError != NULL)
+   {
+     len = strlen(lastError);
+     AssertTrue(len == strlen(probeError), 
+             "SDL_GetError(): expected message len %i, was len: %i", 
+             strlen(probeError), 
+             len);
+     AssertTrue(strcmp(lastError, probeError) == 0, 
+             "SDL_GetError(): expected message '%s', was message: '%s'",
+             probeError,
+             lastError);
+   }
 
    // Clean up                
    SDL_ClearError();