rtcore/test.c
2025-12-01 01:30:08 +01:00

61 lines
951 B
C

#define RT_CORE_IMPLEMENTATION
#include "rtcore.h"
#include <stdio.h>
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;
}