In order to improve diagnostics and allow tests to explicitly look for
signals check to see if the child exited due to a signal and if it did
print the code and return it as a positive value, distinct from the
negative errnos currently returned.

Signed-off-by: Mark Brown <[email protected]>
---
 tools/testing/selftests/clone3/clone3.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/tools/testing/selftests/clone3/clone3.c 
b/tools/testing/selftests/clone3/clone3.c
index e066b201fa64..3b3a08e6a34d 100644
--- a/tools/testing/selftests/clone3/clone3.c
+++ b/tools/testing/selftests/clone3/clone3.c
@@ -111,6 +111,13 @@ static int call_clone3(uint64_t flags, size_t size, enum 
test_mode test_mode)
                ksft_print_msg("waitpid() returned %s\n", strerror(errno));
                return -errno;
        }
+
+       if (WIFSIGNALED(status)) {
+               ksft_print_msg("Child exited with signal %d\n",
+                              WTERMSIG(status));
+               return WTERMSIG(status);
+       }
+
        if (!WIFEXITED(status)) {
                ksft_print_msg("Child did not exit normally, status 0x%x\n",
                               status);

-- 
2.39.2


Reply via email to