On Thu, May 13, 2021 at 03:49:52PM +0900, Junio C Hamano wrote: > > 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. Oh yeah, I meant to call that out. I flipped them mostly because it made the conditional easier to read (though as you can see, it's already quite a mouthful). In practice the short-circuit doesn't help us much, though. Unless a test is buggy, we end up having to run both tests either way, no matter the order. -Peff