From 4168cca8124acdbd1866eb87810efe1cfe16903c Mon Sep 17 00:00:00 2001 From: Kimplul Date: Thu, 22 Aug 2024 00:08:46 +0300 Subject: add basic ipc-req test --- tests/ipc-req/init.c | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 tests/ipc-req/init.c (limited to 'tests/ipc-req/init.c') diff --git a/tests/ipc-req/init.c b/tests/ipc-req/init.c new file mode 100644 index 0000000..7f1c6aa --- /dev/null +++ b/tests/ipc-req/init.c @@ -0,0 +1,36 @@ +#include + +START(pid, tid, d0, d1, d2, d3) +{ + check(pid == 0 || pid == 1, "illegal pid for init"); + if (pid == 0) { + /* send request to ourselves */ + printf("sending ipc req to ourselves\n"); + struct sys_ret r = sys_ipc_req4(1, 1, 2, 3, 4); + printf("returned ipc req to ourselves\n"); + check(r.s == OK, "not OK return\n"); + check(r.a0 == 1, "not OK response ID\n"); + check(r.a1 == 1, "not OK d0 response\n"); + check(r.a2 == 2, "not OK d1 response\n"); + check(r.a3 == 3, "not OK d2 response\n"); + check(r.a4 == 4, "not OK d3 response\n"); + + /* try to request to non-existing proc */ + r = sys_ipc_req0(200); + check(r.s != OK, "got OK return for illegal pid\n"); + } + else if (pid == 1) { + printf("caught ipc req\n"); + check(pid == 1, "illegal pid source\n"); + check(tid == 1, "illegal tid source\n"); + check(d0 == 1, "illegal d0\n"); + check(d1 == 2, "illegal d1\n"); + check(d2 == 3, "illegal d2\n"); + check(d3 == 4, "illegal d3\n"); + + printf("sending response\n"); + sys_ipc_resp4(1, 2, 3, 4); + } + + ok(); +} -- cgit v1.3