aboutgitcodelistschat:MatrixIRC
path: root/tests/unit/test_action_call.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/unit/test_action_call.c')
-rw-r--r--tests/unit/test_action_call.c142
1 files changed, 70 insertions, 72 deletions
diff --git a/tests/unit/test_action_call.c b/tests/unit/test_action_call.c
index b039c8a..8621174 100644
--- a/tests/unit/test_action_call.c
+++ b/tests/unit/test_action_call.c
@@ -21,14 +21,13 @@ struct args_write_file {
ssize_t size;
};
-
static void write_file(char *file, char *t, ssize_t size)
{
int fd;
- fd = open(file, O_CREAT | O_RDWR, S_IWUSR |S_IRUSR);
+ fd = open(file, O_CREAT | O_RDWR, S_IWUSR | S_IRUSR);
ck_assert_int_ge(fd, -1);
- write(fd,t, size);
+ write(fd, t, size);
close(fd);
}
@@ -37,9 +36,9 @@ static int write_file_get_fd(char *file, char *t, ssize_t size)
int fd;
write_file(file, t, size);
- fd = open(file, O_RDONLY, S_IWUSR);
- unlink(file);
- return fd;
+ fd = open(file, O_RDONLY, S_IWUSR);
+ unlink(file);
+ return fd;
}
static int write_file_clone(void *a)
@@ -57,44 +56,44 @@ static pid_t create_func_ns(int (*fn)(void *), void *arg, struct ns_spec ns[])
int flags = SIGCHLD;
unsigned int i;
- for (i=0; i < sizeof(sizeof(enum ns_type)); i++)
- {
+ for (i = 0; i < sizeof(sizeof(enum ns_type)); i++) {
if (ns[i].type == NS_NONE)
continue;
- switch(i){
- case NS_CGROUP:
- flags |= CLONE_NEWCGROUP;
- break;
- case NS_IPC:
- flags |= CLONE_NEWIPC;
- break;
- case NS_NET:
- flags |= CLONE_NEWNET;
- break;
- case NS_MOUNT:
- flags |= CLONE_NEWNS;
- break;
- case NS_PID:
- flags |= CLONE_NEWPID;
- break;
- case NS_USER:
- flags |= CLONE_NEWUSER;
- break;
- case NS_UTS:
- flags |= CLONE_NEWUTS;
- break;
- case NS_TIME:
- fprintf(stderr, "option NS_TIME not suppoted by clone\n");
- break;
- default:
- fprintf(stderr, "unrecognized option %d\n", i);
+ switch (i) {
+ case NS_CGROUP:
+ flags |= CLONE_NEWCGROUP;
+ break;
+ case NS_IPC:
+ flags |= CLONE_NEWIPC;
+ break;
+ case NS_NET:
+ flags |= CLONE_NEWNET;
+ break;
+ case NS_MOUNT:
+ flags |= CLONE_NEWNS;
+ break;
+ case NS_PID:
+ flags |= CLONE_NEWPID;
+ break;
+ case NS_USER:
+ flags |= CLONE_NEWUSER;
+ break;
+ case NS_UTS:
+ flags |= CLONE_NEWUTS;
+ break;
+ case NS_TIME:
+ fprintf(stderr,
+ "option NS_TIME not suppoted by clone\n");
+ break;
+ default:
+ fprintf(stderr, "unrecognized option %d\n", i);
}
}
child = clone(fn, stack + sizeof(stack), flags, arg);
- if (child == -1) {
- perror("clone");
- exit(EXIT_FAILURE);
- }
+ if (child == -1) {
+ perror("clone");
+ exit(EXIT_FAILURE);
+ }
return child;
}
@@ -102,10 +101,9 @@ START_TEST(test_with_open_read_ns)
{
char test_file[] = "/tmp/test.txt";
char t[PATH_MAX] = "Hello Test";
- struct args_write_file args = {
- test_file, t, sizeof(t)};
+ struct args_write_file args = { test_file, t, sizeof(t) };
struct act_call call;
- int flags = O_RDWR;
+ int flags = O_RDWR;
struct arg_clone c;
char buf[PATH_MAX];
unsigned i;
@@ -114,29 +112,28 @@ START_TEST(test_with_open_read_ns)
int ret;
c.args = &call;
- count = sizeof(buf);
- for(i = 0; i < sizeof(enum ns_type); i++)
+ count = sizeof(buf);
+ for (i = 0; i < sizeof(enum ns_type); i++)
call.context.ns[i].type = NS_NONE;
call.context.ns[NS_MOUNT].type = NS_SPEC_PID;
pid = create_func_ns(write_file_clone, (void *)&args, call.context.ns);
call.context.ns[NS_MOUNT].pid = pid;
- call.nr = SYS_open;
- call.args[0] = (void *)&test_file;
- call.args[1] = (void *)(long)flags;
+ call.nr = SYS_open;
+ call.args[0] = (void *)&test_file;
+ call.args[1] = (void *)(long)flags;
ret = do_call(&c);
ck_assert_int_eq(ret, 0);
ck_assert_msg(c.ret >= 0, "expect ret %ld should be nonegative", c.ret);
- call.nr = SYS_read;
- call.args[0] = (void *)(long) c.ret;
- call.args[1] = (void *)&buf;
- call.args[2] = (void *)count;
+ call.nr = SYS_read;
+ call.args[0] = (void *)(long)c.ret;
+ call.args[1] = (void *)&buf;
+ call.args[2] = (void *)count;
ret = do_call(&c);
kill(pid, SIGCONT);
ck_assert_int_eq(ret, 0);
- ck_assert_msg(c.ret == count,
- "expect ret %ld to be %ld",c.ret, count);
+ ck_assert_msg(c.ret == count, "expect ret %ld to be %ld", c.ret, count);
ck_assert_str_eq(t, buf);
}
END_TEST
@@ -154,13 +151,13 @@ START_TEST(test_with_read)
c.args = &call;
fd = write_file_get_fd(test_file, t, sizeof(t));
- count = sizeof(buf);
- for(i = 0; i < sizeof(enum ns_type); i++)
+ count = sizeof(buf);
+ for (i = 0; i < sizeof(enum ns_type); i++)
call.context.ns[i].type = NS_NONE;
- call.nr = SYS_read;
- call.args[0] = (void *)(long) fd;
- call.args[1] = (void *)&buf;
- call.args[2] = (void *)count;
+ call.nr = SYS_read;
+ call.args[0] = (void *)(long)fd;
+ call.args[1] = (void *)&buf;
+ call.args[2] = (void *)count;
ret = do_call(&c);
ck_assert_int_eq(ret, 0);
@@ -174,34 +171,35 @@ START_TEST(test_with_getppid)
struct act_call call;
struct arg_clone c;
unsigned i;
- long pid = (long) getpid();
+ long pid = (long)getpid();
int ret;
- for(i = 0; i < sizeof(enum ns_type); i++)
+ for (i = 0; i < sizeof(enum ns_type); i++)
call.context.ns[i].type = NS_NONE;
- call.nr = SYS_getppid;
+ call.nr = SYS_getppid;
c.args = &call;
ret = do_call(&c);
ck_assert_int_eq(ret, 0);
- ck_assert_msg(c.ret == pid, "expect ret %ld to be equal to %ld", c.ret, pid);
+ ck_assert_msg(c.ret == pid, "expect ret %ld to be equal to %ld", c.ret,
+ pid);
}
END_TEST
Suite *action_call_suite(void)
{
- Suite *s;
- TCase *tactions;
+ Suite *s;
+ TCase *tactions;
- s = suite_create("Perform actions call");
- tactions = tcase_create("action calls");
+ s = suite_create("Perform actions call");
+ tactions = tcase_create("action calls");
- tcase_add_test(tactions, test_with_getppid);
- tcase_add_test(tactions, test_with_read);
- tcase_add_test(tactions,test_with_open_read_ns);
+ tcase_add_test(tactions, test_with_getppid);
+ tcase_add_test(tactions, test_with_read);
+ tcase_add_test(tactions, test_with_open_read_ns);
- suite_add_tcase(s, tactions);
+ suite_add_tcase(s, tactions);
- return s;
+ return s;
}
int main(void)