aboutgitcodelistschat:MatrixIRC
path: root/tests/unit/util.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/unit/util.c')
-rw-r--r--tests/unit/util.c24
1 files changed, 20 insertions, 4 deletions
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()