Lines Matching refs:err

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