From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.126]) by gabe.freedesktop.org (Postfix) with ESMTPS id 2185110E3C6 for ; Tue, 24 Oct 2023 13:51:10 +0000 (UTC) Date: Tue, 24 Oct 2023 15:51:05 +0200 From: Mauro Carvalho Chehab To: Petri Latvala Message-ID: <20231024155105.60f3a741@maurocar-mobl2> In-Reply-To: <20231020133041.58257-1-adrinael@adrinael.net> References: <20231020133041.58257-1-adrinael@adrinael.net> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Subject: Re: [igt-dev] [PATCH 1/3] runner: Normalize testlist entries that don't list subtests List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: igt-dev@lists.freedesktop.org Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" List-ID: On Fri, 20 Oct 2023 16:30:39 +0300 Petri Latvala 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 > Cc: Mauro Carvalho Chehab > Cc: Arkadiusz Hiler > Cc: Kamil Konieczny > Cc: Juha-Pekka Heikkila > Cc: Bhanuprakash Modem > Cc: Ashutosh Dixit > Closes: https://gitlab.freedesktop.org/drm/igt-gpu-tools/-/issues/149 That does the job. Reviewed-by: Mauro Carvalho Chehab > --- > 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;