testautomation: use SDL functions for iostream test setup

This fixes the IOStream tests on iOS, since the current directory isn't writable
This commit is contained in:
Sam Lantinga
2025-09-22 10:07:21 -07:00
parent 9f9952d53a
commit 5d9b9673b9

View File

@@ -35,17 +35,17 @@ static const char IOStreamAlphabetString[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
static void SDLCALL IOStreamSetUp(void **arg) static void SDLCALL IOStreamSetUp(void **arg)
{ {
size_t fileLen; size_t fileLen;
FILE *handle; SDL_IOStream *handle;
size_t writtenLen; size_t writtenLen;
int result; bool result;
/* Clean up from previous runs (if any); ignore errors */ /* Clean up from previous runs (if any); ignore errors */
(void)remove(IOStreamReadTestFilename); SDL_RemovePath(IOStreamReadTestFilename);
(void)remove(IOStreamWriteTestFilename); SDL_RemovePath(IOStreamWriteTestFilename);
(void)remove(IOStreamAlphabetFilename); SDL_RemovePath(IOStreamAlphabetFilename);
/* Create a test file */ /* Create a test file */
handle = fopen(IOStreamReadTestFilename, "w"); handle = SDL_IOFromFile(IOStreamReadTestFilename, "w");
SDLTest_AssertCheck(handle != NULL, "Verify creation of file '%s' returned non NULL handle", IOStreamReadTestFilename); SDLTest_AssertCheck(handle != NULL, "Verify creation of file '%s' returned non NULL handle", IOStreamReadTestFilename);
if (handle == NULL) { if (handle == NULL) {
return; return;
@@ -53,13 +53,13 @@ static void SDLCALL IOStreamSetUp(void **arg)
/* Write some known text into it */ /* Write some known text into it */
fileLen = SDL_strlen(IOStreamHelloWorldTestString); fileLen = SDL_strlen(IOStreamHelloWorldTestString);
writtenLen = fwrite(IOStreamHelloWorldTestString, 1, fileLen, handle); writtenLen = SDL_WriteIO(handle, IOStreamHelloWorldTestString, fileLen);
SDLTest_AssertCheck(fileLen == writtenLen, "Verify number of written bytes, expected %i, got %i", (int)fileLen, (int)writtenLen); SDLTest_AssertCheck(fileLen == writtenLen, "Verify number of written bytes, expected %i, got %i", (int)fileLen, (int)writtenLen);
result = fclose(handle); result = SDL_CloseIO(handle);
SDLTest_AssertCheck(result == 0, "Verify result from fclose, expected 0, got %i", result); SDLTest_AssertCheck(result == true, "Verify result from SDL_CloseIO, expected true, got %s", result ? "true" : "false");
/* Create a second test file */ /* Create a second test file */
handle = fopen(IOStreamAlphabetFilename, "w"); handle = SDL_IOFromFile(IOStreamAlphabetFilename, "w");
SDLTest_AssertCheck(handle != NULL, "Verify creation of file '%s' returned non NULL handle", IOStreamAlphabetFilename); SDLTest_AssertCheck(handle != NULL, "Verify creation of file '%s' returned non NULL handle", IOStreamAlphabetFilename);
if (handle == NULL) { if (handle == NULL) {
return; return;
@@ -67,10 +67,10 @@ static void SDLCALL IOStreamSetUp(void **arg)
/* Write alphabet text into it */ /* Write alphabet text into it */
fileLen = SDL_strlen(IOStreamAlphabetString); fileLen = SDL_strlen(IOStreamAlphabetString);
writtenLen = fwrite(IOStreamAlphabetString, 1, fileLen, handle); writtenLen = SDL_WriteIO(handle, IOStreamAlphabetString, fileLen);
SDLTest_AssertCheck(fileLen == writtenLen, "Verify number of written bytes, expected %i, got %i", (int)fileLen, (int)writtenLen); SDLTest_AssertCheck(fileLen == writtenLen, "Verify number of written bytes, expected %i, got %i", (int)fileLen, (int)writtenLen);
result = fclose(handle); result = SDL_CloseIO(handle);
SDLTest_AssertCheck(result == 0, "Verify result from fclose, expected 0, got %i", result); SDLTest_AssertCheck(result == true, "Verify result from SDL_CloseIO, expected true, got %s", result ? "true" : "false");
SDLTest_AssertPass("Creation of test file completed"); SDLTest_AssertPass("Creation of test file completed");
} }