[igt-dev] [PATCH 1/3] runner: Normalize testlist entries that don't list subtests

Mauro Carvalho Chehab mauro.chehab at linux.intel.com
Tue Oct 24 13:51:05 UTC 2023


On Fri, 20 Oct 2023 16:30:39 +0300
Petri Latvala <adrinael at adrinael.net> wrote:

> As the syntax for "all subtests" and "test that doesn't have subtests"
> is the same, check the subtest listing when building the execution
> plan. Doing that makes it possible to still have "all subtests" in
> testlists (albeit not originally designed to support that) and enables
> blocklisting particular subtests.
> 
> Signed-off-by: Petri Latvala <adrinael at adrinael.net>
> Cc: Mauro Carvalho Chehab <mchehab at kernel.org>
> Cc: Arkadiusz Hiler <arek at hiler.eu>
> Cc: Kamil Konieczny <kamil.konieczny at linux.intel.com>
> Cc: Juha-Pekka Heikkila <juhapekka.heikkila at gmail.com>
> Cc: Bhanuprakash Modem <bhanuprakash.modem at intel.com>
> Cc: Ashutosh Dixit <ashutosh.dixit at intel.com>
> Closes: https://gitlab.freedesktop.org/drm/igt-gpu-tools/-/issues/149

That does the job.

Reviewed-by: Mauro Carvalho Chehab <mchehab at kernel.org>

> ---
>  runner/job_list.c | 22 +++++++++++++++++++++-
>  1 file changed, 21 insertions(+), 1 deletion(-)
> 
> diff --git a/runner/job_list.c b/runner/job_list.c
> index e6ea83631..27cbb10bc 100644
> --- a/runner/job_list.c
> +++ b/runner/job_list.c
> @@ -230,8 +230,28 @@ static bool job_list_from_test_list(struct job_list *job_list,
>  			continue;
>  
>  		if (sscanf(line, "igt@%ms", &binary) == 1) {
> -			if ((delim = strchr(binary, '@')) != NULL)
> +			if ((delim = strchr(binary, '@')) != NULL) {
>  				*delim++ = '\0';
> +			} else {
> +				/*
> +				 * No subtests specified. Check
> +				 * whether the user means "all
> +				 * subtests" or if the test doesn't
> +				 * have any.
> +				 */
> +				if (entry.binary) {
> +					/* First flush the entry we're building for multiple-mode */
> +					add_job_list_entry(job_list, entry.binary, entry.subtests, entry.subtest_count);
> +					memset(&entry, 0, sizeof(entry));
> +					any = true;
> +				}
> +
> +				add_subtests(job_list, settings, binary,
> +					     &settings->include_regexes,
> +					     &settings->exclude_regexes);
> +				any = true;
> +				continue;
> +			}
>  
>  			if (!settings->multiple_mode) {
>  				char **subtests = NULL;


More information about the igt-dev mailing list