SDL_test_harness.h File Reference
`#include "begin_code.h"`
`#include "close_code.h"`
Include dependency graph for SDL_test_harness.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

## Data Structures

struct | SDLTest_TestCaseReference
struct | SDLTest_TestSuiteReference

## Macros

#define | TEST_ENABLED 1
#define | TEST_DISABLED 0
#define | TEST_ABORTED -1
#define | TEST_STARTED 0
#define | TEST_COMPLETED 1
#define | TEST_SKIPPED 2
#define | TEST_RESULT_PASSED 0
#define | TEST_RESULT_FAILED 1
#define | TEST_RESULT_NO_ASSERT 2
#define | TEST_RESULT_SKIPPED 3
#define | TEST_RESULT_SETUP_FAILURE 4

## Typedefs

typedef void(* | SDLTest_TestCaseSetUpFp) (void *arg)
typedef int(* | SDLTest_TestCaseFp) (void *arg)
typedef void(* | SDLTest_TestCaseTearDownFp) (void *arg)

## Functions

int | SDLTest_RunSuites (SDLTest_TestSuiteReference *testSuites[], const char *userRunSeed, Uint64 userExecKey, const char *filter, int testIterations)
| Execute a test suite using the given run seed and execution key. More...

## Detailed Description

Include file for SDL test framework.

This code is a part of the SDL2_test library, not the main SDL library.

Definition in file SDL_test_harness.h.

## Macro Definition Documentation

#define TEST_ABORTED -1

Definition at line 51 of file SDL_test_harness.h.

Referenced by audio_convertAudio(), audio_lockUnlockOpenAudioDevice(), audio_openCloseAndGetAudioStatus(), audio_openCloseAudioDeviceConnected(), keyboard_getScancodeFromNameNegative(), mouse_createFreeColorCursor(), mouse_createFreeCursor(), mouse_getMouseFocus(), mouse_setCursor(), mouse_showCursor(), mouse_warpMouseInWindow(), pixels_calcGammaRamp(), render_testBlit(), render_testBlitAlpha(), render_testBlitBlend(), render_testBlitColor(), rwops_testAllocFree(), rwops_testConstMem(), rwops_testFileRead(), rwops_testFileWrite(), rwops_testFileWriteReadEndian(), rwops_testFPRead(), rwops_testFPWrite(), rwops_testMem(), SDLTest_BailOut(), SDLTest_RunTest(), surface_testCompleteSurfaceConversion(), surface_testSaveLoadBitmap(), surface_testSurfaceConversion(), syswm_getWindowWMInfo(), video_getClosestDisplayModeCurrentResolution(), video_getSetWindowData(), video_getSetWindowGrab(), video_getSetWindowMaximumSize(), video_getSetWindowMinimumSize(), video_getSetWindowPosition(), video_getSetWindowSize(), video_getWindowGammaRamp(), video_getWindowId(), and video_getWindowPixelFormat().

#define TEST_COMPLETED 1

Definition at line 53 of file SDL_test_harness.h.

