selftests/bpf: Remove filtered subtests from output
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
This commit is contained in:
Родитель
fa37686065
Коммит
2dc323b1c4
|
@ -271,6 +271,7 @@ static void dump_test_log(const struct prog_test_def *test,
|
|||
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 prog_test_def *test,
|
|||
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 *subtest_name)
|
|||
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(int sock_fd, struct test_state *state)
|
|||
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 sock, struct test_state *state)
|
|||
|
||||
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) {
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
|
|
Загрузка…
Ссылка в новой задаче