On Wed, 2026-10-14 at 12:08 +0000, [email protected] wrote:
> > selftests/bpf: Skip expected_msgs subtests when stdout is not saved
> 
> TL;DR: Nit only: the new test__skip() in the expected_msgs selftest is silent,
> so -v output doesn't say why subtests were skipped; the review asks whether to
> print a short reason. The skip logic itself looks correct.
> 
> > diff --git a/tools/testing/selftests/bpf/prog_tests/prog_tests_framework.c
> > b/tools/testing/selftests/bpf/prog_tests/prog_tests_framework.c
> > index 53347f379924..b4cd7c7ff439 100644
> > --- a/tools/testing/selftests/bpf/prog_tests/prog_tests_framework.c
> > +++ b/tools/testing/selftests/bpf/prog_tests/prog_tests_framework.c
> 
> [ ... ]
> 
> > @@ -169,6 +169,12 @@ void test_prog_tests_framework_expected_msgs(void)
> > 
> >     for (i = 0; i < ARRAY_SIZE(cases); i++) {
> >             if (test__start_subtest(cases[i].name)) {
> > +                   if (!env.subtest_state->stdout_saved) {
> > +                           test__skip();
> > +                           test__end_subtest();
> > +                           continue;
> > +                   }
> > +
> 
> This isn't a bug, but a subsystem guideline flags a test__skip() that is
> issued silently, with no message.
> 
> test__skip() here is called without any explanation, so a -v run only shows
> the generic "#N/M <subtest>:SKIP" line from test__end_subtest().  Someone
> reading that output has to look at the code or the commit message to learn
> the subtests were skipped because stdout is not captured in non-parallel
> verbose mode.
> 
> The skip itself looks correct, since stdio_hijack_init() returns early when
> verbose() && env.worker_id == -1 and leaves subtest_state->stdout_saved and
> log_buf unset.  test__skip() takes no reason argument, and many other
> test__skip() callers in prog_tests are also bare.
> 
> Would it be worth printing a short reason before test__skip(), for example:
> 
>     fprintf(stderr, "SKIP: stdout is not saved in non-parallel verbose 
> mode\n");

I don't think we need this. for two reasons:
a) -v is mainly used for debugging, showing details; this is a test for the 
framework, not the real
bpf test, all tests should pass, no need to debug;
b) this is a loop. if we keep adding this message, it could repeat for 9 lines.
> 
> >                     error_cnt = env.subtest_state->error_cnt;
> >                     msgs.patterns = cases[i].pats;
> >                     msgs.cnt = 0;
> 
> 
> ---
> AI reviewed your patch. Please fix the bug or email reply why it's not a bug.
> See: https://github.com/kernel-patches/vmtest/blob/master/ci/claude/README.md
> 
> CI run summary: https://github.com/kernel-patches/bpf/actions/runs/38559567568

-- 
Thanks,
KaFai

Reply via email to