Referenced by audio_buildAudioCVT(), audio_buildAudioCVTNegative(), audio_convertAudio(), audio_enumerateAndNameAudioDevices(), audio_enumerateAndNameAudioDevicesNegativeTests(), audio_getAudioStatus(), audio_initOpenCloseQuitAudio(), audio_initQuitAudio(), audio_lockUnlockOpenAudioDevice(), audio_openCloseAndGetAudioStatus(), audio_openCloseAudioDeviceConnected(), audio_pauseUnpauseAudio(), audio_printAudioDrivers(), audio_printCurrentAudioDriver(), audio_quitInitAudioSubSystem(), clipboard_testClipboardTextFunctions(), clipboard_testGetClipboardText(), clipboard_testHasClipboardText(), clipboard_testSetClipboardText(), events_addDelEventWatch(), events_addDelEventWatchWithUserdata(), events_pushPumpAndPollUserevent(), hints_getHint(), hints_setHint(), keyboard_getKeyboardFocus(), keyboard_getKeyboardState(), keyboard_getKeyFromName(), keyboard_getKeyFromScancode(), keyboard_getKeyName(), keyboard_getKeyNameNegative(), keyboard_getScancodeFromKey(), keyboard_getScancodeFromName(), keyboard_getScancodeFromNameNegative(), keyboard_getScancodeNameNegative(), keyboard_getSetModState(), keyboard_setTextInputRect(), keyboard_setTextInputRectNegative(), keyboard_startStopTextInput(), main_testImpliedJoystickInit(), main_testImpliedJoystickQuit(), main_testInitQuitJoystickHaptic(), main_testInitQuitSubSystem(), mouse_createFreeColorCursor(), mouse_createFreeCursor(), mouse_getCursor(), mouse_getMouseFocus(), mouse_getMouseState(), mouse_getRelativeMouseState(), mouse_getSetRelativeMouseMode(), mouse_setCursor(), mouse_showCursor(), mouse_warpMouseInWindow(), pixels_allocFreeFormat(), pixels_allocFreePalette(), pixels_calcGammaRamp(), pixels_getPixelFormatName(), platform_testDefaultInit(), platform_testEndianessAndSwap(), platform_testGetFunctions(), platform_testGetPowerInfo(), platform_testGetSetClearError(), platform_testGetVersion(), platform_testHasFunctions(), platform_testSDLVersion(), platform_testSetErrorEmptyInput(), platform_testSetErrorInvalidInput(), platform_testTypes(), rect_testEnclosePoints(), rect_testEnclosePointsParam(), rect_testEnclosePointsRepeatedInput(), rect_testEnclosePointsWithClipping(), rect_testHasIntersectionEmpty(), rect_testHasIntersectionInside(), rect_testHasIntersectionOutside(), rect_testHasIntersectionParam(), rect_testHasIntersectionPartial(), rect_testHasIntersectionPoint(), rect_testIntersectRectAndLine(), rect_testIntersectRectAndLineEmpty(), rect_testIntersectRectAndLineInside(), rect_testIntersectRectAndLineOutside(), rect_testIntersectRectAndLineParam(), rect_testIntersectRectEmpty(), rect_testIntersectRectInside(), rect_testIntersectRectOutside(), rect_testIntersectRectParam(), rect_testIntersectRectPartial(), rect_testIntersectRectPoint(), rect_testRectEmpty(), rect_testRectEmptyParam(), rect_testRectEquals(), rect_testRectEqualsParam(), rect_testUnionRectEmpty(), rect_testUnionRectInside(), rect_testUnionRectOutside(), rect_testUnionRectParam(), render_testBlit(), render_testBlitAlpha(), render_testBlitBlend(), render_testBlitColor(), render_testGetNumRenderDrivers(), render_testPrimitives(), render_testPrimitivesBlend(), rwops_testAllocFree(), rwops_testCompareRWFromMemWithRWFromFile(), rwops_testConstMem(), rwops_testFileRead(), rwops_testFileWrite(), rwops_testFileWriteReadEndian(), rwops_testFPRead(), rwops_testFPWrite(), rwops_testMem(), rwops_testParamNegative(), sdltest_generateRunSeed(), sdltest_getFuzzerInvocationCount(), sdltest_randomAsciiString(), sdltest_randomAsciiStringOfSize(), sdltest_randomAsciiStringWithMaximumLength(), sdltest_randomBoundaryNumberSint16(), sdltest_randomBoundaryNumberSint32(), sdltest_randomBoundaryNumberSint64(), sdltest_randomBoundaryNumberSint8(), sdltest_randomBoundaryNumberUint16(), sdltest_randomBoundaryNumberUint32(), sdltest_randomBoundaryNumberUint64(), sdltest_randomBoundaryNumberUint8(), sdltest_randomIntegerInRange(), sdltest_randomNumber(), stdlib_getsetenv(), stdlib_snprintf(), stdlib_strlcpy(), surface_testBlit(), surface_testBlitAlphaMod(), surface_testBlitBlendAdd(), surface_testBlitBlendBlend(), surface_testBlitBlendLoop(), surface_testBlitBlendMod(), surface_testBlitBlendNone(), surface_testBlitColorMod(), surface_testCompleteSurfaceConversion(), surface_testLoadFailure(), surface_testSaveLoadBitmap(), surface_testSurfaceConversion(), syswm_getWindowWMInfo(), timer_addRemoveTimer(), timer_delayAndGetTicks(), timer_getPerformanceCounter(), timer_getPerformanceFrequency(), video_createWindowVariousFlags(), video_createWindowVariousPositions(), video_createWindowVariousSizes(), video_enableDisableScreensaver(), video_getClosestDisplayModeCurrentResolution(), video_getClosestDisplayModeRandomResolution(), video_getNumDisplayModes(), video_getNumDisplayModesNegative(), video_getSetWindowData(), video_getSetWindowGrab(), video_getSetWindowMaximumSize(), video_getSetWindowMinimumSize(), video_getSetWindowPosition(), video_getSetWindowSize(), video_getWindowBrightness(), video_getWindowBrightnessNegative(), video_getWindowDisplayMode(), video_getWindowDisplayModeNegative(), video_getWindowFlags(), video_getWindowGammaRamp(), video_getWindowGammaRampNegative(), video_getWindowId(), and video_getWindowPixelFormat().

