Lines Matching refs:err

25 static int error_set(struct error *err, int code, const char *fmt, ...)  in error_set()  argument
30 if (code == PIDFD_PASS || !err || err->code != PIDFD_PASS) in error_set()
33 err->code = code; in error_set()
35 r = vsnprintf(err->msg, sizeof(err->msg), fmt, args); in error_set()
36 assert((size_t)r < sizeof(err->msg)); in error_set()
42 static void error_report(struct error *err, const char *test_name) in error_report() argument
44 switch (err->code) { in error_report()
46 ksft_exit_fail_msg("%s test: Fatal: %s\n", test_name, err->msg); in error_report()
51 ksft_test_result_error("%s test: %s\n", test_name, err->msg); in error_report()
56 ksft_test_result_skip("%s test: %s\n", test_name, err->msg); in error_report()
61 test_name, err->msg); in error_report()
70 test_name, err->code, err->msg); in error_report()
75 static inline int error_check(struct error *err, const char *test_name) in error_check() argument
78 if (err->code == PIDFD_ERROR) in error_check()
79 error_report(err, test_name); in error_check()
81 return err->code; in error_check()
93 struct error *err) in clone_newns() argument
104 error_set(err, -1, "mmap of stack failed (errno %d)", errno); in clone_newns()
115 error_set(err, PIDFD_ERROR, "clone failed (ret %d, errno %d)", in clone_newns()
130 static inline int child_join(struct child *child, struct error *err) in child_join() argument
136 error_set(err, PIDFD_ERROR, "waitpid failed (ret %d, errno %d)", in child_join()
139 error_set(err, r, "child %d reported: %d", child->pid, r); in child_join()
142 error_set(err, -1, "munmap of child stack failed (errno %d)", errno); in child_join()
150 static inline int child_join_close(struct child *child, struct error *err) in child_join_close() argument
153 return child_join(child, err); in child_join_close()
164 static int verify_fdinfo(int pidfd, struct error *err, const char *prefix, in verify_fdinfo() argument
184 return error_set(err, PIDFD_ERROR, "fdinfo open failed for %d", in verify_fdinfo()
200 error_set(err, PIDFD_FAIL, "%s '%s' != '%s'", in verify_fdinfo()
210 return error_set(err, PIDFD_FAIL, "%s not found for fd %d", in verify_fdinfo()
218 struct error err; in child_fdinfo_nspid_test() local
244 r = verify_fdinfo(pidfd, &err, "NSpid:", 6, "\t0\n"); in child_fdinfo_nspid_test()
247 ksft_print_msg("NSpid fdinfo check failed: %s\n", err.msg); in child_fdinfo_nspid_test()
255 struct error err = {0, }; in test_pidfd_fdinfo_nspid() local
259 a = clone_newns(child_fdinfo_nspid_test, NULL, &err); in test_pidfd_fdinfo_nspid()
260 error_check(&err, test_name); in test_pidfd_fdinfo_nspid()
267 b = clone_newns(child_fdinfo_nspid_test, &a.fd, &err); in test_pidfd_fdinfo_nspid()
268 error_check(&err, test_name); in test_pidfd_fdinfo_nspid()
273 verify_fdinfo(a.fd, &err, "NSpid:", 6, "\t%d\t%d\n", a.pid, 1); in test_pidfd_fdinfo_nspid()
274 verify_fdinfo(b.fd, &err, "NSpid:", 6, "\t%d\t%d\n", b.pid, 1); in test_pidfd_fdinfo_nspid()
279 child_join_close(&a, &err); in test_pidfd_fdinfo_nspid()
280 child_join_close(&b, &err); in test_pidfd_fdinfo_nspid()
282 error_report(&err, test_name); in test_pidfd_fdinfo_nspid()
288 struct error err = {0, }; in test_pidfd_dead_fdinfo() local
292 a = clone_newns(child_fdinfo_nspid_test, NULL, &err); in test_pidfd_dead_fdinfo()
293 error_check(&err, test_name); in test_pidfd_dead_fdinfo()
294 child_join(&a, &err); in test_pidfd_dead_fdinfo()
296 verify_fdinfo(a.fd, &err, "Pid:", 4, "\t-1\n"); in test_pidfd_dead_fdinfo()
297 verify_fdinfo(a.fd, &err, "NSpid:", 6, "\t-1\n"); in test_pidfd_dead_fdinfo()
299 error_report(&err, test_name); in test_pidfd_dead_fdinfo()