[LTP] [PATCH v2 2/2] lib: Extend LTP_ENABLE_DEBUG to support verbosity levels

Andrea Cervesato andrea.cervesato@suse.com
Tue Mar 3 11:28:24 CET 2026


Hi Li,

I ran a review with my LLM config and obtained the following report.
I thought it was interesting to share how the LTP review agent I'm
developing is growing. Tested with Claude Sonnet 4.6

 Issues Found

  1. "Enabling debug info" printed for level 0 — misleading message
     (still unaddressed from v1)

  Both -D0 and LTP_ENABLE_DEBUG=0 print "Enabling debug info (level 0)",
  which is the opposite of what is happening. Level 0 means disable all
  debug output. This was raised in the v1 review and remains unfixed.

  $ ./getpid01 -D0
  tst_test.c:833: TINFO: Enabling debug info (level 0)

  Additionally, LTP_ENABLE_DEBUG=0 is a behavior regression: previously
  it was silently ignored (no output), now it prints a misleading "Enabling"
  message. The fix for the -D path is to guard the message:

  if (context->tdebug)
      tst_res(TINFO, "Enabling debug info (level %d)", context->tdebug);

  Same fix needed in the env var path.

  2. LTP_ENABLE_DEBUG still silently overrides a more specific -D flag
     — core ordering issue unfixed from v1

  The env var check runs after parse_opts(), so LTP_ENABLE_DEBUG always
  wins over the command-line -D flag:

  $ LTP_ENABLE_DEBUG=1 ./getpid01 -D2
  tst_test.c:833: TINFO: Enabling debug info (level 2)   ← from -D2
  tst_test.c:1457: TINFO: Enabling debug info (level 1)  ← env var overrides!

  And even disabling via the env var overrides an explicit command-line enable:
  $ LTP_ENABLE_DEBUG=0 ./getpid01 -D2
  tst_test.c:833: TINFO: Enabling debug info (level 2)   ← from -D2
  tst_test.c:1457: TINFO: Enabling debug info (level 0)  ← env var kills it

  Command-line should take precedence over environment variables. The
  fix is to skip the env var assignment when -D was already used:

  if (tdebug_env && !context->tdebug) {   /* only if -D wasn't passed */
      ...
  }

  Or, more robustly, check the env var before parse_opts() so the
  command-line naturally wins.


Point 1. is clearly true, the Point 2. might be a design choice. I don't
mind the priority of command line or env variable, but it's actually
correct to assume that env should be skipped if -D is defined.


Kind regards,
--
Andrea Cervesato
SUSE QE Automation Engineer Linux
andrea.cervesato@suse.com


More information about the ltp mailing list