#define TEST_DISABLED 0

Definition at line 48 of file SDL_test_harness.h.

#define TEST_ENABLED 1

Definition at line 47 of file SDL_test_harness.h.

#define TEST_RESULT_FAILED 1

Definition at line 58 of file SDL_test_harness.h.

Referenced by SDLTest_AssertSummaryToTestResult(), SDLTest_RunSuites(), and SDLTest_RunTest().

#define TEST_RESULT_NO_ASSERT 2

Definition at line 59 of file SDL_test_harness.h.

Referenced by SDLTest_AssertSummaryToTestResult(), and SDLTest_RunSuites().

#define TEST_RESULT_PASSED 0

Definition at line 57 of file SDL_test_harness.h.

Referenced by SDLTest_AssertSummaryToTestResult(), and SDLTest_RunSuites().

#define TEST_RESULT_SETUP_FAILURE 4

Definition at line 61 of file SDL_test_harness.h.

Referenced by SDLTest_RunTest().

#define TEST_RESULT_SKIPPED 3

Definition at line 60 of file SDL_test_harness.h.

Referenced by SDLTest_RunSuites(), and SDLTest_RunTest().

#define TEST_SKIPPED 2

Definition at line 54 of file SDL_test_harness.h.

Referenced by main_testImpliedJoystickInit(), main_testImpliedJoystickQuit(), main_testInitQuitJoystickHaptic(), main_testInitQuitSubSystem(), and SDLTest_RunTest().

#define TEST_STARTED 0

Definition at line 52 of file SDL_test_harness.h.

Referenced by SDLTest_RunTest().

## Typedef Documentation

typedef int(* SDLTest_TestCaseFp) (void *arg)

Definition at line 67 of file SDL_test_harness.h.

typedef void(* SDLTest_TestCaseSetUpFp) (void *arg)

Definition at line 64 of file SDL_test_harness.h.

typedef void(* SDLTest_TestCaseTearDownFp) (void *arg)

Definition at line 70 of file SDL_test_harness.h.

## Function Documentation

int SDLTest_RunSuites | ( | SDLTest_TestSuiteReference * | testSuites[],
|  | const char * | userRunSeed,
|  | Uint64 | userExecKey,
|  | const char * | filter,
|  | int | testIterations
| ) |  |

Execute a test suite using the given run seed and execution key.

Parameters

  testSuites | Suites containing the test case.
  userRunSeed | Custom run seed provided by user, or NULL to autogenerate one.
  userExecKey | Custom execution key provided by user, or 0 to autogenerate one.
  filter | Filter specification. NULL disables. Case sensitive.
  testIterations | Number of iterations to run each test case.

Returns
  Test run result; 0 when all tests passed, 1 if any tests failed.

The filter string is matched to the suite name (full comparison) to select a single suite, or if no suite matches, it is matched to the test names (full comparison) to select a single test.

