aboutsummaryrefslogtreecommitdiff
path: root/src/tests
diff options
context:
space:
mode:
Diffstat (limited to 'src/tests')
-rw-r--r--src/tests/test.c45
1 files changed, 45 insertions, 0 deletions
diff --git a/src/tests/test.c b/src/tests/test.c
index f6213ae..af906cc 100644
--- a/src/tests/test.c
+++ b/src/tests/test.c
@@ -4,8 +4,10 @@
#include <lib/kmem.h>
#include <sys/core.h>
#include <sys/schedule.h>
+#include <util/mutex.h>
extern void atest(void);
+void btest(void);
void test_entry(void)
{
@@ -27,4 +29,47 @@ void test_entry(void)
dt += tf - ti;
DRAW64(34, 19, dt/64);
DRAW64(34+17, 19, dt%64);
+ btest();
+}
+
+static struct Mutex testm = {.addr = 0, .pid = 0};
+static int testi = 0;
+
+void ctest1(void)
+{
+ uart_string("1 Started\n");
+ sys1(4, &testm);
+ uart_string("1 Finished\n");
+}
+
+void ctest2(void)
+{
+ uart_string("2 Started\n");
+ sys1(4, &testm);
+ uart_string("2 Finished\n");
+ sys1(5, &testm);
+}
+
+void ctest3(void)
+{
+ uart_string("3 Started\n");
+ sys1(5, &testm);
+ uart_string("3 Finished\n");
+}
+
+void btest(void)
+{
+ if (testi % 3 == 0) {
+ testi++;
+ ctest1();
+ }
+ else if (testi % 3 == 1) {
+ testi++;
+ ctest2();
+ }
+ else if (testi % 3 == 2) {
+ testi++;
+ ctest3();
+ }
+ uart_hexn(&testm);
}