From: Mykola Lysenko <mykolal@fb.com>
Date: Thu, 19 May 2022 23:13:03 -0700
Subject: selftests/bpf: Remove filtered subtests from output
Patch-mainline: v5.19-rc1
Git-commit: 2dc323b1c4cb8ab7db9f8286a9c3267ce66419ab
References: jsc#PED-1377
Currently filtered subtests show up in the output as skipped.
Before:
$ sudo ./test_progs -t log_fixup/missing_map
#94 /1 log_fixup/bad_core_relo_trunc_none:SKIP
#94 /2 log_fixup/bad_core_relo_trunc_partial:SKIP
#94 /3 log_fixup/bad_core_relo_trunc_full:SKIP
#94 /4 log_fixup/bad_core_relo_subprog:SKIP
#94 /5 log_fixup/missing_map:OK
#94 log_fixup:OK
Summary: 1/1 PASSED, 0 SKIPPED, 0 FAILED
After:
$ sudo ./test_progs -t log_fixup/missing_map
#94 /5 log_fixup/missing_map:OK
#94 log_fixup:OK
Summary: 1/1 PASSED, 0 SKIPPED, 0 FAILED
Signed-off-by: Mykola Lysenko <mykolal@fb.com>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Acked-by: Yonghong Song <yhs@fb.com>
Link: https://lore.kernel.org/bpf/20220520061303.4004808-1-mykolal@fb.com
Acked-by: Shung-Hsi Yu <shung-hsi.yu@suse.com>
---
tools/testing/selftests/bpf/test_progs.c | 8 ++++++--
tools/testing/selftests/bpf/test_progs.h | 2 ++
2 files changed, 8 insertions(+), 2 deletions(-)
--- a/tools/testing/selftests/bpf/test_progs.c
+++ b/tools/testing/selftests/bpf/test_progs.c
@@ -271,6 +271,7 @@ static void dump_test_log(const struct p
int i;
struct subtest_state *subtest_state;
bool subtest_failed;
+ bool subtest_filtered;
bool print_subtest;
/* we do not print anything in the worker thread */
@@ -289,9 +290,10 @@ static void dump_test_log(const struct p
for (i = 0; i < test_state->subtest_num; i++) {
subtest_state = &test_state->subtest_states[i];
subtest_failed = subtest_state->error_cnt;
+ subtest_filtered = subtest_state->filtered;
print_subtest = verbose() || force_log || subtest_failed;
- if (skip_ok_subtests && !subtest_failed)
+ if ((skip_ok_subtests && !subtest_failed) || subtest_filtered)
continue;
if (subtest_state->log_cnt && print_subtest) {
@@ -423,7 +425,7 @@ bool test__start_subtest(const char *sub
state->subtest_num,
test->test_name,
subtest_name)) {
- subtest_state->skipped = true;
+ subtest_state->filtered = true;
return false;
}
@@ -1129,6 +1131,7 @@ static int dispatch_thread_send_subtests
subtest_state->name = strdup(msg.subtest_done.name);
subtest_state->error_cnt = msg.subtest_done.error_cnt;
subtest_state->skipped = msg.subtest_done.skipped;
+ subtest_state->filtered = msg.subtest_done.filtered;
/* collect all logs */
if (msg.subtest_done.have_log)
@@ -1424,6 +1427,7 @@ static int worker_main_send_subtests(int
msg.subtest_done.error_cnt = subtest_state->error_cnt;
msg.subtest_done.skipped = subtest_state->skipped;
+ msg.subtest_done.filtered = subtest_state->filtered;
msg.subtest_done.have_log = false;
if (verbose() || state->force_log || subtest_state->error_cnt) {
--- a/tools/testing/selftests/bpf/test_progs.h
+++ b/tools/testing/selftests/bpf/test_progs.h
@@ -70,6 +70,7 @@ struct subtest_state {
char *log_buf;
int error_cnt;
bool skipped;
+ bool filtered;
FILE *stdout;
};
@@ -156,6 +157,7 @@ struct msg {
char name[MAX_SUBTEST_NAME + 1];
int error_cnt;
bool skipped;
+ bool filtered;
bool have_log;
} subtest_done;
};