* [LTP] [PATCH] lib: add TST_NO_SLOW_KCONFIG_CHECK macro for testcase tools
@ 2025-01-17 7:17 Li Wang
2025-01-17 7:36 ` Petr Vorel
2025-01-17 7:48 ` Andrea Cervesato via ltp
0 siblings, 2 replies; 9+ messages in thread
From: Li Wang @ 2025-01-17 7:17 UTC (permalink / raw)
To: ltp
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.
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"
--
2.47.1
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [LTP] [PATCH] lib: add TST_NO_SLOW_KCONFIG_CHECK macro for testcase tools
2025-01-17 7:17 [LTP] [PATCH] lib: add TST_NO_SLOW_KCONFIG_CHECK macro for testcase tools Li Wang
@ 2025-01-17 7:36 ` Petr Vorel
2025-01-17 8:04 ` Petr Vorel
2025-01-17 7:48 ` Andrea Cervesato via ltp
1 sibling, 1 reply; 9+ messages in thread
From: Petr Vorel @ 2025-01-17 7:36 UTC (permalink / raw)
To: Li Wang; +Cc: ltp
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"
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [LTP] [PATCH] lib: add TST_NO_SLOW_KCONFIG_CHECK macro for testcase tools
2025-01-17 7:17 [LTP] [PATCH] lib: add TST_NO_SLOW_KCONFIG_CHECK macro for testcase tools Li Wang
2025-01-17 7:36 ` Petr Vorel
@ 2025-01-17 7:48 ` Andrea Cervesato via ltp
2025-01-17 8:27 ` Li Wang
1 sibling, 1 reply; 9+ messages in thread
From: Andrea Cervesato via ltp @ 2025-01-17 7:48 UTC (permalink / raw)
To: Li Wang, ltp
Hi Li,
the feature is interesting, but I have the feeling this should be added
to tst_test struct rather than using a flag at compile time.
For example, by adding to tst_test a slow_kconfig attribute.
Andrea
On 1/17/25 08:17, Li Wang wrote:
> 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.
>
> 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"
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [LTP] [PATCH] lib: add TST_NO_SLOW_KCONFIG_CHECK macro for testcase tools
2025-01-17 7:36 ` Petr Vorel
@ 2025-01-17 8:04 ` Petr Vorel
2025-01-17 8:13 ` Li Wang
0 siblings, 1 reply; 9+ messages in thread
From: Petr Vorel @ 2025-01-17 8:04 UTC (permalink / raw)
To: Li Wang, ltp
Hi Li,
> 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?
The problem why it does not work is that it uses lib/tst_test.o via
lib/libltp.a, which was compiled without TST_NO_SLOW_KCONFIG_CHECK.
IMHO We cannot easily solve this with preprocessor definition.
Kind regards,
Petr
> 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.
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [LTP] [PATCH] lib: add TST_NO_SLOW_KCONFIG_CHECK macro for testcase tools
2025-01-17 8:04 ` Petr Vorel
@ 2025-01-17 8:13 ` Li Wang
2025-01-17 8:15 ` Petr Vorel
0 siblings, 1 reply; 9+ messages in thread
From: Li Wang @ 2025-01-17 8:13 UTC (permalink / raw)
To: Petr Vorel; +Cc: ltp
On Fri, Jan 17, 2025 at 4:05 PM Petr Vorel <pvorel@suse.cz> wrote:
> Hi Li,
>
> > 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?
>
> The problem why it does not work is that it uses lib/tst_test.o via
> lib/libltp.a, which was compiled without TST_NO_SLOW_KCONFIG_CHECK.
>
Really? How does that TST_NO_DEFAULT_MAIN work?
Reading the code...
>
> IMHO We cannot easily solve this with preprocessor definition.
>
> Kind regards,
> Petr
>
> > 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.
>
>
--
Regards,
Li Wang
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [LTP] [PATCH] lib: add TST_NO_SLOW_KCONFIG_CHECK macro for testcase tools
2025-01-17 8:13 ` Li Wang
@ 2025-01-17 8:15 ` Petr Vorel
2025-01-17 8:20 ` Li Wang
0 siblings, 1 reply; 9+ messages in thread
From: Petr Vorel @ 2025-01-17 8:15 UTC (permalink / raw)
To: Li Wang; +Cc: ltp
> On Fri, Jan 17, 2025 at 4:05 PM Petr Vorel <pvorel@suse.cz> wrote:
> > Hi Li,
> > > 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?
> > The problem why it does not work is that it uses lib/tst_test.o via
> > lib/libltp.a, which was compiled without TST_NO_SLOW_KCONFIG_CHECK.
> Really? How does that TST_NO_DEFAULT_MAIN work?
> Reading the code...
I guess the code which evaluates TST_NO_DEFAULT_MAIN must be in static inline
function in tst_test.h header. Then it will work.
Kind regards,
Petr
> > IMHO We cannot easily solve this with preprocessor definition.
> > Kind regards,
> > Petr
> > > 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.
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [LTP] [PATCH] lib: add TST_NO_SLOW_KCONFIG_CHECK macro for testcase tools
2025-01-17 8:15 ` Petr Vorel
@ 2025-01-17 8:20 ` Li Wang
0 siblings, 0 replies; 9+ messages in thread
From: Li Wang @ 2025-01-17 8:20 UTC (permalink / raw)
To: Petr Vorel; +Cc: ltp
On Fri, Jan 17, 2025 at 4:15 PM Petr Vorel <pvorel@suse.cz> wrote:
> > On Fri, Jan 17, 2025 at 4:05 PM Petr Vorel <pvorel@suse.cz> wrote:
>
> > > Hi Li,
>
> > > > 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?
>
> > > The problem why it does not work is that it uses lib/tst_test.o via
> > > lib/libltp.a, which was compiled without TST_NO_SLOW_KCONFIG_CHECK.
>
>
> > Really? How does that TST_NO_DEFAULT_MAIN work?
> > Reading the code...
>
> I guess the code which evaluates TST_NO_DEFAULT_MAIN must be in static
> inline
> function in tst_test.h header. Then it will work.
>
Seems not, the TST_NO_DEFAULT_MAIN is defined in tst_test.c directly,
so base on that, all the TST_NO_* macros in testcase/lib/* is redundant.
That mislead us the correct way.
>
> Kind regards,
> Petr
>
> > > IMHO We cannot easily solve this with preprocessor definition.
>
> > > Kind regards,
> > > Petr
>
> > > > 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.
>
>
--
Regards,
Li Wang
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [LTP] [PATCH] lib: add TST_NO_SLOW_KCONFIG_CHECK macro for testcase tools
2025-01-17 7:48 ` Andrea Cervesato via ltp
@ 2025-01-17 8:27 ` Li Wang
2025-01-17 8:43 ` Petr Vorel
0 siblings, 1 reply; 9+ messages in thread
From: Li Wang @ 2025-01-17 8:27 UTC (permalink / raw)
To: Andrea Cervesato, Petr Vorel, Cyril Hrubis; +Cc: ltp
On Fri, Jan 17, 2025 at 3:49 PM Andrea Cervesato <andrea.cervesato@suse.com>
wrote:
> Hi Li,
>
> the feature is interesting, but I have the feeling this should be added
> to tst_test struct rather than using a flag at compile time.
> For example, by adding to tst_test a slow_kconfig attribute.
>
Thanks. But sounds a little bit unnecessary to add new field in tst_test
struct.
What about using an global variable like tst_no_slow_kcofig_check ?
>
> Andrea
>
> On 1/17/25 08:17, Li Wang wrote:
> > 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.
> >
> > 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"
>
>
--
Regards,
Li Wang
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [LTP] [PATCH] lib: add TST_NO_SLOW_KCONFIG_CHECK macro for testcase tools
2025-01-17 8:27 ` Li Wang
@ 2025-01-17 8:43 ` Petr Vorel
0 siblings, 0 replies; 9+ messages in thread
From: Petr Vorel @ 2025-01-17 8:43 UTC (permalink / raw)
To: Li Wang; +Cc: ltp
Hi all,
> On Fri, Jan 17, 2025 at 3:49 PM Andrea Cervesato <andrea.cervesato@suse.com>
> wrote:
> > Hi Li,
> > the feature is interesting, but I have the feeling this should be added
> > to tst_test struct rather than using a flag at compile time.
> > For example, by adding to tst_test a slow_kconfig attribute.
> Thanks. But sounds a little bit unnecessary to add new field in tst_test
> struct.
> What about using an global variable like tst_no_slow_kcofig_check ?
This could work.
I sent a patch which takes yet another option: static inline function which
differs based on existing TST_NO_DEFAULT_MAIN. That keeps the functionality for
tests only, avoid it for libraries.
Actually similar approach Li did, but moved to header (it cannot be in C file).
Kind regards,
Petr
> > Andrea
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2025-01-17 8:44 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-01-17 7:17 [LTP] [PATCH] lib: add TST_NO_SLOW_KCONFIG_CHECK macro for testcase tools Li Wang
2025-01-17 7:36 ` Petr Vorel
2025-01-17 8:04 ` Petr Vorel
2025-01-17 8:13 ` Li Wang
2025-01-17 8:15 ` Petr Vorel
2025-01-17 8:20 ` Li Wang
2025-01-17 7:48 ` Andrea Cervesato via ltp
2025-01-17 8:27 ` Li Wang
2025-01-17 8:43 ` Petr Vorel
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox