selftests: harness: avoid false negatives if test has no ASSERTs
authorJakub Kicinski <kuba@kernel.org>
Wed, 24 Nov 2021 22:39:16 +0000 (14:39 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 27 Jan 2022 09:53:55 +0000 (10:53 +0100)
[ Upstream commit 3abedf4646fdc0036fcb8ebbc3b600667167fafe ]

Test can fail either immediately when ASSERT() failed or at the
end if one or more EXPECT() was not met. The exact return code
is decided based on the number of successful ASSERT()s.

If test has no ASSERT()s, however, the return code will be 0,
as if the test did not fail. Start counting ASSERT()s from 1.

Fixes: 369130b63178 ("selftests: Enhance kselftest_harness.h to print which assert failed")
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
tools/testing/selftests/kselftest_harness.h

index edce85420d1934e3892f5ffe1d5c6d06c0df593f..5ecb9718e1616f96d94454b78ccdb80555796b4d 100644 (file)
@@ -965,7 +965,7 @@ void __run_test(struct __fixture_metadata *f,
        t->passed = 1;
        t->skip = 0;
        t->trigger = 0;
-       t->step = 0;
+       t->step = 1;
        t->no_print = 0;
        memset(t->results->reason, 0, sizeof(t->results->reason));