From 8717257069249cdb217575bb3a3512d35bfadafb Mon Sep 17 00:00:00 2001 From: Alice Frosi Date: Wed, 12 Apr 2023 14:26:59 +0200 Subject: Refactor tests to use same struct arg as the filter --- tests/unit/util.c | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) (limited to 'tests/unit/util.c') diff --git a/tests/unit/util.c b/tests/unit/util.c index 89d5d73..3406c3b 100644 --- a/tests/unit/util.c +++ b/tests/unit/util.c @@ -49,15 +49,31 @@ int install_notification_filter(struct args_target *at) filter, (unsigned short)(sizeof(filter) / sizeof(filter[0]))); } +static void parse_args_target(void *args[]) +{ + for (unsigned int i = 0; i < 6; i++) { + switch (at->args[i].type) { + case U64: + args[i] = (void *)at->args[i].value.v64; + break; + case U32: + args[i] = (void *)(long)at->args[i].value.v32; + break; + } + } +} + int target() { - int buf = 0; + void *args[6]; + int buf = 0; if (at->install_filter(at) < 0) { return -1; } - at->ret = syscall(at->nr, at->args[0], at->args[1], at->args[2], - at->args[3], at->args[4], at->args[5]); + parse_args_target(args); + at->ret = syscall(at->nr, args[0], args[1], args[2], args[3], args[4], + args[5]); at->err = errno; if (at->open_path) { if ((at->fd = open(path, O_CREAT | O_RDONLY)) < 0) { @@ -188,7 +204,7 @@ void mock_syscall_target() void set_args_no_check(struct args_target *at) { for (unsigned int i = 0; i < 6; i++) - at->cmp[i] = NO_CHECK; + at->args[i].cmp = NO_CHECK; } void setup() -- cgit v1.2.3