From adcb2d73b3377c749efcae5ae0e5471e10b6646f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kristian=20H=C3=B8gsberg?= Date: Fri, 8 Feb 2013 11:38:59 -0500 Subject: [PATCH] queue-test: WEXITSTATUS() is undefined if WIFEXITED() is false If a child process dies from a signal, WIFEXITED() returns false and WEXITSTATUS() isn't well-defined. In this case, if the client segfaults, the status is 134 and WEXITSTATUS(134) is EXIT_SUCCESS, so we mask the error. --- tests/queue-test.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tests/queue-test.c b/tests/queue-test.c index 681ac242..3abb71f1 100644 --- a/tests/queue-test.c +++ b/tests/queue-test.c @@ -212,7 +212,7 @@ sigchld_handler(int signal_number, void *data) int status; waitpid(-1, &status, 0); - display->child_exit_status = WEXITSTATUS(status); + display->child_exit_status = status; wl_display_terminate(display->display); @@ -282,5 +282,6 @@ TEST(queue) wl_event_source_remove(signal_source); wl_display_destroy(display.display); - assert(display.child_exit_status == EXIT_SUCCESS); + assert(WIFEXITED(display.child_exit_status) && + WEXITSTATUS(display.child_exit_status) == EXIT_SUCCESS); }