On Wed, 2026-10-14 at 12:08 +0000, [email protected] wrote:
> > selftests/bpf: Skip compare_text subtest when stdout is not saved
> 
> TL;DR: Nit only: the new test__skip() in the compare_text_mismatch subtest
> gives no reason for skipping; a short comment or stderr message might help.
> 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 b4cd7c7ff439..ddb6cdc1579f 100644
> > --- a/tools/testing/selftests/bpf/prog_tests/prog_tests_framework.c
> > +++ b/tools/testing/selftests/bpf/prog_tests/prog_tests_framework.c
> 
> [ ... ]
> 
> > @@ -203,14 +203,18 @@ void test_prog_tests_framework_compare_text(void)
> >     }
> > 
> >     if (test__start_subtest("compare_text_mismatch")) {
> > -           err = compare_text_to_expected("line two\n", "line one\n");
> > -           fflush(stdout);
> > +           if (!env.subtest_state->stdout_saved) {
> > +                   test__skip();
> > +           } else {
> > +                   err = compare_text_to_expected("line two\n", "line 
> > one\n");
> > +                   fflush(stdout);
> > 
> > -           ASSERT_EQ(err, -1, "mismatch_rc");
> > -           ASSERT_HAS_SUBSTR(env.subtest_state->log_buf, "-line one",
> > -                             "diff_has_expected");
> > -           ASSERT_HAS_SUBSTR(env.subtest_state->log_buf, "+line two",
> > -                             "diff_has_actual");
> > +                   ASSERT_EQ(err, -1, "mismatch_rc");
> > +                   ASSERT_HAS_SUBSTR(env.subtest_state->log_buf, "-line 
> > one",
> > +                                     "diff_has_expected");
> > +                   ASSERT_HAS_SUBSTR(env.subtest_state->log_buf, "+line 
> > two",
> > +                                     "diff_has_actual");
> > +           }
> >             test__end_subtest();
> >     }
> >  }
> 
> This isn't a bug, but could the skip in the compare_text_mismatch subtest
> carry an explanation?
> 
>       if (!env.subtest_state->stdout_saved) {
>               test__skip();
>       }
> 
> A subsystem guideline flags selftests that skip silently with no message,
> and test__skip() here prints nothing about why the subtest was skipped.
> The same condition covers -v in non-parallel mode, a libc without
> open_memstream() support, and an open_memstream() failure, so the reason is
> not obvious from the test output alone.
> 
> For context, the skip itself looks correct: env.subtest_state is non-NULL
> inside the subtest, test__skip() sets subtest_state->skipped, and
> test__end_subtest() handles a NULL stdout_saved.
> 
> The other skips in this file are also bare test__skip() calls, and
> test__skip() takes no reason argument, so the guideline may not map cleanly
> onto test_progs.  If a reason is wanted, would a short comment above the
> test__skip() call, or a separate message printed to env.stderr_saved, be
> appropriate?
> 
just one line for this, we can print why the test skipped. and short comment 
for patch#6
> 
> ---
> 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