Adding threadtest to the build

This commit is contained in:
Ali Mashtizadeh 2015-01-18 15:15:55 -08:00
parent 02c0816e41
commit a0a9f28e25
4 changed files with 54 additions and 0 deletions

View File

@ -163,6 +163,7 @@ SConscript('sys/SConscript', variant_dir='build/sys')
SConscript('lib/libc/SConscript', variant_dir='build/lib/libc')
SConscript('bin/shell/SConscript', variant_dir='build/bin/shell')
SConscript('sbin/init/SConscript', variant_dir='build/sbin/init')
SConscript('tests/SConscript', variant_dir='build/tests')
# Build Tools
env["TOOLCHAINBUILD"] = "TRUE"
@ -184,6 +185,7 @@ if env["BOOTDISK"] == "1":
Depends(bootdisk, "#build/bin/shell/shell")
Depends(bootdisk, "#build/sbin/init/init")
Depends(bootdisk, "#build/sys/castor")
Depends(bootdisk, "#build/tests/threadtest")
env.Alias('bootdisk', '#build/bootdisk.img')
env.Install('$PREFIX/','#build/bootdisk.img')

View File

@ -10,5 +10,8 @@ DIR /
DIR sbin
FILE init build/sbin/init/init
END
DIR tests
FILE threadtest build/tests/threadtest
END
FILE LICENSE LICENSE
END

13
tests/SConscript Normal file
View File

@ -0,0 +1,13 @@
import sys
Import('env')
test_env = env.Clone()
test_env.Append(LINKFLAGS = ['-nostdlib'])
test_env.Append(CPPFLAGS = ['-fno-builtin', '-nostdinc'])
test_env.Append(CPPPATH = ['#build/include'])
test_env.Append(LIBPATH = ['#build/lib/libc'], LIBS = ['c'])
test_env.Program("threadtest", ["threadtest.c"])

36
tests/threadtest.c Normal file
View File

@ -0,0 +1,36 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
// Castor Only
#include <syscall.h>
void
threadEntry(uint64_t arg)
{
printf("Hello From Thread %d\n", arg);
OSThreadExit(arg);
}
int
main(int argc, const char *argv[])
{
char buf[256];
printf("Thread Test\n");
OSThreadCreate((uintptr_t)&threadEntry, 2);
OSThreadCreate((uintptr_t)&threadEntry, 3);
OSThreadCreate((uintptr_t)&threadEntry, 4);
int result = OSThreadWait(0);
printf("Result %d\n", result);
result = OSThreadWait(0);
printf("Result %d\n", result);
result = OSThreadWait(0);
printf("Result %d\n", result);
printf("Success!\n");
}