diff options
author | dzwdz | 2023-08-14 18:51:07 +0200 |
---|---|---|
committer | dzwdz | 2023-08-14 18:51:07 +0200 |
commit | 642b5fb0007b64c77d186fcb018d571152ee1d47 (patch) | |
tree | 1c466461f3602d306be309a053edae558ef2568e /src/user/app/tests/kernel/threads.c | |
parent | 8050069c57b729c18c19b1a03ab6e4bf63b4735e (diff) |
reorganization: first steps
Diffstat (limited to 'src/user/app/tests/kernel/threads.c')
-rw-r--r-- | src/user/app/tests/kernel/threads.c | 55 |
1 files changed, 0 insertions, 55 deletions
diff --git a/src/user/app/tests/kernel/threads.c b/src/user/app/tests/kernel/threads.c deleted file mode 100644 index b3c1c06..0000000 --- a/src/user/app/tests/kernel/threads.c +++ /dev/null @@ -1,55 +0,0 @@ -#include "../tests.h" -#include <camellia/flags.h> -#include <camellia/syscalls.h> -#include <string.h> -#include <esemaphore.h> -#include <thread.h> - -int global_n; -static void basic_thread(void *sem) { - global_n = 10; - esem_signal(sem); -} -static void test_basic_thread(void) { - struct evil_sem *sem = esem_new(0); - global_n = 0; - thread_create(FORK_NOREAP, basic_thread, sem); - esem_wait(sem); - test(global_n == 10); -} - -hid_t global_h; -static void shared_handle(void *sem) { - hid_t ends[2]; - test(_sys_pipe(ends, 0) >= 0); - global_h = ends[0]; - esem_signal(sem); - _sys_write(ends[1], "Hello!", 7, -1, 0); -} -static void test_shared_handle(void) { - struct evil_sem *sem = esem_new(0); - char buf[16]; - global_h = -1; - thread_create(FORK_NOREAP, shared_handle, sem); - esem_wait(sem); - - test(global_h >= 0); - test(_sys_read(global_h, buf, sizeof buf, 0) == 7); - test(!strcmp("Hello!", buf)); -} - -static void many_thread(void *arg) { - *(uint64_t*)arg += 10; -} -static void test_many_threads(void) { - uint64_t n = 0; - for (int i = 0; i < 10; i++) thread_create(0, many_thread, &n); - for (int i = 0; i < 10; i++) _sys_await(); - test(n == 100); -} - -void r_k_threads(void) { - run_test(test_basic_thread); - run_test(test_shared_handle); - run_test(test_many_threads); -} |