mirror of
https://github.com/mackron/miniaudio.git
synced 2026-04-21 15:56:58 +02:00
Rename some more test source files.
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
#include "../../miniaudio.c"
|
||||
#include "../../external/fs/fs.c"
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
#define MAX_TESTS 64
|
||||
#define TEST_OUTPUT_DIR "output"
|
||||
|
||||
typedef int (* ma_test_entry_proc)(int argc, char** argv);
|
||||
|
||||
typedef struct
|
||||
{
|
||||
const char* pName;
|
||||
ma_test_entry_proc onEntry;
|
||||
} ma_test;
|
||||
|
||||
static struct
|
||||
{
|
||||
ma_test pTests[MAX_TESTS];
|
||||
size_t count;
|
||||
} g_Tests;
|
||||
|
||||
ma_result ma_register_test(const char* pName, ma_test_entry_proc onEntry)
|
||||
{
|
||||
MA_ASSERT(pName != NULL);
|
||||
MA_ASSERT(onEntry != NULL);
|
||||
|
||||
if (g_Tests.count >= MAX_TESTS) {
|
||||
printf("Failed to register test %s because there are too many tests already registered. Increase the value of MAX_TESTS\n", pName);
|
||||
return MA_INVALID_OPERATION;
|
||||
}
|
||||
|
||||
g_Tests.pTests[g_Tests.count].pName = pName;
|
||||
g_Tests.pTests[g_Tests.count].onEntry = onEntry;
|
||||
g_Tests.count += 1;
|
||||
|
||||
return MA_SUCCESS;
|
||||
}
|
||||
|
||||
int ma_run_tests(int argc, char** argv)
|
||||
{
|
||||
int result;
|
||||
ma_bool32 hasError = MA_FALSE;
|
||||
size_t iTest;
|
||||
fs* pFS;
|
||||
|
||||
if (fs_init(NULL, &pFS) != FS_SUCCESS) {
|
||||
printf("Failed to initialize the file system.\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
fs_mkdir(pFS, TEST_OUTPUT_DIR);
|
||||
|
||||
for (iTest = 0; iTest < g_Tests.count; iTest += 1) {
|
||||
printf("=== BEGIN %s ===\n", g_Tests.pTests[iTest].pName);
|
||||
result = g_Tests.pTests[iTest].onEntry(argc, argv);
|
||||
printf("=== END %s : %s ===\n", g_Tests.pTests[iTest].pName, (result == 0) ? "PASSED" : "FAILED");
|
||||
|
||||
if (result != 0) {
|
||||
hasError = MA_TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
fs_uninit(pFS);
|
||||
pFS = NULL;
|
||||
|
||||
if (hasError) {
|
||||
return 1; /* Something failed. */
|
||||
} else {
|
||||
return 0; /* Everything passed. */
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user