From 2b215a95bae8df69a5bf6a5b7226d7e849d61ff9 Mon Sep 17 00:00:00 2001 From: Andreas Schiffler Date: Sun, 17 Jul 2011 20:59:34 -0700 Subject: [PATCH] Fixed SDL_SetError() by making NULL fmt a no-op, update test automation --- src/SDL_error.c | 3 ++ .../testplatform/testplatform.c | 43 ++++++++++++++++++- 2 files changed, 44 insertions(+), 2 deletions(-) diff --git a/src/SDL_error.c b/src/SDL_error.c index 1c8f76a22..19a6507d1 100644 --- a/src/SDL_error.c +++ b/src/SDL_error.c @@ -55,6 +55,9 @@ SDL_SetError(const char *fmt, ...) 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; diff --git a/test/test-automation/testplatform/testplatform.c b/test/test-automation/testplatform/testplatform.c index e73904ba6..9d881f5a5 100644 --- a/test/test-automation/testplatform/testplatform.c +++ b/test/test-automation/testplatform/testplatform.c @@ -352,13 +352,52 @@ int platform_testSetErrorEmptyInput(void *arg) 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"); + 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"); + 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();