[i-g-t] runner: Remove useless null check for delim in job_list_from_test_list
Matt Roper
matthew.d.roper at intel.com
Fri May 17 21:32:57 UTC 2024
On Tue, May 07, 2024 at 10:13:45AM -0700, Ngai-Mint Kwan wrote:
> Hi Gustavo,
>
> On 2024-04-30 14:19, Gustavo Sousa wrote:
> > The function job_list_from_test_list() uses a while loop to read entries
> > from the testlist.
> >
> > The condition ((delim = strchr(binary, '@')) != NULL) checks if the
> > current entry specifies a subtest. When no subtest is specified, the
> > else clause will cause a jump to the next iteration. That means that we
> > are certain any statement executed after that if block has (delim !=
> > NULL). As such, all null checks on that variable after that point are
> > pointless.
> >
> > In fact, certain unnecessary null checks might even cause confusion to
> > readers. One example is the block meant to display the "Unexpected test
> > without subtests ..." message: it would never happen, since that
> > condition is handled earlier in the iteration (i.e. the full set of
> > subtests is expanded for that entry in the else clause previously
> > mentioned). The following execution (done before this change)
> > illustrates that:
> >
> > $ cat <<EOF > /tmp/foo.testlist
> > igt at xe_pm@s2idle-basic
> > igt at xe_pm
> > igt at xe_pm@s2idle-exec-after
> > EOF
> >
> > $ ./build/runner/igt_runner -d -m --test-list /tmp/foo.testlist build/tests /tmp/results
> > [36408.109043] Dry run, not executing. Invoke igt_resume if you want to execute.
> > Done.
> >
> > $ cat /tmp/results/joblist.txt | sed 's/^\(.\{50\}\).\+/\1.../'
> > xe_pm s2idle-basic
> > xe_pm s2idle-basic,s2idle-basic-exec,s2idle-exec-a...
> > xe_pm s2idle-exec-after
> >
> > Let's remove those unnecessary checks.
> >
> > Signed-off-by: Gustavo Sousa <gustavo.sousa at intel.com>
>
> Reviewed-by: Ngai-Mint Kwan <ngai-mint.kwan at linux.intel.com>
>
> Thanks,
> Ngai-Mint Kwan
Applied, thanks for the patch and review.
Matt
>
> > ---
> > runner/job_list.c | 21 +++++----------------
> > 1 file changed, 5 insertions(+), 16 deletions(-)
> >
> > diff --git a/runner/job_list.c b/runner/job_list.c
> > index 27cbb10bce56..aeabb59f49d3 100644
> > --- a/runner/job_list.c
> > +++ b/runner/job_list.c
> > @@ -276,16 +276,7 @@ static bool job_list_from_test_list(struct job_list *job_list,
> > * specified, also start a new entry.
> > */
> > if (entry.binary && !strcmp(entry.binary, binary) &&
> > - (delim == NULL || strchr(delim, '@') == NULL)) {
> > - if (!delim) {
> > - /* ... except we didn't get a subtest */
> > - fprintf(stderr,
> > - "Error: Unexpected test without subtests "
> > - "after same test had subtests\n");
> > - free(binary);
> > - fclose(f);
> > - return false;
> > - }
> > + strchr(delim, '@') == NULL) {
> > entry.subtest_count++;
> > entry.subtests = realloc(entry.subtests,
> > entry.subtest_count *
> > @@ -303,7 +294,7 @@ static bool job_list_from_test_list(struct job_list *job_list,
> > memset(&entry, 0, sizeof(entry));
> > - if (delim != NULL && strchr(delim, '@') != NULL) {
> > + if (strchr(delim, '@') != NULL) {
> > /* Dynamic subtest specified. Add to job list alone. */
> > char **subtests;
> > @@ -314,11 +305,9 @@ static bool job_list_from_test_list(struct job_list *job_list,
> > any = true;
> > } else {
> > entry.binary = strdup(binary);
> > - if (delim) {
> > - entry.subtests = malloc(sizeof(*entry.subtests));
> > - entry.subtests[0] = strdup(delim);
> > - entry.subtest_count = 1;
> > - }
> > + entry.subtests = malloc(sizeof(*entry.subtests));
> > + entry.subtests[0] = strdup(delim);
> > + entry.subtest_count = 1;
> > }
> > free(binary);
>
--
Matt Roper
Graphics Software Engineer
Linux GPU Platform Enablement
Intel Corporation
More information about the igt-dev
mailing list