selftests: timers: clocksource-switch: fix passing errors from child
authorWolfram Sang <wsa+renesas@sang-engineering.com>
Wed, 13 Jul 2022 20:46:17 +0000 (22:46 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 17 Aug 2022 12:23:30 +0000 (14:23 +0200)
[ Upstream commit 4d8f52ac5fa9eede7b7aa2f2d67c841d9eeb655f ]

The return value from system() is a waitpid-style integer. Do not return
it directly because with the implicit masking in exit() it will always
return 0. Access it with appropriate macros to really pass on errors.

Fixes: 7290ce1423c3 ("selftests/timers: Add clocksource-switch test from timetest suite")
Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Acked-by: John Stultz <jstultz@google.com>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
tools/testing/selftests/timers/clocksource-switch.c

index ef8eb36..b57f0a9 100644 (file)
@@ -110,10 +110,10 @@ int run_tests(int secs)
 
        sprintf(buf, "./inconsistency-check -t %i", secs);
        ret = system(buf);
-       if (ret)
-               return ret;
+       if (WIFEXITED(ret) && WEXITSTATUS(ret))
+               return WEXITSTATUS(ret);
        ret = system("./nanosleep");
-       return ret;
+       return WIFEXITED(ret) ? WEXITSTATUS(ret) : 0;
 }