On 03/13/2015 09:55 AM, Andrey Vagin wrote: > Currently this test always returs zero code and a child process returns > non-zero code only if the last testcase failed. > > v2: don't forget to return smth from ksft_exit()
Please check patch subject. It is phrased: [PATCH v2] selftests/kcmp: exit with non-zero code in a fail case Could you please resend. I don't want v2 ending up in the commit. -- Shuah > > Cc: Michael Ellerman <m...@ellerman.id.au> > Cc: Shuah Khan <shua...@osg.samsung.com> > Cc: Cyrill Gorcunov <gorcu...@openvz.org> > Signed-off-by: Andrey Vagin <ava...@openvz.org> > --- > tools/testing/selftests/kcmp/kcmp_test.c | 16 ++++++++++------ > tools/testing/selftests/kselftest.h | 18 ++++++++++++++++++ > 2 files changed, 28 insertions(+), 6 deletions(-) > > diff --git a/tools/testing/selftests/kcmp/kcmp_test.c > b/tools/testing/selftests/kcmp/kcmp_test.c > index a5a4da8..42a40c6 100644 > --- a/tools/testing/selftests/kcmp/kcmp_test.c > +++ b/tools/testing/selftests/kcmp/kcmp_test.c > @@ -97,13 +97,17 @@ int main(int argc, char **argv) > > ksft_print_cnts(); > > - if (ret) > - ksft_exit_fail(); > - else > - ksft_exit_pass(); > + return ksft_exit(); > + } > + > + status = -1; > + if (waitpid(pid2, &status, 0) != pid2) { > + perror("Unable to wait the child\n"); > + return ksft_exit_fail(); > } > > - waitpid(pid2, &status, P_ALL); > + if (WIFEXITED(status)) > + return WEXITSTATUS(status); > > - return ksft_exit_pass(); > + return ksft_exit_fail(); > } > diff --git a/tools/testing/selftests/kselftest.h > b/tools/testing/selftests/kselftest.h > index 572c888..f23e56c 100644 > --- a/tools/testing/selftests/kselftest.h > +++ b/tools/testing/selftests/kselftest.h > @@ -59,4 +59,22 @@ static inline int ksft_exit_skip(void) > exit(4); > } > > +static inline int ksft_exit(void) > +{ > + /* in order of disruptiveness from bad to good */ > + if (ksft_cnt.ksft_fail) > + return ksft_exit_fail(); > + if (ksft_cnt.ksft_xpass) > + return ksft_exit_xpass(); > + if (ksft_cnt.ksft_xskip) > + return ksft_exit_skip(); > + if (ksft_cnt.ksft_xfail) > + return ksft_exit_xfail(); > + if (ksft_cnt.ksft_pass) > + return ksft_exit_pass(); > + > + /* A test must do something */ > + return ksft_exit_fail(); > +} > + > #endif /* __KSELFTEST_H */ > -- Shuah Khan Sr. Linux Kernel Developer Open Source Innovation Group Samsung Research America (Silicon Valley) shua...@osg.samsung.com | (970) 217-8978 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/