selftests/harness: Limit step counter reporting

When the selftest "step" counter grew beyond 255, non-fatal warnings
were being emitted, which is noisy and pointless. There are selftests
with more than 255 steps (especially those in loops, etc). Instead,
just cap "steps" to 254 and do not report the saturation.

Reported-by: Ralph Campbell <rcampbell@nvidia.com>
Tested-by: Ralph Campbell <rcampbell@nvidia.com>
Fixes: 9847d24af9 ("selftests/harness: Refactor XFAIL into SKIP")
Signed-off-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
This commit is contained in:
Kees Cook 2020-07-14 11:30:23 -07:00 committed by Shuah Khan
parent 4c6614dc86
commit 850d0cc64c
1 changed files with 2 additions and 7 deletions

View File

@ -680,7 +680,8 @@
__bail(_assert, _metadata->no_print, _metadata->step))
#define __INC_STEP(_metadata) \
if (_metadata->passed && _metadata->step < 255) \
/* Keep "step" below 255 (which is used for "SKIP" reporting). */ \
if (_metadata->passed && _metadata->step < 253) \
_metadata->step++;
#define is_signed_type(var) (!!(((__typeof__(var))(-1)) < (__typeof__(var))1))
@ -976,12 +977,6 @@ void __run_test(struct __fixture_metadata *f,
t->passed = 0;
} else if (t->pid == 0) {
t->fn(t, variant);
/* Make sure step doesn't get lost in reporting */
if (t->step >= 255) {
ksft_print_msg("Too many test steps (%u)!?\n", t->step);
t->step = 254;
}
/* Use 255 for SKIP */
if (t->skip)
_exit(255);
/* Pass is exit 0 */