[LTP] [PATCH] [RFC] lib/tst_test: Report 0 if test has both TPASS and TCONF
Cyril Hrubis
chrubis@suse.cz
Thu Sep 7 17:57:45 CEST 2017
It's probably a bit more logical to report a succes if only part of the
test was skipped and the rest was sucessful. That way we can distinguish
tests that were compiled-out completely or where the kernel does not
support the particular syscall at all. The difference is about 15
testcases that report TPASS instead of TCONF after this change.
Signed-off-by: Cyril Hrubis <chrubis@suse.cz>
---
lib/tst_res.c | 11 ++++++++++-
lib/tst_test.c | 2 +-
2 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/lib/tst_res.c b/lib/tst_res.c
index ff0ad685f..8cf5f0d4a 100644
--- a/lib/tst_res.c
+++ b/lib/tst_res.c
@@ -91,6 +91,7 @@ static void tst_condense(int tnum, int ttype, const char *tmesg);
static void tst_print(const char *tcid, int tnum, int ttype, const char *tmesg);
static int T_exitval = 0; /* exit value used by tst_exit() */
+static int passed_cnt;
static int T_mode = VERBOSE; /* flag indicating print mode: VERBOSE, */
/* NOPASS, DISCARD */
@@ -166,6 +167,9 @@ static void tst_res__(const char *file, const int lineno, int ttype,
*/
T_exitval |= ttype_result;
+ if (ttype_result == TPASS)
+ passed_cnt++;
+
check_env();
/*
@@ -390,7 +394,12 @@ void tst_exit(void)
tst_flush();
- exit(T_exitval & ~TINFO);
+ T_exitval &= ~TINFO;
+
+ if (T_exitval == TCONF && passed_cnt)
+ T_exitval &= ~TCONF;
+
+ exit(T_exitval);
}
pid_t tst_fork(void)
diff --git a/lib/tst_test.c b/lib/tst_test.c
index 4c30edab5..f72de82d4 100644
--- a/lib/tst_test.c
+++ b/lib/tst_test.c
@@ -561,7 +561,7 @@ static void do_exit(int ret)
if (results->failed)
ret |= TFAIL;
- if (results->skipped)
+ if (results->skipped && !results->passed)
ret |= TCONF;
if (results->warnings)
--
2.13.0
More information about the ltp
mailing list