#define RT_CORE_IMPLEMENTATION #include "rtcore.h" #include THREAD_FN(TestThread) { int *p = param; printf("Thread got param %d\n", AtomicLoad(p)); AtomicStore(p, 42); return 0; } internal int AllocTest(void) { char space[260]; arena a = {.begin = space, .end = space + countof(space) }; int *t = alloc(&a, int); if (!t) return 0; *t = 42; int *t2 = alloc(&a, int); if (t == t2) return 0; *t2 = *t; return 1; } internal int ReadFileTest(void) { char space[260]; arena a = {.begin = space, .end = space + countof(space) }; s8 data = ReadEntireFileS8(S8("somedata.txt"), &a); return S8Equals(data, S8("1234567890\n")); } internal int ThreadTest(void) { int p = 32; thread *t = StartThread(TestThread, &p); JoinThread(t); return AtomicLoad(&p) == 42; } int main() { if (!AllocTest()) return 1; if (!ReadFileTest()) return 2; if (!ThreadTest()) return 3; return 0; }