Parameters

  testSuites | Suites containing the test case.
  userRunSeed | Custom run seed provided by user, or NULL to autogenerate one.
  userExecKey | Custom execution key provided by user, or 0 to autogenerate one.
  filter | Filter specification. NULL disables. Case sensitive.
  testIterations | Number of iterations to run each test case.

Returns
  Test run result; 0 when all tests passed, 1 if any tests failed.

Definition at line 365 of file SDL_test_harness.c.

References SDLTest_TestCaseReference::description, SDLTest_TestCaseReference::enabled, GetClock(), SDLTest_TestCaseReference::name, SDLTest_TestSuiteReference::name, NULL, SDL_ENOMEM, SDL_Error, SDL_FALSE, SDL_free(), SDL_malloc, SDL_PRIu64, SDL_strcmp, SDL_TRUE, SDLTest_FinalResultFormat, SDLTest_GenerateExecKey(), SDLTest_GenerateRunSeed(), SDLTest_InvalidNameFormat, SDLTest_Log(), SDLTest_LogError(), SDLTest_LogSummaryFormat, SDLTest_RunTest(), TEST_RESULT_FAILED, TEST_RESULT_NO_ASSERT, TEST_RESULT_PASSED, TEST_RESULT_SKIPPED, and SDLTest_TestSuiteReference::testCases.

Referenced by main().

