[igt-dev] [PATCH i-g-t 1/9] lib/tests: Drop NIH exit status handling
Chris Wilson
chris at chris-wilson.co.uk
Wed Feb 13 10:49:42 UTC 2019
Quoting Daniel Vetter (2019-02-13 10:35:43)
> Spotted by Chris.
>
> Cc: Chris Wilson <chris at chris-wilson.co.uk>
> Signed-off-by: Daniel Vetter <daniel.vetter at intel.com>
> ---
> lib/tests/igt_assert.c | 9 +++------
> lib/tests/igt_segfault.c | 8 ++++----
> lib/tests/igt_simulation.c | 39 +++++++++++++++++++++++---------------
> 3 files changed, 31 insertions(+), 25 deletions(-)
>
> diff --git a/lib/tests/igt_assert.c b/lib/tests/igt_assert.c
> index 306b1fb8533c..0082fda14851 100644
> --- a/lib/tests/igt_assert.c
> +++ b/lib/tests/igt_assert.c
> @@ -79,10 +79,7 @@ static int do_fork(void)
> errno == EINTR)
> ;
>
> - if(WIFSIGNALED(status))
> - return WTERMSIG(status) + 128;
> -
> - return WEXITSTATUS(status);
> + return status;
> }
> }
>
> @@ -161,7 +158,7 @@ igt_main
> test_to_run = test_cmpint_negative;
> ret = do_fork();
> igt_subtest("igt_cmpint_negative")
> - internal_assert(ret == IGT_EXIT_FAILURE);
> + internal_assert(WEXITSTATUS(ret) == IGT_EXIT_FAILURE);
I don't think we can get away with plain WEXITSTATUS/WTERMSIG as they
are simple shifts and masks.
I think we need
bool wexited(int status, int exitcode)
{
return WIFEXITED(status) && WEXITSTATUS(status) == exitcode;
}
bool wsignaled(int status, int sig)
{
return WIFSIGNALED(status) && WTERMSIG(status) == sig;
}
-Chris
More information about the igt-dev
mailing list