[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