소스 검색

SDL_test: pass data pointer to unit tests

Anonymous Maarten 7 달 전
부모
커밋
2f4b2df595

+ 1 - 1
include/SDL3/SDL_test_harness.h

@@ -63,7 +63,7 @@ extern "C" {
 #define TEST_RESULT_SETUP_FAILURE       4
 
 /* !< Function pointer to a test case setup function (run before every test) */
-typedef void (*SDLTest_TestCaseSetUpFp)(void *arg);
+typedef void (*SDLTest_TestCaseSetUpFp)(void **arg);
 
 /* !< Function pointer to a test case function */
 typedef int (*SDLTest_TestCaseFp)(void *arg);

+ 4 - 3
src/test/SDL_test_harness.c

@@ -237,6 +237,7 @@ static int SDLTest_RunTest(SDLTest_TestSuiteReference *testSuite, const SDLTest_
     int testCaseResult = 0;
     int testResult = 0;
     int fuzzerCount;
+    void *data = NULL;
 
     if (!testSuite || !testCase || !testSuite->name || !testCase->name) {
         SDLTest_LogError("Setup failure: testSuite or testCase references NULL");
@@ -259,7 +260,7 @@ static int SDLTest_RunTest(SDLTest_TestSuiteReference *testSuite, const SDLTest_
 
     /* Maybe run suite initializer function */
     if (testSuite->testSetUp) {
-        testSuite->testSetUp(0x0);
+        testSuite->testSetUp(&data);
         if (SDLTest_AssertSummaryToTestResult() == TEST_RESULT_FAILED) {
             SDLTest_LogError(SDLTEST_FINAL_RESULT_FORMAT, "Suite Setup", testSuite->name, COLOR_RED "Failed" COLOR_END);
             return TEST_RESULT_SETUP_FAILURE;
@@ -267,7 +268,7 @@ static int SDLTest_RunTest(SDLTest_TestSuiteReference *testSuite, const SDLTest_
     }
 
     /* Run test case function */
-    testCaseResult = testCase->testCase(0x0);
+    testCaseResult = testCase->testCase(data);
 
     /* Convert test execution result into harness result */
     if (testCaseResult == TEST_SKIPPED) {
@@ -286,7 +287,7 @@ static int SDLTest_RunTest(SDLTest_TestSuiteReference *testSuite, const SDLTest_
 
     /* Maybe run suite cleanup function (ignore failed asserts) */
     if (testSuite->testTearDown) {
-        testSuite->testTearDown(0x0);
+        testSuite->testTearDown(data);
     }
 
     /* Cancel timeout timer */

+ 1 - 1
test/testautomation_audio.c

@@ -19,7 +19,7 @@
 
 /* Fixture */
 
-static void audioSetUp(void *arg)
+static void audioSetUp(void **arg)
 {
     /* Start SDL audio subsystem */
     SDL_bool ret = SDL_InitSubSystem(SDL_INIT_AUDIO);

+ 1 - 1
test/testautomation_blit.c

@@ -40,7 +40,7 @@ Uint32 getRandomUint32() {
 /*
  * Resets PRNG state to initialize tests using PRNG
  */
-void blitSetUp(void *arg) {
+void blitSetUp(void **arg) {
     rngState[0] = 1;
     rngState[1] = 2;
 }

+ 1 - 1
test/testautomation_iostream.c

@@ -32,7 +32,7 @@ static const char IOStreamAlphabetString[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
 
 /* Fixture */
 
-static void IOStreamSetUp(void *arg)
+static void IOStreamSetUp(void **arg)
 {
     size_t fileLen;
     FILE *handle;

+ 1 - 1
test/testautomation_render.c

@@ -44,7 +44,7 @@ static SDL_bool hasDrawColor(void);
 /**
  * Create software renderer for tests
  */
-static void InitCreateRenderer(void *arg)
+static void InitCreateRenderer(void **arg)
 {
     int width = 320, height = 240;
     const char *renderer_name = NULL;

+ 1 - 1
test/testautomation_subsystems.c

@@ -9,7 +9,7 @@
 
 /* Fixture */
 
-static void subsystemsSetUp(void *arg)
+static void subsystemsSetUp(void **arg)
 {
     /* Reset each one of the SDL subsystems */
     /* CHECKME: can we use SDL_Quit here, or this will break the flow of tests? */

+ 1 - 1
test/testautomation_surface.c

@@ -41,7 +41,7 @@ static SDL_Surface *testSurface = NULL;
 /* Fixture */
 
 /* Create a 32-bit writable surface for blitting tests */
-static void surfaceSetUp(void *arg)
+static void surfaceSetUp(void **arg)
 {
     int result;
     SDL_BlendMode blendMode = SDL_BLENDMODE_NONE;

+ 1 - 1
test/testautomation_timer.c

@@ -20,7 +20,7 @@ static int g_timerCallbackCalled = 0;
 
 /* Fixture */
 
-static void timerSetUp(void *arg)
+static void timerSetUp(void **arg)
 {
     /* Start SDL timer subsystem */
     SDL_bool ret = SDL_InitSubSystem(SDL_INIT_TIMER);