[LTP] [PATCH] lib: tst_kconfig: Add runtime checks

Li Wang liwang@redhat.com
Fri Feb 6 13:23:56 CET 2026


On Fri, Feb 6, 2026 at 4:23 PM Petr Vorel <pvorel@suse.cz> wrote:

> > > > +static void runtime_check(struct tst_kconfig_var *var)
> > > > +{
> > > > + size_t i;
> > > > +
> > > > + for (i = 0; runtime_checks[i].config; i++) {
> > > > +         if (strcmp(runtime_checks[i].config, var->id))
> > > > +                 continue;
> > > > +
> > > > +         tst_res(TDEBUG, "Running runtime check for '%s'", var->id);
> > > This will not work since Li's change:
> > > aa5a6fcdcd ("lib: suppress early TDEBUG output before context
> initialization")
>
> > > @Li I'm not sure what "unless explicitly enabled" means, but I guess
> we cannot
> > > simple enable it for the test library (following patch). I vote to
> either revert
> > > aa5a6fcdcd or change it (effectively revert it, but keep doc and the
> rest of the
> > > code).
>
> > > I understand having the output in each test is not ideal:
>
> > > utsname01.c:39: TDEBUG: mmap((nil), 64, PROT_READ | PROT_WRITE(3), 33,
> -1, 0)
> > > utsname01.c:40: TDEBUG: mmap((nil), 64, PROT_READ | PROT_WRITE(3), 33,
> -1, 0)
>
> > > but better more output code than no code.
>
> > Well, I don't like that noisy logging style, that's why I did aa5a6fcdcd.
>
> > Maybe can we add more levels of TDEBUG log to LTP:
>
> >   -D0: no debug logs print
> >   -D1: only generic logs print
> >   -D2: more veroes logs include library debuginfo
>
> > What do you think?
>
> For the level we would need to track the level state.
>
> Also, we now support
> -D
> LTP_ENABLE_DEBUG=y (or n to disable)
>
> Now, user would have to always use '-D1' or '-D2' to get logging or not use
> getopts. IMHO getopts does not support both '-D' (without value) and '-D1'
> (with
> value).
>

No no, I was saying '-D' only controls the TDEBUG logging in levels,
but not affect normal logs.
Level 0: suppress all TDEBUG info
Level 1: current “generic” TDEBUG
Level 2: verbose, including library TDEBUG

This wouldn't be so hard to achieve with refactoring the '-D' parameter.



>
> IMHO that's why ssh supports multiple '-v', e.g. '-v -v -v' or '-vvv'
> instead of
> -v2 or -v3).
>
> Anyway I'd prefer solving this somehow in the code so that users don't
> have to
> bother about log levels, but I have no idea how. Maybe yet another enum
> tst_res_flags member? Because aa5a6fcdcd skipped messages, which are likely
> useful when run by child process (the test), but not by library process.
> And I
> want to print message which is always run by library process. Maybe to
> have some
> #define in source code, which would force logging even for library
> process? (not
> sure what will be needed more often).
>

This is something worth thinking about carefully, btw, next week is
our spring festival hoday. I maybe reply you a bit later :).


>
> But sure, this would work if there no other way to detect these 2 cases.
>
> OT we have:
>
> in tst_test.c:
>
>         if (context->tdebug)
>                 tst_res(TINFO, "Restored metadata for PID %d", getpid());
>
> => shouldn't it use TDEBUG instead of TINFO?
>

Yes, that's a typo.


-- 
Regards,
Li Wang


More information about the ltp mailing list