diff options
| author | Sébastien Marie <semarie@online.fr> | 2024-01-19 16:08:21 +0000 |
|---|---|---|
| committer | Daniel Stone <daniels@collabora.com> | 2024-02-21 15:46:41 +0000 |
| commit | 791912c67867b84e15f7a70d5f716c9dd8c2c01b (patch) | |
| tree | 24f3d33161601d756f1d154639d4c01894ac7f31 /tests/test-compositor.c | |
| parent | protocol: mention wl_surface events from wl_output.{scale,transform} (diff) | |
| download | wayland-791912c67867b84e15f7a70d5f716c9dd8c2c01b.tar wayland-791912c67867b84e15f7a70d5f716c9dd8c2c01b.tar.gz wayland-791912c67867b84e15f7a70d5f716c9dd8c2c01b.tar.bz2 wayland-791912c67867b84e15f7a70d5f716c9dd8c2c01b.tar.lz wayland-791912c67867b84e15f7a70d5f716c9dd8c2c01b.tar.xz wayland-791912c67867b84e15f7a70d5f716c9dd8c2c01b.tar.zst wayland-791912c67867b84e15f7a70d5f716c9dd8c2c01b.zip | |
compat: prefer waitpid() over waitid()
while both are defined by POSIX, waitpid() is more common than waitid().
Signed-off-by: Sebastien Marie <semarie@online.fr>
Diffstat (limited to 'tests/test-compositor.c')
| -rw-r--r-- | tests/test-compositor.c | 23 |
1 files changed, 10 insertions, 13 deletions
diff --git a/tests/test-compositor.c b/tests/test-compositor.c index 49d76d6..8648fb6 100644 --- a/tests/test-compositor.c +++ b/tests/test-compositor.c @@ -103,26 +103,23 @@ handle_client_destroy(void *data) { struct client_info *ci = data; struct display *d; - siginfo_t status; + int status; d = ci->display; - assert(waitid(P_PID, ci->pid, &status, WEXITED) != -1); + assert(waitpid(ci->pid, &status, 0) != -1); - switch (status.si_code) { - case CLD_KILLED: - case CLD_DUMPED: + if (WIFSIGNALED(status)) { fprintf(stderr, "Client '%s' was killed by signal %d\n", - ci->name, status.si_status); - ci->kill_code = status.si_status; - break; - case CLD_EXITED: - if (status.si_status != EXIT_SUCCESS) + ci->name, WTERMSIG(status)); + ci->kill_code = WTERMSIG(status); + + } else if (WIFEXITED(status)) { + if (WEXITSTATUS(status) != EXIT_SUCCESS) fprintf(stderr, "Client '%s' exited with code %d\n", - ci->name, status.si_status); + ci->name, WEXITSTATUS(status)); - ci->exit_code = status.si_status; - break; + ci->exit_code = WEXITSTATUS(status); } ++d->clients_terminated_no; |
