test: Add some common code to load test resources

As well as reducing duplication, this lets the tests load their resources
from the SDL_GetBasePath() on platforms that support it, which is useful
if the tests are compiled along with the rest of SDL and installed below
/usr as manual tests, similar to GNOME's installed-tests convention.

Thanks to Ozkan Sezer for the OS/2 build glue.

Co-authored-by: Ozkan Sezer <sezeroz@gmail.com>
Signed-off-by: Simon McVittie <smcv@collabora.com>
This commit is contained in:
Simon McVittie
2022-04-12 13:07:18 +01:00
committed by Sam Lantinga
parent ecf1e15fec
commit 76a7b629bf
31 changed files with 344 additions and 508 deletions

View File

@@ -13,6 +13,7 @@
#include <stdio.h>
#include "SDL.h"
#include "testutils.h"
static size_t
widelen(char *data)
@@ -43,7 +44,7 @@ main(int argc, char *argv[])
"UCS-4",
};
const char * fname;
char * fname;
char buffer[BUFSIZ];
char *ucs4;
char *test[2];
@@ -54,12 +55,13 @@ main(int argc, char *argv[])
/* Enable standard application logging */
SDL_LogSetPriority(SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_PRIORITY_INFO);
fname = (argc < 2) ? "utf8.txt" : argv[1];
fname = GetResourceFilename(argc > 1 ? argv[1] : NULL, "utf8.txt");
file = fopen(fname, "rb");
if (!file) {
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Unable to open %s\n", fname);
return (1);
}
SDL_free(fname);
while (fgets(buffer, sizeof(buffer), file)) {
/* Convert to UCS-4 */