Skip to content

Commit

Permalink
selftests/nolibc: use waitid() over waitpid()
Browse files Browse the repository at this point in the history
Newer archs like riscv32 don't provide waitpid() anymore.
Switch to waitid() which is available everywhere.

Link: https://lore.kernel.org/r/20241221-nolibc-rv32-v1-2-d9ef6dab7c63@weissschuh.net
Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
  • Loading branch information
Thomas Weißschuh committed Jan 13, 2025
1 parent 7f89bc5 commit a0bc894
Showing 1 changed file with 6 additions and 4 deletions.
10 changes: 6 additions & 4 deletions tools/testing/selftests/nolibc/nolibc-test.c
Original file line number Diff line number Diff line change
Expand Up @@ -1323,7 +1323,8 @@ static int run_protection(int min __attribute__((unused)),
int max __attribute__((unused)))
{
pid_t pid;
int llen = 0, status;
int llen = 0, ret;
siginfo_t siginfo = {};
struct rlimit rlimit = { 0, 0 };

llen += printf("0 -fstackprotector ");
Expand Down Expand Up @@ -1361,10 +1362,11 @@ static int run_protection(int min __attribute__((unused)),
return 1;

default:
pid = waitpid(pid, &status, 0);
ret = waitid(P_PID, pid, &siginfo, WEXITED);

if (pid == -1 || !WIFSIGNALED(status) || WTERMSIG(status) != SIGABRT) {
llen += printf("waitpid()");
if (ret != 0 || siginfo.si_signo != SIGCHLD ||
siginfo.si_code != CLD_KILLED || siginfo.si_status != SIGABRT) {
llen += printf("waitid()");
result(llen, FAIL);
return 1;
}
Expand Down

0 comments on commit a0bc894

Please sign in to comment.