aboutsummaryrefslogtreecommitdiff
path: root/tests/ipc-req/init.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ipc-req/init.c')
-rw-r--r--tests/ipc-req/init.c28
1 files changed, 17 insertions, 11 deletions
diff --git a/tests/ipc-req/init.c b/tests/ipc-req/init.c
index 3439335..90e04a7 100644
--- a/tests/ipc-req/init.c
+++ b/tests/ipc-req/init.c
@@ -4,19 +4,25 @@ 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.id == 1, "not OK response ID\n");
- check(r.a0 == 1, "not OK d0 response\n");
- check(r.a1 == 2, "not OK d1 response\n");
- check(r.a2 == 3, "not OK d2 response\n");
- check(r.a3 == 4, "not OK d3 response\n");
+ printf("doing nonsense response\n");
+ enum sys_status s = sys_ipc_resp0();
+ check(s != OK, "OK return?\n");
+
+ for (size_t i = 0; i < 3; ++i) {
+ printf("sending ipc req %zd to ourselves\n", i);
+ 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.id == 1, "not OK response ID\n");
+ check(r.a0 == 1, "not OK d0 response\n");
+ check(r.a1 == 2, "not OK d1 response\n");
+ check(r.a2 == 3, "not OK d2 response\n");
+ check(r.a3 == 4, "not OK d3 response\n");
+ }
/* try to request to non-existing proc */
- r = sys_ipc_req0(200);
+ struct sys_ret r = sys_ipc_req0(200);
check(r.s != OK, "got OK return for illegal pid\n");
}
else if (pid == 1) {