[LTP] Proposal for new LTP config knob: LTP_QUIET
Martin Cermak
mcermak@redhat.com
Mon Sep 22 13:06:11 CEST 2025
Hi Cyril,
I'm attaching updated patch. Hope it does address your comments.
Please check.
Cheers,
Martin
On Mon 2025-09-22 10:01 , Cyril Hrubis wrote:
> Hi!
> > some time back, LTP_REPRODUCIBLE_OUTPUT was introduced in LTP.
> > I'd like to propose a new, related LTP knob for our Valgrind
> > test automation purposes: LTP_QUIET. See attached patch.
> >
> > LTP_QUIET is supposed to suppress certain types of test output
> > messages, such as: TCONF, TWARN, TINFO, and TDEBUG. This would
> > help us keep our test logs briefer, while still keeping the
> > information we need in the logs.
> >
> > Please, consider merging upstream.
>
> Generally looks good, a few minor points below.
>
> > From fb13e461ac76f6843f0fd9cc37ff42b971e8057c Mon Sep 17 00:00:00 2001
> > From: Martin Cermak <mcermak@redhat.com>
> > Date: Tue, 16 Sep 2025 16:15:22 +0200
> > Subject: [PATCH] Introduce and use LTP_QUIET
> >
> > Introduce LTP_QUIET env variable. When set to 1 or y, it will
> > suppress printing TCONF, TWARN, TINFO, and TDEBUG messages, making
> > valgrind ltp test logs cleaner. In some cases such as eventfd2_03,
> > shmctl05, mlock03, poll02, prctl09, setsockopt10, and select02 this
> > update avoids false positives.
> > ---
> > .../0002-Introduce-LTP_QUIET-env-var.patch | 73 +++++++++++++++++++
> > auxprogs/ltp-tester.sh | 7 ++
> > 2 files changed, 80 insertions(+)
> > create mode 100644 auxprogs/ltp-patches/0002-Introduce-LTP_QUIET-env-var.patch
> >
> > diff --git a/auxprogs/ltp-patches/0002-Introduce-LTP_QUIET-env-var.patch b/auxprogs/ltp-patches/0002-Introduce-LTP_QUIET-env-var.patch
> > new file mode 100644
> > index 000000000..a77162bfc
> > --- /dev/null
> > +++ b/auxprogs/ltp-patches/0002-Introduce-LTP_QUIET-env-var.patch
> > @@ -0,0 +1,73 @@
> > +From 183df3240f8e7ca38fbe2fd472c31c9417ae7eb2 Mon Sep 17 00:00:00 2001
> > +From: Martin Cermak <mcermak@redhat.com>
> > +Date: Tue, 16 Sep 2025 15:46:40 +0200
> > +Subject: [PATCH] Introduce LTP_QUIET env var
> > +
> > +Introduce LTP_QUIET env variable. When set to 1 or y, it will
> > +suppress printing TCONF, TWARN, TINFO, and TDEBUG messages.
>
> Can you please send a diff and not diff of a diff so that we don't have
> to hand edit it before applying?
>
> > +---
> > + lib/tst_test.c | 11 +++++++++++
> > + 1 file changed, 11 insertions(+)
> > +
> > +diff --git a/lib/tst_test.c b/lib/tst_test.c
> > +index 92872cc89..609a7b075 100644
> > +--- a/lib/tst_test.c
> > ++++ b/lib/tst_test.c
> > +@@ -68,6 +68,7 @@ static int iterations = 1;
> > + static float duration = -1;
> > + static float timeout_mul = -1;
> > + static int reproducible_output;
> > ++static int quiet_output;
> > +
> > + struct context {
> > + int32_t lib_pid;
> > +@@ -307,15 +308,19 @@ static void print_result(const char *file, const int lineno, int ttype,
> > + res = "TBROK";
> > + break;
> > + case TCONF:
> > ++ if (quiet_output) return;
> > + res = "TCONF";
> > + break;
> > + case TWARN:
> > ++ if (quiet_output) return;
> > + res = "TWARN";
> > + break;
> > + case TINFO:
> > ++ if (quiet_output) return;
> > + res = "TINFO";
> > + break;
> > + case TDEBUG:
> > ++ if (quiet_output) return;
>
> The LKML coding style requires the return to be on a separate line.
>
> > + res = "TDEBUG";
> > + break;
> > + default:
> > +@@ -670,6 +675,7 @@ static void print_help(void)
> > + fprintf(stderr, "LTP_DEV_FS_TYPE Filesystem used for testing (default: %s)\n", DEFAULT_FS_TYPE);
> > + fprintf(stderr, "LTP_ENABLE_DEBUG Print debug messages (set 1 or y)\n");
> > + fprintf(stderr, "LTP_REPRODUCIBLE_OUTPUT Values 1 or y discard the actual content of the messages printed by the test\n");
> > ++ fprintf(stderr, "LTP_QUIET Values 1 or y will suppress printing TCONF, TWARN, TINFO, and TDEBUG messages\n");
> > + fprintf(stderr, "LTP_SINGLE_FS_TYPE Specifies filesystem instead all supported (for .all_filesystems)\n");
> > + fprintf(stderr, "LTP_FORCE_SINGLE_FS_TYPE Testing only. The same as LTP_SINGLE_FS_TYPE but ignores test skiplist.\n");
> > + fprintf(stderr, "LTP_TIMEOUT_MUL Timeout multiplier (must be a number >=1)\n");
> > +@@ -1361,6 +1367,7 @@ static void do_setup(int argc, char *argv[])
> > + {
> > + char *tdebug_env = getenv("LTP_ENABLE_DEBUG");
> > + char *reproducible_env = getenv("LTP_REPRODUCIBLE_OUTPUT");
> > ++ char *quiet_env = getenv("LTP_QUIET");
> > +
> > + if (!tst_test)
> > + tst_brk(TBROK, "No tests to run");
> > +@@ -1391,6 +1398,10 @@ static void do_setup(int argc, char *argv[])
> > + (!strcmp(reproducible_env, "1") || !strcmp(reproducible_env, "y")))
> > + reproducible_output = 1;
> > +
> > ++ if (quiet_env &&
> > ++ (!strcmp(quiet_env, "1") || !strcmp(quiet_env, "y")))
> > ++ quiet_output = 1;
> > ++
> > + assert_test_fn();
> > +
> > + TCID = tcid = get_tcid(argv);
> > +--
> > +2.48.1
> > +
> > diff --git a/auxprogs/ltp-tester.sh b/auxprogs/ltp-tester.sh
> > index ba8fd8be4..a95c603c5 100755
> > --- a/auxprogs/ltp-tester.sh
> > +++ b/auxprogs/ltp-tester.sh
> > @@ -21,6 +21,7 @@ PARALLEL_JOBS=${PARALLEL_JOBS:-$(nproc)}
> > # https://lore.kernel.org/ltp/20250505195003.GB137650@pevik/T/#t
> > export LTP_COLORIZE_OUTPUT=0
> > export LTP_REPRODUCIBLE_OUTPUT=1
> > +export LTP_QUIET=1
> >
> > # Initialize LOGDIR for bunsen upload (https://sourceware.org/bunsen/)
> > mkdir -p $LOGDIR; rm -rf ${LOGDIR:?}/*
> > @@ -110,4 +111,10 @@ done
> >
> > wait
> >
> > +echo -e "\nBrief LTP test results summary"
> > +echo "-----------------------------------------"
> > +find $LOGDIR -type f -name '*.trs' -exec grep -F ':test-result:' '{}' ';' |\
> > + sort -r | uniq -c | awk '{print $NF": "$1}'
> > +echo -e "-----------------------------------------\n"
> > +
> > echo "TESTING FINISHED, logs in $LOGDIR"
>
> This is a part of valgrind, not applicable to LTP...
>
> --
> Cyril Hrubis
> chrubis@suse.cz
>
-------------- next part --------------
>From 3b77308f8f71a4dfd10815b35d783aaddbecb149 Mon Sep 17 00:00:00 2001
From: Martin Cermak <mcermak@redhat.com>
Date: Mon, 22 Sep 2025 12:58:13 +0200
Subject: [PATCH] Introduce LTP_QUIET env var
Introduce LTP_QUIET env variable. When set to 1 or y, it will
suppress printing TCONF, TWARN, TINFO, and TDEBUG messages.
---
lib/tst_test.c | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/lib/tst_test.c b/lib/tst_test.c
index 92872cc89..53b53af1a 100644
--- a/lib/tst_test.c
+++ b/lib/tst_test.c
@@ -68,6 +68,7 @@ static int iterations = 1;
static float duration = -1;
static float timeout_mul = -1;
static int reproducible_output;
+static int quiet_output;
struct context {
int32_t lib_pid;
@@ -307,15 +308,21 @@ static void print_result(const char *file, const int lineno, int ttype,
res = "TBROK";
break;
case TCONF:
+ if (quiet_output)
+ return;
res = "TCONF";
break;
case TWARN:
res = "TWARN";
break;
case TINFO:
+ if (quiet_output)
+ return;
res = "TINFO";
break;
case TDEBUG:
+ if (quiet_output)
+ return;
res = "TDEBUG";
break;
default:
@@ -670,6 +677,7 @@ static void print_help(void)
fprintf(stderr, "LTP_DEV_FS_TYPE Filesystem used for testing (default: %s)\n", DEFAULT_FS_TYPE);
fprintf(stderr, "LTP_ENABLE_DEBUG Print debug messages (set 1 or y)\n");
fprintf(stderr, "LTP_REPRODUCIBLE_OUTPUT Values 1 or y discard the actual content of the messages printed by the test\n");
+ fprintf(stderr, "LTP_QUIET Values 1 or y will suppress printing TCONF, TWARN, TINFO, and TDEBUG messages\n");
fprintf(stderr, "LTP_SINGLE_FS_TYPE Specifies filesystem instead all supported (for .all_filesystems)\n");
fprintf(stderr, "LTP_FORCE_SINGLE_FS_TYPE Testing only. The same as LTP_SINGLE_FS_TYPE but ignores test skiplist.\n");
fprintf(stderr, "LTP_TIMEOUT_MUL Timeout multiplier (must be a number >=1)\n");
@@ -1361,6 +1369,7 @@ static void do_setup(int argc, char *argv[])
{
char *tdebug_env = getenv("LTP_ENABLE_DEBUG");
char *reproducible_env = getenv("LTP_REPRODUCIBLE_OUTPUT");
+ char *quiet_env = getenv("LTP_QUIET");
if (!tst_test)
tst_brk(TBROK, "No tests to run");
@@ -1391,6 +1400,10 @@ static void do_setup(int argc, char *argv[])
(!strcmp(reproducible_env, "1") || !strcmp(reproducible_env, "y")))
reproducible_output = 1;
+ if (quiet_env &&
+ (!strcmp(quiet_env, "1") || !strcmp(quiet_env, "y")))
+ quiet_output = 1;
+
assert_test_fn();
TCID = tcid = get_tcid(argv);
--
2.48.1
More information about the ltp
mailing list