diff --git a/libc/utils/testutils/ExecuteFunctionUnix.cpp b/libc/utils/testutils/ExecuteFunctionUnix.cpp --- a/libc/utils/testutils/ExecuteFunctionUnix.cpp +++ b/libc/utils/testutils/ExecuteFunctionUnix.cpp @@ -67,8 +67,10 @@ } int WStatus = 0; - int status = ::waitpid(Pid, &WStatus, WNOHANG); - assert(status == Pid && "wait call should not block here"); + pid_t status = ::waitpid(Pid, &WStatus, 0); + if (status == -1) + return ProcessStatus::Error("waitpid(2) failed"); + assert(status == Pid); (void)status; return {WStatus}; }