aboutsummaryrefslogtreecommitdiffstats
path: root/tests/test-compositor.c
diff options
context:
space:
mode:
authorSébastien Marie <semarie@online.fr>2024-01-19 16:08:21 +0000
committerDaniel Stone <daniels@collabora.com>2024-02-21 15:46:41 +0000
commit791912c67867b84e15f7a70d5f716c9dd8c2c01b (patch)
tree24f3d33161601d756f1d154639d4c01894ac7f31 /tests/test-compositor.c
parentprotocol: mention wl_surface events from wl_output.{scale,transform} (diff)
downloadwayland-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.c23
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;