Hi! > diff --git a/lib/tst_res.c b/lib/tst_res.c > index 079fc42..24fb4d9 100644 > --- a/lib/tst_res.c > +++ b/lib/tst_res.c > @@ -101,6 +101,9 @@ > #include <stdarg.h> > #include <string.h> > #include <unistd.h> > +#include <sys/types.h> > +#include <sys/wait.h> > + > #include "test.h" > #include "usctest.h" > #include "ltp_priv.h" > @@ -228,6 +231,40 @@ void tst_reset_exitval(void) > { > T_exitval = 0; > } > + > +int tst_record_childstatus(int status, int *sig) > +{ > + int ret = 0, ttype_result, s = 0; > + > + if (WIFEXITED(status)) { > + ret = WEXITSTATUS(status); > + ttype_result = TTYPE_RESULT(ret); > + T_exitval |= ttype_result; > + s = 0; > + ret = CHILD_EXIT_NORMALLY; > + } else if (WIFSIGNALED(status)) { > + s = WTERMSIG(status); > + tst_resm(TINFO, "child process is killed by signal: %s(%d)", > + tst_strsig(s), s); > + ret = CHILD_EXIT_SIGNALED;
I would not bother with the return value and just do tst_brkm() with TBROK in the rest of the cases. Because child killed by a signal is a very special case and testcases that needs to assert it can do the wait() and WIFSIGNALED() themselves. -- Cyril Hrubis chru...@suse.cz ------------------------------------------------------------------------------ Open source business process management suite built on Java and Eclipse Turn processes into business applications with Bonita BPM Community Edition Quickly connect people, data, and systems into organized workflows Winner of BOSSIE, CODIE, OW2 and Gartner awards http://p.sf.net/sfu/Bonitasoft _______________________________________________ Ltp-list mailing list Ltp-list@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/ltp-list