Re: [LTP] [PATCH] lib: add TST_NO_SLOW_KCONFIG_CHECK macro for testcase tools

Petr Vorel
2025-01-17T07:36:31Z

Hi Li,

> The macro TST_NO_SLOW_KCONFIG_CHECK is added to control whether
> the tst_has_slow_kconfig() function (which presumably checks for
> slow kernel configurations) should be executed.

That was quick, thanks a lot!

But unfortunately the patch does not help to avoid printing TINFO
(tested on a fresh clone):

# make && ./tst_ns_exec 14536 net,mnt sh -c " cat /proc/sys/net/ipv6/conf/ltp_ns_veth1/disable_ipv6"
CC testcases/lib/tst_ns_exec
make[1]: Nothing to be done for 'all'.
tst_kconfig.c:88: TINFO: Parsing kernel config '/proc/config.gz'
tst_kconfig.c:667: TINFO: CONFIG_LATENCYTOP kernel option detected which might slow the execution
0

Maybe it's because safe_clone() triggers it? Or what am I missing?

Kind regards,
Petr

> This allows test cases and tools to opt out of this additional
> check, enabling more flexible and faster test execution in
> certain scenarios.

> Signed-off-by: Li Wang <liwang@redhat.com>
> ---
> lib/tst_test.c | 2 ++
> testcases/lib/tst_device.c | 1 +
> testcases/lib/tst_get_free_pids.c | 1 +
> testcases/lib/tst_ns_create.c | 1 +
> testcases/lib/tst_ns_exec.c | 1 +
> testcases/lib/tst_run_shell.c | 1 +
> 6 files changed, 7 insertions(+)

> diff --git a/lib/tst_test.c b/lib/tst_test.c
> index b204ad975..00d34b6f0 100644
> --- a/lib/tst_test.c
> +++ b/lib/tst_test.c
> @@ -1702,8 +1702,10 @@ unsigned int tst_multiply_timeout(unsigned int timeout)
> if (timeout < 1)
> tst_brk(TBROK, "timeout must to be >= 1! (%d)", timeout);

> +#ifndef TST_NO_SLOW_KCONFIG_CHECK
> if (tst_has_slow_kconfig())
> timeout *= 4;
> +#endif

> return timeout * timeout_mul;
> }
> diff --git a/testcases/lib/tst_device.c b/testcases/lib/tst_device.c
> index 45f77a38b..386636610 100644
> --- a/testcases/lib/tst_device.c
> +++ b/testcases/lib/tst_device.c
> @@ -8,6 +8,7 @@
> #include <stdio.h>
> #include <stdlib.h>
> #define TST_NO_DEFAULT_MAIN
> +#define TST_NO_SLOW_KCONFIG_CHECK
> #include "tst_test.h"
> #include "old/old_device.h"

> diff --git a/testcases/lib/tst_get_free_pids.c b/testcases/lib/tst_get_free_pids.c
> index 370ec3e26..c6436687a 100644
> --- a/testcases/lib/tst_get_free_pids.c
> +++ b/testcases/lib/tst_get_free_pids.c
> @@ -1,6 +1,7 @@
> // SPDX-License-Identifier: GPL-2.0-or-later

> #define TST_NO_DEFAULT_MAIN
> +#define TST_NO_SLOW_KCONFIG_CHECK
> #include <stdio.h>
> #include "tst_test.h"

> diff --git a/testcases/lib/tst_ns_create.c b/testcases/lib/tst_ns_create.c
> index ce3707a60..8c22ad449 100644
> --- a/testcases/lib/tst_ns_create.c
> +++ b/testcases/lib/tst_ns_create.c
> @@ -17,6 +17,7 @@
> */

> #define TST_NO_DEFAULT_MAIN
> +#define TST_NO_SLOW_KCONFIG_CHECK

> #include <stdio.h>
> #include <string.h>
> diff --git a/testcases/lib/tst_ns_exec.c b/testcases/lib/tst_ns_exec.c
> index 6a8e39339..ca5b717da 100644
> --- a/testcases/lib/tst_ns_exec.c
> +++ b/testcases/lib/tst_ns_exec.c
> @@ -14,6 +14,7 @@
> */

> #define TST_NO_DEFAULT_MAIN
> +#define TST_NO_SLOW_KCONFIG_CHECK

> #include <stdio.h>
> #include <sys/wait.h>
> diff --git a/testcases/lib/tst_run_shell.c b/testcases/lib/tst_run_shell.c
> index 7a446e004..b12a1e9f6 100644
> --- a/testcases/lib/tst_run_shell.c
> +++ b/testcases/lib/tst_run_shell.c
> @@ -5,6 +5,7 @@
> #include <sys/mount.h>

> #define TST_NO_DEFAULT_MAIN
> +#define TST_NO_SLOW_KCONFIG_CHECK
> #include "tst_test.h"
> #include "tst_safe_stdio.h"
> #include "ujson.h"