SDL_test: pass data pointer to unit tests

This commit is contained in:
Anonymous Maarten 2024-09-01 17:51:04 +02:00 committed by Anonymous Maarten
parent 741c04b339
commit 2f4b2df595
9 changed files with 12 additions and 11 deletions

View File

@ -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);

View File

@ -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 */

View File

@ -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);

View File

@ -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;
}

View File

@ -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;

View File

@ -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;

View File

@ -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? */

View File

@ -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;

View File

@ -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);