Lines Matching refs:err
26 static int error_set(struct error *err, int code, const char *fmt, ...) in error_set() argument
31 if (code == PIDFD_PASS || !err || err->code != PIDFD_PASS) in error_set()
34 err->code = code; in error_set()
36 r = vsnprintf(err->msg, sizeof(err->msg), fmt, args); in error_set()
37 assert((size_t)r < sizeof(err->msg)); in error_set()
43 static void error_report(struct error *err, const char *test_name) in error_report() argument
45 switch (err->code) { in error_report()
47 ksft_exit_fail_msg("%s test: Fatal: %s\n", test_name, err->msg); in error_report()
52 ksft_test_result_error("%s test: %s\n", test_name, err->msg); in error_report()
57 ksft_test_result_skip("%s test: %s\n", test_name, err->msg); in error_report()
62 test_name, err->msg); in error_report()
71 test_name, err->code, err->msg); in error_report()
76 static inline int error_check(struct error *err, const char *test_name) in error_check() argument
79 if (err->code == PIDFD_ERROR) in error_check()
80 error_report(err, test_name); in error_check()
82 return err->code; in error_check()
94 struct error *err) in clone_newns() argument
105 error_set(err, -1, "mmap of stack failed (errno %d)", errno); in clone_newns()
116 error_set(err, PIDFD_ERROR, "clone failed (ret %d, errno %d)", in clone_newns()
131 static inline int child_join(struct child *child, struct error *err) in child_join() argument
137 error_set(err, PIDFD_ERROR, "waitpid failed (ret %d, errno %d)", in child_join()
140 error_set(err, r, "child %d reported: %d", child->pid, r); in child_join()
143 error_set(err, -1, "munmap of child stack failed (errno %d)", errno); in child_join()
151 static inline int child_join_close(struct child *child, struct error *err) in child_join_close() argument
154 return child_join(child, err); in child_join_close()
165 static int verify_fdinfo(int pidfd, struct error *err, const char *prefix, in verify_fdinfo() argument
185 return error_set(err, PIDFD_ERROR, "fdinfo open failed for %d", in verify_fdinfo()
201 error_set(err, PIDFD_FAIL, "%s '%s' != '%s'", in verify_fdinfo()
211 return error_set(err, PIDFD_FAIL, "%s not found for fd %d", in verify_fdinfo()
219 struct error err; in child_fdinfo_nspid_test() local
245 r = verify_fdinfo(pidfd, &err, "NSpid:", 6, "\t0\n"); in child_fdinfo_nspid_test()
248 ksft_print_msg("NSpid fdinfo check failed: %s\n", err.msg); in child_fdinfo_nspid_test()
256 struct error err = {0, }; in test_pidfd_fdinfo_nspid() local
260 a = clone_newns(child_fdinfo_nspid_test, NULL, &err); in test_pidfd_fdinfo_nspid()
261 error_check(&err, test_name); in test_pidfd_fdinfo_nspid()
268 b = clone_newns(child_fdinfo_nspid_test, &a.fd, &err); in test_pidfd_fdinfo_nspid()
269 error_check(&err, test_name); in test_pidfd_fdinfo_nspid()
274 verify_fdinfo(a.fd, &err, "NSpid:", 6, "\t%d\t%d\n", a.pid, 1); in test_pidfd_fdinfo_nspid()
275 verify_fdinfo(b.fd, &err, "NSpid:", 6, "\t%d\t%d\n", b.pid, 1); in test_pidfd_fdinfo_nspid()
280 child_join_close(&a, &err); in test_pidfd_fdinfo_nspid()
281 child_join_close(&b, &err); in test_pidfd_fdinfo_nspid()
283 error_report(&err, test_name); in test_pidfd_fdinfo_nspid()
289 struct error err = {0, }; in test_pidfd_dead_fdinfo() local
293 a = clone_newns(child_fdinfo_nspid_test, NULL, &err); in test_pidfd_dead_fdinfo()
294 error_check(&err, test_name); in test_pidfd_dead_fdinfo()
295 child_join(&a, &err); in test_pidfd_dead_fdinfo()
297 verify_fdinfo(a.fd, &err, "Pid:", 4, "\t-1\n"); in test_pidfd_dead_fdinfo()
298 verify_fdinfo(a.fd, &err, "NSpid:", 6, "\t-1\n"); in test_pidfd_dead_fdinfo()
300 error_report(&err, test_name); in test_pidfd_dead_fdinfo()