Re: [PATCH] test-lib: don't check prereqs of test cases that won't be run anyway
- From
Johannes Schindelin <johannes.schindelin@gmx.de>
- Date
- Nov 12, 2019, 19:28 UTC
- Message-ID
- <nycvar.QRO.7.76.6.1911122028270.46@tvgsbejvaqbjf.bet>
- In-Reply-To
- <20191112122438.17057-1-szeder.dev@gmail.com>
Hi Gábor,
On Tue, 12 Nov 2019, SZEDER Gábor wrote:
Show 17 quoted lines
> With './t1234-foo.sh -r 5,6' we can run only specific test cases in a > test script, but our test framwork still evaluates all lazy prereqs > that the excluded test cases might depend on. This is unnecessary and > produces verbose and trace output that can be distracting. This has > been an issue ever since the '-r|--run=' options were introduced in > 0445e6f0a1 (test-lib: '--run' to run only specific tests, 2014-04-30), > because that commit added the check of the list of test cases > specified with '-r' after evaluating the prereqs. > > Avoid this unnecessary prereq evaluation by checking the list of test > cases specified with '-r' before looking at the prereqs. > > Note that GIT_SKIP_TESTS has always been checked before the prereqs, > so prereqs necessary for tests skipped that way were not evaluated. > > Signed-off-by: SZEDER Gábor <szeder.dev@gmail.com> > ---
Thank you for this patch! Dscho
Show 42 quoted lines
>
> Following up on:
>
> https://public-inbox.org/git/20190923165828.GA27068@szeder.dev/
>
> t/test-lib.sh | 12 ++++++------
> 1 file changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/t/test-lib.sh b/t/test-lib.sh
> index e06fa02a0e..24b541f494 100644
> --- a/t/test-lib.sh
> +++ b/t/test-lib.sh
> @@ -1000,6 +1000,12 @@ test_skip () {
> to_skip=t
> skipped_reason="GIT_SKIP_TESTS"
> fi
> + if test -z "$to_skip" && test -n "$run_list" &&
> + ! match_test_selector_list '--run' $test_count "$run_list"
> + then
> + to_skip=t
> + skipped_reason="--run"
> + fi
> if test -z "$to_skip" && test -n "$test_prereq" &&
> ! test_have_prereq "$test_prereq"
> then
> @@ -1012,12 +1018,6 @@ test_skip () {
> fi
> skipped_reason="missing $missing_prereq${of_prereq}"
> fi
> - if test -z "$to_skip" && test -n "$run_list" &&
> - ! match_test_selector_list '--run' $test_count "$run_list"
> - then
> - to_skip=t
> - skipped_reason="--run"
> - fi
>
> case "$to_skip" in
> t)
> --
> 2.24.0.388.gde53c094ea
>
>