[LTP] [PATCH 1/2] tst_test: Add $LTP_SINGLE_ITERATION to limit variant

Cyril Hrubis chrubis@suse.cz
Mon Feb 24 16:16:37 CET 2025


Hi!
>  	lib_pid = getpid();
>  	tst_test = self;
> @@ -1899,7 +1901,6 @@ void tst_run_tcases(int argc, char *argv[], struct tst_test *self)
>  
>  	tst_res(TINFO, "LTP version: "LTP_VERSION);
>  
> -
>  	uname(&uval);
>  	tst_res(TINFO, "Tested kernel: %s %s %s", uval.release, uval.version, uval.machine);
>  
> @@ -1908,10 +1909,20 @@ void tst_run_tcases(int argc, char *argv[], struct tst_test *self)
>  
>  	set_overall_timeout();
>  
> -	if (tst_test->test_variants)
> +	if (tst_test->test_variants) {
>  		test_variants = tst_test->test_variants;
> +		only_variant = getenv("LTP_SINGLE_VARIANT");
> +		if (only_variant && only_variant[0] != '\0') {
> +			tst_variant = MIN(SAFE_STRTOL((char *)only_variant, 0, INT_MAX),
> +							  test_variants - 1);
> +			tst_res(TINFO, "WARNING: testing only variant %d of %d",
> +					tst_variant, test_variants - 1);
> +			test_variants = tst_variant + 1;
> +		}
> +	}
> +
> +	for (; tst_variant < test_variants; tst_variant++) {
>  
> -	for (tst_variant = 0; tst_variant < test_variants; tst_variant++) {
>  		if (tst_test->all_filesystems || count_fs_descs() > 1)
>  			ret |= run_tcases_per_fs();
>  		else

Can we instead add a function that would set two integer variables,
first_variant and last variant as:

static void setup_variants(unsigned int *first_variant, unsigned int *last_variant)
{
	//setup the defaults and parse the variables here
}

And the we can do:

diff --git a/lib/tst_test.c b/lib/tst_test.c
index e2803f04a..d19fe9aba 100644
--- a/lib/tst_test.c
+++ b/lib/tst_test.c
@@ -1885,7 +1885,7 @@ unsigned int tst_variant;
 void tst_run_tcases(int argc, char *argv[], struct tst_test *self)
 {
        int ret = 0;
-       unsigned int test_variants = 1;
+       unsigned int first_variant, last_variant;
        struct utsname uval;

        lib_pid = getpid();
@@ -1908,10 +1908,9 @@ void tst_run_tcases(int argc, char *argv[], struct tst_test *self)

        set_overall_timeout();

-       if (tst_test->test_variants)
-               test_variants = tst_test->test_variants;
+       setup_variants(&first_variant, &last_variant);

-       for (tst_variant = 0; tst_variant < test_variants; tst_variant++) {
+       for (tst_variant = first_variant; tst_variant <= last_variant; tst_variant++) {
                if (tst_test->all_filesystems || count_fs_descs() > 1)
                        ret |= run_tcases_per_fs();
                else
diff --git a/testcases/kernel/syscalls/pause/pause01.c b/testcases/kernel/syscalls/pause/pause01.c
index adce0ddcf..74a7e514e 100644
--- a/testcases/kernel/syscalls/pause/pause01.c
+++ b/testcases/kernel/syscalls/pause/pause01.c
@@ -20,6 +20,8 @@ static void do_child(void)
        SAFE_SIGNAL(SIGINT, sig_handler);
        TST_EXP_FAIL(pause(), EINTR);
        TST_CHECKPOINT_WAKE(0);
+
+       tst_res(TPASS, "Process resumed from pause()");
 }

 static void run(void)


-- 
Cyril Hrubis
chrubis@suse.cz


More information about the ltp mailing list