Re: [PATCH] t: avoid sed-based chain-linting in some expensive cases
- From
Junio C Hamano <gitster@pobox.com>
- Date
- May 13, 2021, 06:49 UTC
- Message-ID
- <xmqqim3nb01b.fsf@gitster.g>
- In-Reply-To
- <YJzGcZpZ+E9R0gYd@coredump.intra.peff.net>
Jeff King <peff@peff.net> writes:
> Of course those extra lint checks are doing something useful, so paying > a few extra seconds (at least on Linux) isn't so bad (though note the > CPU time; we're bounded in our parallel run here by the slowest test, so > it really is ~120s of CPU improvement).
Nice.
Show 15 quoted lines
> diff --git a/t/test-lib.sh b/t/test-lib.sh
> index adaa2db601..adaf03543e 100644
> --- a/t/test-lib.sh
> +++ b/t/test-lib.sh
> @@ -947,8 +947,11 @@ test_run_ () {
> trace=
> # 117 is magic because it is unlikely to match the exit
> # code of other programs
> - if $(printf '%s\n' "$1" | sed -f "$GIT_BUILD_DIR/t/chainlint.sed" | grep -q '?![A-Z][A-Z]*?!') ||
> - test "OK-117" != "$(test_eval_ "(exit 117) && $1${LF}${LF}echo OK-\$?" 3>&1)"
> + if test "OK-117" != "$(test_eval_ "(exit 117) && $1${LF}${LF}echo OK-\$?" 3>&1)" ||
> + {
> + test "${GIT_TEST_CHAIN_LINT_HARDER:-${GIT_TEST_CHAIN_LINT_HARDER_DEFAULT:-1}}" != 0 &&
> + $(printf '%s\n' "$1" | sed -f "$GIT_BUILD_DIR/t/chainlint.sed" | grep -q '?![A-Z][A-Z]*?!')
> + }We have been doing the more expensive one first, but we now optionally skip it while retaining the one that uses the shell. OK.
Nicely done.
> then > BUG "broken &&-chain or run-away HERE-DOC: $1" > fi