Add SDL_test test suite; add fuzzer test cases; fix fuzzer bug; fix compiler warnings
This commit is contained in:
parent
4e861f19ca
commit
da76be8927
8 changed files with 148 additions and 5 deletions
|
@ -188,6 +188,7 @@
|
|||
<ClCompile Include="..\..\..\test\testautomation_keyboard.c" />
|
||||
<ClCompile Include="..\..\..\test\testautomation_video.c" />
|
||||
<ClCompile Include="..\..\..\test\testautomation_syswm.c" />
|
||||
<ClCompile Include="..\..\..\test\testautomation_sdltest.c" />
|
||||
<ClCompile Include="..\..\..\test\testautomation_mouse.c" />
|
||||
<ClCompile Include="..\..\..\test\testautomation_timer.c" />
|
||||
</ItemGroup>
|
||||
|
|
|
@ -192,6 +192,7 @@
|
|||
<ClCompile Include="..\..\..\test\testautomation_keyboard.c" />
|
||||
<ClCompile Include="..\..\..\test\testautomation_video.c" />
|
||||
<ClCompile Include="..\..\..\test\testautomation_syswm.c" />
|
||||
<ClCompile Include="..\..\..\test\testautomation_sdltest.c" />
|
||||
<ClCompile Include="..\..\..\test\testautomation_mouse.c" />
|
||||
<ClCompile Include="..\..\..\test\testautomation_timer.c" />
|
||||
</ItemGroup>
|
||||
|
|
|
@ -586,7 +586,7 @@ SDLTest_RandomUnitFloat()
|
|||
float
|
||||
SDLTest_RandomFloat()
|
||||
{
|
||||
return (float) (FLT_MIN + SDLTest_RandomUnitDouble() * (FLT_MAX - FLT_MIN));
|
||||
return (float) (SDLTest_RandomUnitDouble() * (double)2.0 * (double)FLT_MAX - (double)(FLT_MAX));
|
||||
}
|
||||
|
||||
double
|
||||
|
|
|
@ -557,7 +557,7 @@ WIN_SetWindowGrab(_THIS, SDL_Window * window, SDL_bool grabbed)
|
|||
{
|
||||
HWND top;
|
||||
SDL_WindowData *data = (SDL_WindowData *) window->driverdata;
|
||||
HWND hwnd = ((SDL_WindowData *) window->driverdata)->hwnd;
|
||||
HWND hwnd = data->hwnd;
|
||||
UINT flags = SWP_NOMOVE | SWP_NOSIZE;
|
||||
|
||||
if ( SDL_ShouldAllowTopmost() && (window->flags & SDL_WINDOW_INPUT_FOCUS ) ) {
|
||||
|
|
|
@ -80,6 +80,7 @@ testautomation$(EXE): $(srcdir)/testautomation.c \
|
|||
$(srcdir)/testautomation_keyboard.c \
|
||||
$(srcdir)/testautomation_video.c \
|
||||
$(srcdir)/testautomation_syswm.c \
|
||||
$(srcdir)/testautomation_sdltest.c \
|
||||
$(srcdir)/testautomation_mouse.c \
|
||||
$(srcdir)/testautomation_timer.c
|
||||
$(CC) -o $@ $^ $(CFLAGS) -lSDL2_test $(LIBS)
|
||||
|
|
|
@ -612,7 +612,7 @@ int audio_convertAudio()
|
|||
*/
|
||||
int audio_openCloseAudioDeviceConnected()
|
||||
{
|
||||
int result;
|
||||
int result = -1;
|
||||
int i;
|
||||
int count;
|
||||
char *device;
|
||||
|
@ -641,7 +641,7 @@ int audio_openCloseAudioDeviceConnected()
|
|||
/* Open device */
|
||||
id = SDL_OpenAudioDevice((const char *)device, 0, &desired, &obtained, SDL_AUDIO_ALLOW_ANY_CHANGE);
|
||||
SDLTest_AssertPass("SDL_OpenAudioDevice('%s',...)", device);
|
||||
SDLTest_AssertCheck(id > 1, "Validate device ID; expected: >=2, got: %i", id);
|
||||
SDLTest_AssertCheck(id > 1, "Validate device ID; expected: >1, got: %i", id);
|
||||
if (id > 1) {
|
||||
|
||||
/* TODO: enable test code when function is available in SDL2 */
|
||||
|
@ -650,8 +650,8 @@ int audio_openCloseAudioDeviceConnected()
|
|||
/* Get connected status */
|
||||
result = SDL_AudioDeviceConnected(id);
|
||||
SDLTest_AssertPass("Call to SDL_AudioDeviceConnected()");
|
||||
SDLTest_AssertCheck(result == 1, "Verify returned value; expected: 0; got: %i", result);
|
||||
#endif
|
||||
SDLTest_AssertCheck(result == 1, "Verify returned value; expected: 1; got: %i", result);
|
||||
|
||||
/* Close device again */
|
||||
SDL_CloseAudioDevice(id);
|
||||
|
|
138
test/testautomation_sdltest.c
Normal file
138
test/testautomation_sdltest.c
Normal file
|
@ -0,0 +1,138 @@
|
|||
/**
|
||||
* SDL_test test suite
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <limits.h>
|
||||
#include <float.h>
|
||||
|
||||
#include "SDL.h"
|
||||
#include "SDL_test.h"
|
||||
|
||||
/* Test case functions */
|
||||
|
||||
/**
|
||||
* @brief Calls to SDLTest_GetFuzzerInvocationCount()
|
||||
*/
|
||||
int
|
||||
sdltest_getFuzzerInvocationCount(void *arg)
|
||||
{
|
||||
Uint8 result;
|
||||
int fuzzerCount1, fuzzerCount2;
|
||||
|
||||
fuzzerCount1 = SDLTest_GetFuzzerInvocationCount();
|
||||
SDLTest_AssertPass("Call to SDLTest_GetFuzzerInvocationCount()");
|
||||
SDLTest_AssertCheck(fuzzerCount1 >= 0, "Verify returned value, expected: >=0, got: %d", fuzzerCount1);
|
||||
|
||||
result = SDLTest_RandomUint8();
|
||||
SDLTest_AssertPass("Call to SDLTest_RandomUint8(), returned %d", result);
|
||||
|
||||
fuzzerCount2 = SDLTest_GetFuzzerInvocationCount();
|
||||
SDLTest_AssertPass("Call to SDLTest_GetFuzzerInvocationCount()");
|
||||
SDLTest_AssertCheck(fuzzerCount2 > fuzzerCount1, "Verify returned value, expected: >%d, got: %d", fuzzerCount1, fuzzerCount2);
|
||||
|
||||
return TEST_COMPLETED;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Calls to random number generators
|
||||
*/
|
||||
int
|
||||
sdltest_randomNumber(void *arg)
|
||||
{
|
||||
Sint64 result;
|
||||
Uint64 uresult;
|
||||
double dresult;
|
||||
Uint64 umax;
|
||||
Sint64 min, max;
|
||||
|
||||
result = (Sint64)SDLTest_RandomUint8();
|
||||
umax = (1 << 8) - 1;
|
||||
SDLTest_AssertPass("Call to SDLTest_RandomUint8");
|
||||
SDLTest_AssertCheck(result >= 0 && result <= umax, "Verify result value, expected: [0,%llu], got: %lld", umax, result);
|
||||
|
||||
result = (Sint64)SDLTest_RandomSint8();
|
||||
min = 1 - (1 << 7);
|
||||
max = (1 << 7) - 1;
|
||||
SDLTest_AssertPass("Call to SDLTest_RandomSint8");
|
||||
SDLTest_AssertCheck(result >= min && result <= max, "Verify result value, expected: [%lld,%lld], got: %lld", min, max, result);
|
||||
|
||||
result = (Sint64)SDLTest_RandomUint16();
|
||||
umax = (1 << 16) - 1;
|
||||
SDLTest_AssertPass("Call to SDLTest_RandomUint16");
|
||||
SDLTest_AssertCheck(result >= 0 && result <= umax, "Verify result value, expected: [0,%llu], got: %lld", umax, result);
|
||||
|
||||
result = (Sint64)SDLTest_RandomSint16();
|
||||
min = 1 - (1 << 15);
|
||||
max = (1 << 15) - 1;
|
||||
SDLTest_AssertPass("Call to SDLTest_RandomSint16");
|
||||
SDLTest_AssertCheck(result >= min && result <= max, "Verify result value, expected: [%lld,%lld], got: %lld", min, max, result);
|
||||
|
||||
result = (Sint64)SDLTest_RandomUint32();
|
||||
umax = ((Uint64)1 << 32) - 1;
|
||||
SDLTest_AssertPass("Call to SDLTest_RandomUint32");
|
||||
SDLTest_AssertCheck(result >= 0 && result <= umax, "Verify result value, expected: [0,%llu], got: %lld", umax, result);
|
||||
|
||||
result = (Sint64)SDLTest_RandomSint32();
|
||||
min = 1 - ((Sint64)1 << 31);
|
||||
max = ((Sint64)1 << 31) - 1;
|
||||
SDLTest_AssertPass("Call to SDLTest_RandomSint32");
|
||||
SDLTest_AssertCheck(result >= min && result <= max, "Verify result value, expected: [%lld,%lld], got: %lld", min, max, result);
|
||||
|
||||
result = (Sint64)SDLTest_RandomUint32();
|
||||
umax = ((Uint64)1 << 32) - 1;
|
||||
SDLTest_AssertPass("Call to SDLTest_RandomUint32");
|
||||
SDLTest_AssertCheck(result >= 0 && result <= umax, "Verify result value, expected: [0,%llu], got: %lld", umax, result);
|
||||
|
||||
result = (Sint64)SDLTest_RandomSint32();
|
||||
min = 1 - ((Sint64)1 << 31);
|
||||
max = ((Sint64)1 << 31) - 1;
|
||||
SDLTest_AssertPass("Call to SDLTest_RandomSint32");
|
||||
SDLTest_AssertCheck(result >= min && result <= max, "Verify result value, expected: [%lld,%lld], got: %lld", min, max, result);
|
||||
|
||||
uresult = SDLTest_RandomUint64();
|
||||
SDLTest_AssertPass("Call to SDLTest_RandomUint64");
|
||||
|
||||
result = SDLTest_RandomSint64();
|
||||
SDLTest_AssertPass("Call to SDLTest_RandomSint64");
|
||||
|
||||
dresult = (double)SDLTest_RandomUnitFloat();
|
||||
SDLTest_AssertPass("Call to SDLTest_RandomUnitFloat");
|
||||
SDLTest_AssertCheck(dresult >= 0.0 && dresult < 1.0, "Verify result value, expected: [0.0,1.0[, got: %e", dresult);
|
||||
|
||||
dresult = (double)SDLTest_RandomFloat();
|
||||
SDLTest_AssertPass("Call to SDLTest_RandomFloat");
|
||||
SDLTest_AssertCheck(dresult >= (double)(-FLT_MAX) && dresult <= (double)FLT_MAX, "Verify result value, expected: [%e,%e], got: %e", (double)(-FLT_MAX), (double)FLT_MAX, dresult);
|
||||
|
||||
dresult = (double)SDLTest_RandomUnitDouble();
|
||||
SDLTest_AssertPass("Call to SDLTest_RandomUnitDouble");
|
||||
SDLTest_AssertCheck(dresult >= 0.0 && dresult < 1.0, "Verify result value, expected: [0.0,1.0[, got: %e", dresult);
|
||||
|
||||
dresult = SDLTest_RandomDouble();
|
||||
SDLTest_AssertPass("Call to SDLTest_RandomDouble");
|
||||
|
||||
return TEST_COMPLETED;
|
||||
}
|
||||
|
||||
/* ================= Test References ================== */
|
||||
|
||||
/* SDL_test test cases */
|
||||
static const SDLTest_TestCaseReference sdltestTest1 =
|
||||
{ (SDLTest_TestCaseFp)sdltest_getFuzzerInvocationCount, "sdltest_getFuzzerInvocationCount", "Call to sdltest_GetFuzzerInvocationCount", TEST_ENABLED };
|
||||
|
||||
static const SDLTest_TestCaseReference sdltestTest2 =
|
||||
{ (SDLTest_TestCaseFp)sdltest_randomNumber, "sdltest_randomNumber", "Calls to random number generators", TEST_ENABLED };
|
||||
|
||||
/* Sequence of SDL_test test cases */
|
||||
static const SDLTest_TestCaseReference *sdltestTests[] = {
|
||||
&sdltestTest1, &sdltestTest2, NULL
|
||||
};
|
||||
|
||||
/* SDL_test test suite (global) */
|
||||
SDLTest_TestSuiteReference sdltestTestSuite = {
|
||||
"SDLtest",
|
||||
NULL,
|
||||
sdltestTests,
|
||||
NULL
|
||||
};
|
|
@ -19,6 +19,7 @@ extern SDLTest_TestSuiteReference renderTestSuite;
|
|||
extern SDLTest_TestSuiteReference rwopsTestSuite;
|
||||
extern SDLTest_TestSuiteReference surfaceTestSuite;
|
||||
extern SDLTest_TestSuiteReference syswmTestSuite;
|
||||
extern SDLTest_TestSuiteReference sdltestTestSuite;
|
||||
extern SDLTest_TestSuiteReference videoTestSuite;
|
||||
extern SDLTest_TestSuiteReference mouseTestSuite;
|
||||
extern SDLTest_TestSuiteReference timerTestSuite;
|
||||
|
@ -35,6 +36,7 @@ SDLTest_TestSuiteReference *testSuites[] = {
|
|||
&rwopsTestSuite,
|
||||
&surfaceTestSuite,
|
||||
&syswmTestSuite,
|
||||
&sdltestTestSuite,
|
||||
&videoTestSuite,
|
||||
&mouseTestSuite,
|
||||
&timerTestSuite,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue