Add test coverage for SDL_SetWindowData and SDL_GetWindowData to Video suite
This commit is contained in:
parent
7c5943b1ee
commit
619405f9a3
1 changed files with 222 additions and 2 deletions
|
@ -601,7 +601,7 @@ void _checkInvalidWindowError()
|
||||||
const char *invalidWindowError = "Invalid window";
|
const char *invalidWindowError = "Invalid window";
|
||||||
char *lastError;
|
char *lastError;
|
||||||
|
|
||||||
lastError = (char *)SDL_GetError();
|
lastError = (char *)SDL_GetError();
|
||||||
SDLTest_AssertPass("SDL_GetError()");
|
SDLTest_AssertPass("SDL_GetError()");
|
||||||
SDLTest_AssertCheck(lastError != NULL, "Verify error message is not NULL");
|
SDLTest_AssertCheck(lastError != NULL, "Verify error message is not NULL");
|
||||||
if (lastError != NULL) {
|
if (lastError != NULL) {
|
||||||
|
@ -1486,6 +1486,223 @@ video_getSetWindowMaximumSize(void *arg)
|
||||||
return TEST_COMPLETED;
|
return TEST_COMPLETED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Tests call to SDL_SetWindowData and SDL_GetWindowData
|
||||||
|
*
|
||||||
|
* @sa http://wiki.libsdl.org/moin.fcg/SDL_SetWindowData
|
||||||
|
* @sa http://wiki.libsdl.org/moin.fcg/SDL_GetWindowData
|
||||||
|
*/
|
||||||
|
int
|
||||||
|
video_getSetWindowData(void *arg)
|
||||||
|
{
|
||||||
|
int returnValue = TEST_COMPLETED;
|
||||||
|
const char* title = "video_setGetWindowData Test Window";
|
||||||
|
SDL_Window* window;
|
||||||
|
const char *referenceName = "TestName";
|
||||||
|
const char *name = "TestName";
|
||||||
|
const char *referenceName2 = "TestName2";
|
||||||
|
const char *name2 = "TestName2";
|
||||||
|
int datasize;
|
||||||
|
char *referenceUserdata;
|
||||||
|
char *userdata;
|
||||||
|
char *referenceUserdata2;
|
||||||
|
char *userdata2;
|
||||||
|
char *result;
|
||||||
|
int iteration;
|
||||||
|
|
||||||
|
/* Call against new test window */
|
||||||
|
window = _createVideoSuiteTestWindow(title);
|
||||||
|
if (window == NULL) return TEST_ABORTED;
|
||||||
|
|
||||||
|
/* Create testdata */
|
||||||
|
datasize = SDLTest_RandomIntegerInRange(1, 32);
|
||||||
|
referenceUserdata = SDLTest_RandomAsciiStringOfSize(datasize);
|
||||||
|
if (referenceUserdata == NULL) {
|
||||||
|
returnValue = TEST_ABORTED;
|
||||||
|
goto cleanup;
|
||||||
|
}
|
||||||
|
userdata = (char *)strdup(referenceUserdata);
|
||||||
|
if (userdata == NULL) {
|
||||||
|
returnValue = TEST_ABORTED;
|
||||||
|
goto cleanup;
|
||||||
|
}
|
||||||
|
datasize = SDLTest_RandomIntegerInRange(1, 32);
|
||||||
|
referenceUserdata2 = SDLTest_RandomAsciiStringOfSize(datasize);
|
||||||
|
if (referenceUserdata2 == NULL) {
|
||||||
|
returnValue = TEST_ABORTED;
|
||||||
|
goto cleanup;
|
||||||
|
}
|
||||||
|
userdata2 = (char *)strdup(referenceUserdata2);
|
||||||
|
if (userdata2 == NULL) {
|
||||||
|
returnValue = TEST_ABORTED;
|
||||||
|
goto cleanup;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Get non-existent data */
|
||||||
|
result = (char *)SDL_GetWindowData(window, name);
|
||||||
|
SDLTest_AssertPass("Call to SDL_GetWindowData(..,%s)", name);
|
||||||
|
SDLTest_AssertCheck(result == NULL, "Validate that result is NULL");
|
||||||
|
SDLTest_AssertCheck(SDL_strcmp(referenceName, name) == 0, "Validate that name was not changed, expected: %s, got: %s", referenceName, name);
|
||||||
|
|
||||||
|
/* Set data */
|
||||||
|
result = SDL_SetWindowData(window, name, userdata);
|
||||||
|
SDLTest_AssertPass("Call to SDL_SetWindowData(...%s,%s)", name, userdata);
|
||||||
|
SDLTest_AssertCheck(result == NULL, "Validate that result is NULL");
|
||||||
|
SDLTest_AssertCheck(SDL_strcmp(referenceName, name) == 0, "Validate that name was not changed, expected: %s, got: %s", referenceName, name);
|
||||||
|
SDLTest_AssertCheck(SDL_strcmp(referenceUserdata, userdata) == 0, "Validate that userdata was not changed, expected: %s, got: %s", referenceUserdata, userdata);
|
||||||
|
|
||||||
|
/* Get data (twice) */
|
||||||
|
for (iteration = 1; iteration <= 2; iteration++) {
|
||||||
|
result = (char *)SDL_GetWindowData(window, name);
|
||||||
|
SDLTest_AssertPass("Call to SDL_GetWindowData(..,%s) [iteration %d]", name, iteration);
|
||||||
|
SDLTest_AssertCheck(SDL_strcmp(referenceUserdata, result) == 0, "Validate that correct result was returned; expected: %s, got: %s", referenceUserdata, result);
|
||||||
|
SDLTest_AssertCheck(SDL_strcmp(referenceName, name) == 0, "Validate that name was not changed, expected: %s, got: %s", referenceName, name);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Set data again twice */
|
||||||
|
for (iteration = 1; iteration <= 2; iteration++) {
|
||||||
|
result = SDL_SetWindowData(window, name, userdata);
|
||||||
|
SDLTest_AssertPass("Call to SDL_SetWindowData(...%s,%s) [iteration %d]", name, userdata, iteration);
|
||||||
|
SDLTest_AssertCheck(SDL_strcmp(referenceUserdata, result) == 0, "Validate that correct result was returned; expected: %s, got: %s", referenceUserdata, result);
|
||||||
|
SDLTest_AssertCheck(SDL_strcmp(referenceName, name) == 0, "Validate that name was not changed, expected: %s, got: %s", referenceName, name);
|
||||||
|
SDLTest_AssertCheck(SDL_strcmp(referenceUserdata, userdata) == 0, "Validate that userdata was not changed, expected: %s, got: %s", referenceUserdata, userdata);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Get data again */
|
||||||
|
result = (char *)SDL_GetWindowData(window, name);
|
||||||
|
SDLTest_AssertPass("Call to SDL_GetWindowData(..,%s) [again]", name);
|
||||||
|
SDLTest_AssertCheck(SDL_strcmp(referenceUserdata, result) == 0, "Validate that correct result was returned; expected: %s, got: %s", referenceUserdata, result);
|
||||||
|
SDLTest_AssertCheck(SDL_strcmp(referenceName, name) == 0, "Validate that name was not changed, expected: %s, got: %s", referenceName, name);
|
||||||
|
|
||||||
|
/* Set data with new data */
|
||||||
|
result = SDL_SetWindowData(window, name, userdata2);
|
||||||
|
SDLTest_AssertPass("Call to SDL_SetWindowData(...%s,%s) [new userdata]", name, userdata2);
|
||||||
|
SDLTest_AssertCheck(SDL_strcmp(referenceUserdata, result) == 0, "Validate that correct result was returned; expected: %s, got: %s", referenceUserdata, result);
|
||||||
|
SDLTest_AssertCheck(SDL_strcmp(referenceName, name) == 0, "Validate that name was not changed, expected: %s, got: %s", referenceName, name);
|
||||||
|
SDLTest_AssertCheck(SDL_strcmp(referenceUserdata, userdata) == 0, "Validate that userdata was not changed, expected: %s, got: %s", referenceUserdata, userdata);
|
||||||
|
SDLTest_AssertCheck(SDL_strcmp(referenceUserdata2, userdata2) == 0, "Validate that userdata2 was not changed, expected: %s, got: %s", referenceUserdata2, userdata2);
|
||||||
|
|
||||||
|
/* Set data with new data again */
|
||||||
|
result = SDL_SetWindowData(window, name, userdata2);
|
||||||
|
SDLTest_AssertPass("Call to SDL_SetWindowData(...%s,%s) [new userdata again]", name, userdata2);
|
||||||
|
SDLTest_AssertCheck(SDL_strcmp(referenceUserdata2, result) == 0, "Validate that correct result was returned; expected: %s, got: %s", referenceUserdata2, result);
|
||||||
|
SDLTest_AssertCheck(SDL_strcmp(referenceName, name) == 0, "Validate that name was not changed, expected: %s, got: %s", referenceName, name);
|
||||||
|
SDLTest_AssertCheck(SDL_strcmp(referenceUserdata, userdata) == 0, "Validate that userdata was not changed, expected: %s, got: %s", referenceUserdata, userdata);
|
||||||
|
SDLTest_AssertCheck(SDL_strcmp(referenceUserdata2, userdata2) == 0, "Validate that userdata2 was not changed, expected: %s, got: %s", referenceUserdata2, userdata2);
|
||||||
|
|
||||||
|
/* Get new data */
|
||||||
|
result = (char *)SDL_GetWindowData(window, name);
|
||||||
|
SDLTest_AssertPass("Call to SDL_GetWindowData(..,%s)", name);
|
||||||
|
SDLTest_AssertCheck(SDL_strcmp(referenceUserdata2, result) == 0, "Validate that correct result was returned; expected: %s, got: %s", referenceUserdata2, result);
|
||||||
|
SDLTest_AssertCheck(SDL_strcmp(referenceName, name) == 0, "Validate that name was not changed, expected: %s, got: %s", referenceName, name);
|
||||||
|
|
||||||
|
/* Set data with NULL to clear */
|
||||||
|
result = SDL_SetWindowData(window, name, NULL);
|
||||||
|
SDLTest_AssertPass("Call to SDL_SetWindowData(...%s,NULL)", name, userdata);
|
||||||
|
SDLTest_AssertCheck(SDL_strcmp(referenceUserdata2, result) == 0, "Validate that correct result was returned; expected: %s, got: %s", referenceUserdata2, result);
|
||||||
|
SDLTest_AssertCheck(SDL_strcmp(referenceName, name) == 0, "Validate that name was not changed, expected: %s, got: %s", referenceName, name);
|
||||||
|
SDLTest_AssertCheck(SDL_strcmp(referenceUserdata, userdata) == 0, "Validate that userdata was not changed, expected: %s, got: %s", referenceUserdata, userdata);
|
||||||
|
SDLTest_AssertCheck(SDL_strcmp(referenceUserdata2, userdata2) == 0, "Validate that userdata2 was not changed, expected: %s, got: %s", referenceUserdata2, userdata2);
|
||||||
|
|
||||||
|
/* Set data with NULL to clear again */
|
||||||
|
result = SDL_SetWindowData(window, name, NULL);
|
||||||
|
SDLTest_AssertPass("Call to SDL_SetWindowData(...%s,NULL) [again]", name, userdata);
|
||||||
|
SDLTest_AssertCheck(result == NULL, "Validate that result is NULL");
|
||||||
|
SDLTest_AssertCheck(SDL_strcmp(referenceName, name) == 0, "Validate that name was not changed, expected: %s, got: %s", referenceName, name);
|
||||||
|
SDLTest_AssertCheck(SDL_strcmp(referenceUserdata, userdata) == 0, "Validate that userdata was not changed, expected: %s, got: %s", referenceUserdata, userdata);
|
||||||
|
SDLTest_AssertCheck(SDL_strcmp(referenceUserdata2, userdata2) == 0, "Validate that userdata2 was not changed, expected: %s, got: %s", referenceUserdata2, userdata2);
|
||||||
|
|
||||||
|
/* Get non-existent data */
|
||||||
|
result = (char *)SDL_GetWindowData(window, name);
|
||||||
|
SDLTest_AssertPass("Call to SDL_GetWindowData(..,%s)", name);
|
||||||
|
SDLTest_AssertCheck(result == NULL, "Validate that result is NULL");
|
||||||
|
SDLTest_AssertCheck(SDL_strcmp(referenceName, name) == 0, "Validate that name was not changed, expected: %s, got: %s", referenceName, name);
|
||||||
|
|
||||||
|
/* Get non-existent data new name */
|
||||||
|
result = (char *)SDL_GetWindowData(window, name2);
|
||||||
|
SDLTest_AssertPass("Call to SDL_GetWindowData(..,%s)", name2);
|
||||||
|
SDLTest_AssertCheck(result == NULL, "Validate that result is NULL");
|
||||||
|
SDLTest_AssertCheck(SDL_strcmp(referenceName2, name2) == 0, "Validate that name2 was not changed, expected: %s, got: %s", referenceName2, name2);
|
||||||
|
|
||||||
|
/* Set data (again) */
|
||||||
|
result = SDL_SetWindowData(window, name, userdata);
|
||||||
|
SDLTest_AssertPass("Call to SDL_SetWindowData(...%s,%s) [again, after clear]", name, userdata);
|
||||||
|
SDLTest_AssertCheck(result == NULL, "Validate that result is NULL");
|
||||||
|
SDLTest_AssertCheck(SDL_strcmp(referenceName, name) == 0, "Validate that name was not changed, expected: %s, got: %s", referenceName, name);
|
||||||
|
SDLTest_AssertCheck(SDL_strcmp(referenceUserdata, userdata) == 0, "Validate that userdata was not changed, expected: %s, got: %s", referenceUserdata, userdata);
|
||||||
|
|
||||||
|
/* Get data (again) */
|
||||||
|
result = (char *)SDL_GetWindowData(window, name);
|
||||||
|
SDLTest_AssertPass("Call to SDL_GetWindowData(..,%s) [again, after clear]", name);
|
||||||
|
SDLTest_AssertCheck(SDL_strcmp(referenceUserdata, result) == 0, "Validate that correct result was returned; expected: %s, got: %s", referenceUserdata, result);
|
||||||
|
SDLTest_AssertCheck(SDL_strcmp(referenceName, name) == 0, "Validate that name was not changed, expected: %s, got: %s", referenceName, name);
|
||||||
|
|
||||||
|
/* Negative test */
|
||||||
|
SDL_ClearError();
|
||||||
|
SDLTest_AssertPass("Call to SDL_ClearError()");
|
||||||
|
|
||||||
|
/* Set with invalid window */
|
||||||
|
result = SDL_SetWindowData(NULL, name, userdata);
|
||||||
|
SDLTest_AssertPass("Call to SDL_SetWindowData(window=NULL)");
|
||||||
|
SDLTest_AssertCheck(result == NULL, "Validate that result is NULL");
|
||||||
|
_checkInvalidWindowError();
|
||||||
|
|
||||||
|
/* Set data with NULL name, valid userdata */
|
||||||
|
result = SDL_SetWindowData(window, NULL, userdata);
|
||||||
|
SDLTest_AssertPass("Call to SDL_SetWindowData(name=NULL)");
|
||||||
|
SDLTest_AssertCheck(result == NULL, "Validate that result is NULL");
|
||||||
|
_checkInvalidParameterError();
|
||||||
|
|
||||||
|
/* Set data with empty name, valid userdata */
|
||||||
|
result = SDL_SetWindowData(window, "", userdata);
|
||||||
|
SDLTest_AssertPass("Call to SDL_SetWindowData(name='')");
|
||||||
|
SDLTest_AssertCheck(result == NULL, "Validate that result is NULL");
|
||||||
|
_checkInvalidParameterError();
|
||||||
|
|
||||||
|
/* Set data with NULL name, NULL userdata */
|
||||||
|
result = SDL_SetWindowData(window, NULL, NULL);
|
||||||
|
SDLTest_AssertPass("Call to SDL_SetWindowData(name=NULL,userdata=NULL)");
|
||||||
|
SDLTest_AssertCheck(result == NULL, "Validate that result is NULL");
|
||||||
|
_checkInvalidParameterError();
|
||||||
|
|
||||||
|
/* Set data with empty name, NULL userdata */
|
||||||
|
result = SDL_SetWindowData(window, "", NULL);
|
||||||
|
SDLTest_AssertPass("Call to SDL_SetWindowData(name='',userdata=NULL)");
|
||||||
|
SDLTest_AssertCheck(result == NULL, "Validate that result is NULL");
|
||||||
|
_checkInvalidParameterError();
|
||||||
|
|
||||||
|
/* Get with invalid window */
|
||||||
|
result = SDL_GetWindowData(NULL, name);
|
||||||
|
SDLTest_AssertPass("Call to SDL_GetWindowData(window=NULL)");
|
||||||
|
SDLTest_AssertCheck(result == NULL, "Validate that result is NULL");
|
||||||
|
_checkInvalidWindowError();
|
||||||
|
|
||||||
|
/* Get data with NULL name */
|
||||||
|
result = SDL_GetWindowData(window, NULL);
|
||||||
|
SDLTest_AssertPass("Call to SDL_GetWindowData(name=NULL)");
|
||||||
|
SDLTest_AssertCheck(result == NULL, "Validate that result is NULL");
|
||||||
|
_checkInvalidParameterError();
|
||||||
|
|
||||||
|
/* Get data with empty name */
|
||||||
|
result = SDL_GetWindowData(window, "");
|
||||||
|
SDLTest_AssertPass("Call to SDL_GetWindowData(name='')");
|
||||||
|
SDLTest_AssertCheck(result == NULL, "Validate that result is NULL");
|
||||||
|
_checkInvalidParameterError();
|
||||||
|
|
||||||
|
/* Clean up */
|
||||||
|
_destroyVideoSuiteTestWindow(window);
|
||||||
|
|
||||||
|
cleanup:
|
||||||
|
if (referenceUserdata != NULL) SDL_free(referenceUserdata);
|
||||||
|
if (referenceUserdata2 != NULL) SDL_free(referenceUserdata2);
|
||||||
|
if (userdata != NULL) SDL_free(userdata);
|
||||||
|
if (userdata != NULL) SDL_free(userdata);
|
||||||
|
|
||||||
|
return returnValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* ================= Test References ================== */
|
/* ================= Test References ================== */
|
||||||
|
|
||||||
/* Video test cases */
|
/* Video test cases */
|
||||||
|
@ -1555,13 +1772,16 @@ static const SDLTest_TestCaseReference videoTest21 =
|
||||||
static const SDLTest_TestCaseReference videoTest22 =
|
static const SDLTest_TestCaseReference videoTest22 =
|
||||||
{ (SDLTest_TestCaseFp)video_getSetWindowMaximumSize, "video_getSetWindowMaximumSize", "Checks SDL_GetWindowMaximumSize and SDL_SetWindowMaximumSize positive and negative cases", TEST_ENABLED };
|
{ (SDLTest_TestCaseFp)video_getSetWindowMaximumSize, "video_getSetWindowMaximumSize", "Checks SDL_GetWindowMaximumSize and SDL_SetWindowMaximumSize positive and negative cases", TEST_ENABLED };
|
||||||
|
|
||||||
|
static const SDLTest_TestCaseReference videoTest23 =
|
||||||
|
{ (SDLTest_TestCaseFp)video_getSetWindowData, "video_getSetWindowData", "Checks SDL_SetWindowData and SDL_GetWindowData positive and negative cases", TEST_ENABLED };
|
||||||
|
|
||||||
/* Sequence of Video test cases */
|
/* Sequence of Video test cases */
|
||||||
static const SDLTest_TestCaseReference *videoTests[] = {
|
static const SDLTest_TestCaseReference *videoTests[] = {
|
||||||
&videoTest1, &videoTest2, &videoTest3, &videoTest4, &videoTest5, &videoTest6,
|
&videoTest1, &videoTest2, &videoTest3, &videoTest4, &videoTest5, &videoTest6,
|
||||||
&videoTest7, &videoTest8, &videoTest9, &videoTest10, &videoTest11, &videoTest12,
|
&videoTest7, &videoTest8, &videoTest9, &videoTest10, &videoTest11, &videoTest12,
|
||||||
&videoTest13, &videoTest14, &videoTest15, &videoTest16, &videoTest17,
|
&videoTest13, &videoTest14, &videoTest15, &videoTest16, &videoTest17,
|
||||||
&videoTest18, &videoTest19, &videoTest20, &videoTest21, &videoTest22,
|
&videoTest18, &videoTest19, &videoTest20, &videoTest21, &videoTest22,
|
||||||
NULL
|
&videoTest23, NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Video test suite (global) */
|
/* Video test suite (global) */
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue