The logic around skipped tests is a little confusing in the unit test
runner.
* Any explicitly disabled tests are counted as skipped but not
  executed.
* Any tests that return TEST_SKIPPED are counted as both skipped and
  executed, using the same statistics counters.

This makes the stats very strange and hard to correlate, since the
totals don't add up.  One would expect that SKIPPED + EXECUTED +
UNSUPPORTED == TOTAL, and that PASSED + FAILED == EXECUTED.

To achieve this, mark any tests returning TEST_SKIPPED, or ENOTSUP as
not having executed.

Signed-off-by: Bruce Richardson <bruce.richard...@intel.com>
---
 app/test/test.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/app/test/test.c b/app/test/test.c
index bfa9ea52e3..7b882a59de 100644
--- a/app/test/test.c
+++ b/app/test/test.c
@@ -375,11 +375,13 @@ unit_test_suite_runner(struct unit_test_suite *suite)
 
                        if (test_success == TEST_SUCCESS)
                                suite->succeeded++;
-                       else if (test_success == TEST_SKIPPED)
+                       else if (test_success == TEST_SKIPPED) {
                                suite->skipped++;
-                       else if (test_success == -ENOTSUP)
+                               suite->executed--;
+                       } else if (test_success == -ENOTSUP) {
                                suite->unsupported++;
-                       else
+                               suite->executed--;
+                       } else
                                suite->failed++;
                } else if (test_success == -ENOTSUP) {
                        suite->unsupported++;
-- 
2.39.2

Reply via email to