{
int totalNumberOfTests = 0;
int failedNumberOfTests = 0;
int suiteCounter;
int testCounter;
int iterationCounter;
SDLTest_TestSuiteReference *testSuite;
SDLTest_TestCaseReference *testCase;
const char *runSeed = NULL;
char *currentSuiteName;
char *currentTestName;
Uint64 execKey;
float runStartSeconds;
float suiteStartSeconds;
float testStartSeconds;
float runEndSeconds;
float suiteEndSeconds;
float testEndSeconds;
float runtime;
int suiteFilter = 0;
char *suiteFilterName = NULL;
int testFilter = 0;
char *testFilterName = NULL;
SDL_bool forceTestRun = SDL_FALSE;
int testResult = 0;
int runResult = 0;
Uint32 totalTestFailedCount = 0;
Uint32 totalTestPassedCount = 0;
Uint32 totalTestSkippedCount = 0;
Uint32 testFailedCount = 0;
Uint32 testPassedCount = 0;
Uint32 testSkippedCount = 0;
Uint32 countSum = 0;
char *logFormat = (char *)SDLTest_LogSummaryFormat;
SDLTest_TestCaseReference **failedTests;
/* Sanitize test iterations */
if (testIterations < 1) {
testIterations = 1;
}
/* Generate run see if we don't have one already */
if (userRunSeed == NULL || userRunSeed[0] == '\0') {
runSeed = SDLTest_GenerateRunSeed(16);
if (runSeed == NULL) {
SDLTest_LogError("Generating a random seed failed");
return 2;
}
} else {
runSeed = userRunSeed;
}
/* Reset per-run counters */
totalTestFailedCount = 0;
totalTestPassedCount = 0;
totalTestSkippedCount = 0;
/* Take time - run start */
runStartSeconds = GetClock();
/* Log run with fuzzer parameters */
SDLTest_Log("::::: Test Run /w seed '%s' started\n", runSeed);
/* Count the total number of tests */
suiteCounter = 0;
while (testSuites[suiteCounter]) {
testSuite=(SDLTest_TestSuiteReference *)testSuites[suiteCounter];
suiteCounter++;
testCounter = 0;
while (testSuite->testCases[testCounter])
{
testCounter++;
totalNumberOfTests++;
}
}
/* Pre-allocate an array for tracking failed tests (potentially all test cases) */
failedTests = (SDLTest_TestCaseReference **)SDL_malloc(totalNumberOfTests * sizeof(SDLTest_TestCaseReference *));
if (failedTests == NULL) {
SDLTest_LogError("Unable to allocate cache for failed tests");
SDL_Error(SDL_ENOMEM);
return -1;
}
/* Initialize filtering */
if (filter != NULL && filter[0] != '\0') {
/* Loop over all suites to check if we have a filter match */
suiteCounter = 0;
while (testSuites[suiteCounter] && suiteFilter == 0) {
testSuite=(SDLTest_TestSuiteReference *)testSuites[suiteCounter];
suiteCounter++;
if (testSuite->name != NULL && SDL_strcmp(filter, testSuite->name) == 0) {
/* Matched a suite name */
suiteFilter = 1;
suiteFilterName = testSuite->name;
SDLTest_Log("Filtering: running only suite '%s'", suiteFilterName);
break;
}
/* Within each suite, loop over all test cases to check if we have a filter match */
testCounter = 0;
while (testSuite->testCases[testCounter] && testFilter == 0)
{
testCase=(SDLTest_TestCaseReference *)testSuite->testCases[testCounter];
testCounter++;
if (testCase->name != NULL && SDL_strcmp(filter, testCase->name) == 0) {
/* Matched a test name */
suiteFilter = 1;
suiteFilterName = testSuite->name;
testFilter = 1;
testFilterName = testCase->name;
SDLTest_Log("Filtering: running only test '%s' in suite '%s'", testFilterName, suiteFilterName);
break;
}
}
}
if (suiteFilter == 0 && testFilter == 0) {
SDLTest_LogError("Filter '%s' did not match any test suite/case.", filter);
SDLTest_Log("Exit code: 2");
SDL_free(failedTests);
return 2;
}
}
/* Loop over all suites */
suiteCounter = 0;
while(testSuites[suiteCounter]) {
testSuite=(SDLTest_TestSuiteReference *)testSuites[suiteCounter];
currentSuiteName = (char *)((testSuite->name) ? testSuite->name : SDLTest_InvalidNameFormat);
suiteCounter++;
/* Filter suite if flag set and we have a name */
if (suiteFilter == 1 && suiteFilterName != NULL && testSuite->name != NULL &&
SDL_strcmp(suiteFilterName, testSuite->name) != 0) {
/* Skip suite */
SDLTest_Log("===== Test Suite %i: '%s' skipped\n",
suiteCounter,
currentSuiteName);
} else {
/* Reset per-suite counters */
testFailedCount = 0;
testPassedCount = 0;
testSkippedCount = 0;
/* Take time - suite start */
suiteStartSeconds = GetClock();
/* Log suite started */
SDLTest_Log("===== Test Suite %i: '%s' started\n",
suiteCounter,
currentSuiteName);
/* Loop over all test cases */
testCounter = 0;
while(testSuite->testCases[testCounter])
{
testCase=(SDLTest_TestCaseReference *)testSuite->testCases[testCounter];
currentTestName = (char *)((testCase->name) ? testCase->name : SDLTest_InvalidNameFormat);
testCounter++;
/* Filter tests if flag set and we have a name */
if (testFilter == 1 && testFilterName != NULL && testCase->name != NULL &&
SDL_strcmp(testFilterName, testCase->name) != 0) {
/* Skip test */
SDLTest_Log("===== Test Case %i.%i: '%s' skipped\n",
suiteCounter,
testCounter,
currentTestName);
} else {
/* Override 'disabled' flag if we specified a test filter (i.e. force run for debugging) */
if (testFilter == 1 && !testCase->enabled) {
SDLTest_Log("Force run of disabled test since test filter was set");
forceTestRun = SDL_TRUE;
}
/* Take time - test start */
testStartSeconds = GetClock();
/* Log test started */
SDLTest_Log("----- Test Case %i.%i: '%s' started",
suiteCounter,
testCounter,
currentTestName);
if (testCase->description != NULL && testCase->description[0] != '\0') {
SDLTest_Log("Test Description: '%s'",
(testCase->description) ? testCase->description : SDLTest_InvalidNameFormat);
}
/* Loop over all iterations */
iterationCounter = 0;
while(iterationCounter < testIterations)
{
iterationCounter++;
if (userExecKey != 0) {
execKey = userExecKey;
} else {
execKey = SDLTest_GenerateExecKey((char *)runSeed, testSuite->name, testCase->name, iterationCounter);
}
SDLTest_Log("Test Iteration %i: execKey %" SDL_PRIu64, iterationCounter, execKey);
testResult = SDLTest_RunTest(testSuite, testCase, execKey, forceTestRun);
if (testResult == TEST_RESULT_PASSED) {
testPassedCount++;
totalTestPassedCount++;
} else if (testResult == TEST_RESULT_SKIPPED) {
testSkippedCount++;
totalTestSkippedCount++;
} else {
testFailedCount++;
totalTestFailedCount++;
}
}
/* Take time - test end */
testEndSeconds = GetClock();
runtime = testEndSeconds - testStartSeconds;
if (runtime < 0.0f) runtime = 0.0f;
if (testIterations > 1) {
/* Log test runtime */
SDLTest_Log("Runtime of %i iterations: %.1f sec", testIterations, runtime);
SDLTest_Log("Average Test runtime: %.5f sec", runtime / (float)testIterations);
} else {
/* Log test runtime */
SDLTest_Log("Total Test runtime: %.1f sec", runtime);
}
/* Log final test result */
switch (testResult) {
case TEST_RESULT_PASSED:
SDLTest_Log((char *)SDLTest_FinalResultFormat, "Test", currentTestName, "Passed");
break;
case TEST_RESULT_FAILED:
SDLTest_LogError((char *)SDLTest_FinalResultFormat, "Test", currentTestName, "Failed");
break;
case TEST_RESULT_NO_ASSERT:
SDLTest_LogError((char *)SDLTest_FinalResultFormat,"Test", currentTestName, "No Asserts");
break;
}
/* Collect failed test case references for repro-step display */
if (testResult == TEST_RESULT_FAILED) {
failedTests[failedNumberOfTests] = testCase;
failedNumberOfTests++;
}
}
}
/* Take time - suite end */
suiteEndSeconds = GetClock();
runtime = suiteEndSeconds - suiteStartSeconds;
if (runtime < 0.0f) runtime = 0.0f;
/* Log suite runtime */
SDLTest_Log("Total Suite runtime: %.1f sec", runtime);
/* Log summary and final Suite result */
countSum = testPassedCount + testFailedCount + testSkippedCount;
if (testFailedCount == 0)
{
SDLTest_Log(logFormat, "Suite", countSum, testPassedCount, testFailedCount, testSkippedCount);
SDLTest_Log((char *)SDLTest_FinalResultFormat, "Suite", currentSuiteName, "Passed");
}
else
{
SDLTest_LogError(logFormat, "Suite", countSum, testPassedCount, testFailedCount, testSkippedCount);
SDLTest_LogError((char *)SDLTest_FinalResultFormat, "Suite", currentSuiteName, "Failed");
}
}
}
/* Take time - run end */
runEndSeconds = GetClock();
runtime = runEndSeconds - runStartSeconds;
if (runtime < 0.0f) runtime = 0.0f;
/* Log total runtime */
SDLTest_Log("Total Run runtime: %.1f sec", runtime);
/* Log summary and final run result */
countSum = totalTestPassedCount + totalTestFailedCount + totalTestSkippedCount;
if (totalTestFailedCount == 0)
{
runResult = 0;
SDLTest_Log(logFormat, "Run", countSum, totalTestPassedCount, totalTestFailedCount, totalTestSkippedCount);
SDLTest_Log((char *)SDLTest_FinalResultFormat, "Run /w seed", runSeed, "Passed");
}
else
{
runResult = 1;
SDLTest_LogError(logFormat, "Run", countSum, totalTestPassedCount, totalTestFailedCount, totalTestSkippedCount);
SDLTest_LogError((char *)SDLTest_FinalResultFormat, "Run /w seed", runSeed, "Failed");
}
/* Print repro steps for failed tests */
if (failedNumberOfTests > 0) {
SDLTest_Log("Harness input to repro failures:");
for (testCounter = 0; testCounter < failedNumberOfTests; testCounter++) {
SDLTest_Log(" --seed %s --filter %s", runSeed, failedTests[testCounter]->name);
}
}
SDL_free(failedTests);
SDLTest_Log("Exit code: %d", runResult);
return runResult;
}
SDLTest_TestSuiteReference::name
char * name
Definition: SDL_test_harness.h:91
SDLTest_FinalResultFormat
const char * SDLTest_FinalResultFormat
Definition: SDL_test_harness.c:38
SDLTest_TestSuiteReference
Definition: SDL_test_harness.h:89
Uint32
uint32_t Uint32
An unsigned 32-bit integer type.
Definition: SDL_stdinc.h:155
SDLTest_GenerateRunSeed
char * SDLTest_GenerateRunSeed(const int length)
Definition: SDL_test_harness.c:54
SDLTest_InvalidNameFormat
const char * SDLTest_InvalidNameFormat
Definition: SDL_test_harness.c:32
f
GLfloat f
Definition: SDL_opengl_glext.h:1870
GetClock
float GetClock()
Definition: SDL_test_harness.c:345
name
GLuint const GLchar * name
Definition: SDL_opengl_glext.h:660
SDL_Error
#define SDL_Error
Definition: SDL_dynapi_overrides.h:121
Uint64
uint64_t Uint64
An unsigned 64-bit integer type.
Definition: SDL_stdinc.h:164
SDLTest_TestSuiteReference::testCases
const SDLTest_TestCaseReference ** testCases
Definition: SDL_test_harness.h:95
SDLTest_GenerateExecKey
Uint64 SDLTest_GenerateExecKey(char *runSeed, char *suiteName, char *testName, int iteration)
Definition: SDL_test_harness.c:101
SDLTest_TestCaseReference::enabled
int enabled
Definition: SDL_test_harness.h:83
SDL_bool
SDL_bool
Definition: SDL_stdinc.h:126
SDL_ENOMEM
Definition: SDL_error.h:57
TEST_RESULT_FAILED
#define TEST_RESULT_FAILED
Definition: SDL_test_harness.h:58
SDLTest_TestCaseReference::name
char * name
Definition: SDL_test_harness.h:79
SDLTest_LogError
void SDLTest_LogError(SDL_PRINTF_FORMAT_STRING const char *fmt,...) SDL_PRINTF_VARARG_FUNC(1)
Prints given message with a timestamp in the TEST category and the ERROR priority.
Definition: SDL_test_log.c:89
SDL_free
void SDL_free(void *mem)
SDL_TRUE
Definition: SDL_stdinc.h:129
TEST_RESULT_NO_ASSERT
#define TEST_RESULT_NO_ASSERT
Definition: SDL_test_harness.h:59
NULL
#define NULL
Definition: begin_code.h:143
SDLTest_LogSummaryFormat
const char * SDLTest_LogSummaryFormat
Definition: SDL_test_harness.c:35
TEST_RESULT_PASSED
#define TEST_RESULT_PASSED
Definition: SDL_test_harness.h:57
SDLTest_TestCaseReference
Definition: SDL_test_harness.h:75
SDL_FALSE
Definition: SDL_stdinc.h:128
SDL_PRIu64
#define SDL_PRIu64
Definition: SDL_stdinc.h:186
SDLTest_RunTest
int SDLTest_RunTest(SDLTest_TestSuiteReference *testSuite, SDLTest_TestCaseReference *testCase, Uint64 execKey, SDL_bool forceTestRun)
Execute a test using the given execution key.
Definition: SDL_test_harness.c:227
SDLTest_Log
void SDLTest_Log(SDL_PRINTF_FORMAT_STRING const char *fmt,...) SDL_PRINTF_VARARG_FUNC(1)
Prints given message with a timestamp in the TEST category and INFO priority.
Definition: SDL_test_log.c:71
SDL_malloc
#define SDL_malloc
Definition: SDL_dynapi_overrides.h:380
SDL_strcmp
#define SDL_strcmp
Definition: SDL_dynapi_overrides.h:423
SDLTest_TestCaseReference::description
char * description
Definition: SDL_test_harness.h:81
TEST_RESULT_SKIPPED
#define TEST_RESULT_SKIPPED
Definition: SDL_test_harness.h:60
filter
GLint GLint GLint GLint GLint GLint GLint GLbitfield GLenum filter
Definition: SDL_opengl_glext.h:1184