[LTP] Proposal for new LTP config knob: LTP_QUIET

Petr Vorel pvorel@suse.cz
Wed Sep 17 12:37:17 CEST 2025


Hi Martin,

> Hi folks,

> 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.

Thanks for contributing this. So the point is to have only the final summary
printed, right? (summary of TCONF/TWARN/TBROK/...).

I'm ok for merging this + to introduce the same for shell API (tst_test.sh),
although you in valgrind don't use it.  And we could even introduce '-q' getopt
(easier for manual debugging).

Do we then want to keep the "reproducible output" part? Or should it quiet
replace it?

@Cyril, if you agree, do we dare to have it before the release?

> Thank you,
> Martin



> 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.
> +---
> + 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;
> + 		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

This part is your valgrind runner right? (i.e. not for LTP).

Kind regards,
Petr

> @@ -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"


More information about the ltp mailing list