nolibc's waitpid() now uses the waitid() syscall internally.
This removes the original reasoning for the reverted commit as
waitpid() is now available on all platforms and has an easier interface.

Switch back to waitpid().

This reverts commit a0bc8947ac731ff95a56e0c1737e69e8c56d5b78.

Signed-off-by: Thomas Weißschuh <thomas.weisssc...@linutronix.de>
---
 tools/testing/selftests/nolibc/nolibc-test.c | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/tools/testing/selftests/nolibc/nolibc-test.c 
b/tools/testing/selftests/nolibc/nolibc-test.c
index 
7eb7f3fb067553cccefefdaa2ccfc81af281336b..6fa659429cfc38c9d42f36f80ab6c529890d9ad7
 100644
--- a/tools/testing/selftests/nolibc/nolibc-test.c
+++ b/tools/testing/selftests/nolibc/nolibc-test.c
@@ -1445,8 +1445,7 @@ static int run_protection(int min __attribute__((unused)),
                          int max __attribute__((unused)))
 {
        pid_t pid;
-       int llen = 0, ret;
-       siginfo_t siginfo = {};
+       int llen = 0, status;
        struct rlimit rlimit = { 0, 0 };
 
        llen += printf("0 -fstackprotector ");
@@ -1484,11 +1483,10 @@ static int run_protection(int min 
__attribute__((unused)),
                return 1;
 
        default:
-               ret = waitid(P_PID, pid, &siginfo, WEXITED);
+               pid = waitpid(pid, &status, 0);
 
-               if (ret != 0 || siginfo.si_signo != SIGCHLD ||
-                   siginfo.si_code != CLD_KILLED || siginfo.si_status != 
SIGABRT) {
-                       llen += printf("waitid()");
+               if (pid == -1 || !WIFSIGNALED(status) || WTERMSIG(status) != 
SIGABRT) {
+                       llen += printf("waitpid()");
                        result(llen, FAIL);
                        return 1;
                }

-- 
2.48.1


Reply via email to