61 lines
951 B
C
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;
|
|
}
|