Skip to content

Commit 7d8a6f1

Browse files
committed
tests: port failing SDL_Renderer test from pysdl2 to testautomation
1 parent d63b337 commit 7d8a6f1

File tree

1 file changed

+45
-1
lines changed

1 file changed

+45
-1
lines changed

test/testautomation_render.c

Lines changed: 45 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -811,6 +811,46 @@ int render_testBlitBlend(void *arg)
811811
return TEST_COMPLETED;
812812
}
813813

814+
/**
815+
* @brief Tests setting and getting texture scale mode.
816+
*
817+
* \sa
818+
* http://wiki.libsdl.org/SDL2/SDL_SetTextureScaleMode
819+
* http://wiki.libsdl.org/SDL2/SDL_GetTextureScaleMode
820+
*/
821+
int render_testGetSetTextureScaleMode(void *arg)
822+
{
823+
const struct {
824+
const char *name;
825+
SDL_ScaleMode mode;
826+
} modes[] = {
827+
{ "SDL_ScaleModeNearest", SDL_ScaleModeNearest },
828+
{ "SDL_ScaleModeLinear", SDL_ScaleModeLinear },
829+
{ "SDL_ScaleModeBest", SDL_ScaleModeBest }
830+
};
831+
size_t i;
832+
833+
for (i = 0; i < SDL_arraysize(modes); i++) {
834+
SDL_Texture *texture;
835+
int result;
836+
SDL_ScaleMode actual_mode = SDL_ScaleModeNearest;
837+
838+
SDL_ClearError();
839+
SDLTest_AssertPass("About to call SDL_CreateTexture(renderer, SDL_PIXELFORMAT_ARGB8888, SDL_TEXTUREACCESS_STREAMING, 16, 16)");
840+
texture = SDL_CreateTexture(renderer, SDL_PIXELFORMAT_ARGB8888, SDL_TEXTUREACCESS_STREAMING, 16, 16);
841+
SDLTest_AssertCheck(texture != NULL, "SDL_CreateTexture must return a non-NULL texture");
842+
SDLTest_AssertPass("About to call SDL_SetTextureScaleMode(texture, %s)", modes[i].name);
843+
result = SDL_SetTextureScaleMode(texture, modes[i].mode);
844+
SDLTest_AssertCheck(result == 0, "SDL_SetTextureScaleMode must return 0, actual %d", result);
845+
SDLTest_AssertPass("About to call SDL_GetTextureScaleMode(texture)");
846+
result = SDL_GetTextureScaleMode(texture, &actual_mode);
847+
SDLTest_AssertCheck(result == 0, "SDL_SetTextureScaleMode must return 0, actual %d", result);
848+
SDLTest_AssertCheck(actual_mode == modes[i].mode, "SDL_GetTextureScaleMode must return %s (%d), actual=%d",
849+
modes[i].name, modes[i].mode, actual_mode);
850+
}
851+
return TEST_COMPLETED;
852+
}
853+
814854
/**
815855
* @brief Checks to see if functionality is supported. Helper function.
816856
*/
@@ -1161,9 +1201,13 @@ static const SDLTest_TestCaseReference renderTest7 = {
11611201
(SDLTest_TestCaseFp)render_testBlitBlend, "render_testBlitBlend", "Tests blitting with blending", TEST_DISABLED
11621202
};
11631203

1204+
static const SDLTest_TestCaseReference renderTest8 = {
1205+
(SDLTest_TestCaseFp)render_testGetSetTextureScaleMode, "render_testGetSetTextureScaleMode", "Tests setting/getting texture scale mode", TEST_ENABLED
1206+
};
1207+
11641208
/* Sequence of Render test cases */
11651209
static const SDLTest_TestCaseReference *renderTests[] = {
1166-
&renderTest1, &renderTest2, &renderTest3, &renderTest4, &renderTest5, &renderTest6, &renderTest7, NULL
1210+
&renderTest1, &renderTest2, &renderTest3, &renderTest4, &renderTest5, &renderTest6, &renderTest7, &renderTest8, NULL
11671211
};
11681212

11691213
/* Render test suite (global) */

0 commit comments

Comments
 (0)