Message ID | 20250311212505.2920181-3-gitster@pobox.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | drop "name-rev --stdin" support | expand |
On Tue, Mar 11, 2025 at 02:25:01PM -0700, Junio C Hamano wrote: > diff --git a/t/test-lib-functions.sh b/t/test-lib-functions.sh > index 79377bc0fc..16eaaaf4c3 100644 > --- a/t/test-lib-functions.sh > +++ b/t/test-lib-functions.sh > @@ -773,6 +773,8 @@ mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-'"$1"'" && > rm -rf "$TRASH_DIRECTORY/prereq-test-dir-$1" > if test "$eval_ret" = 0; then > say >&3 "prerequisite $1 ok" > + elif test "$eval_ret" = 125; then > + :; > else > say >&3 "prerequisite $1 not satisfied" > fi The semicolon in ":;" threw me off a bit. Am I missing why we need it or is it superfluous? > @@ -811,6 +813,9 @@ test_have_prereq () { > if test_run_lazy_prereq_ "$prerequisite" "$script" > then > test_set_prereq $prerequisite > + elif test $? = 125 > + then > + BUG "Do not use $prerequisite" > fi > lazily_tested_prereq="$lazily_tested_prereq$prerequisite " > esac Hm, okay. It feels quite close to overthinking the whole deprecation cycle around prerequisites as it's nothing that we tend to do very often. But on the other hand the implementation is trivial enough, so I don't mind it much. Patrick
diff --git a/t/README b/t/README index 3ce9f5a393..e9ffd9a81c 100644 --- a/t/README +++ b/t/README @@ -983,8 +983,10 @@ see test-lib-functions.sh for the full list and their options. SYMLINKS ...". The script is run in a temporary directory inside a subshell, so you do not have to worry about removing temporary files you create there. When the script exits with status 0, the - prerequisite is set. Exiting with non-zero status makes the - prerequisite unsatisified. + prerequisite is set. Exiting with non-zero status other than 125 + makes the prerequisite unsatisified. Exiting the script with 125 + signals a programming error and is used to mark a prerequisite that + should not be used by test scripts. - test_expect_code <exit-code> <command> diff --git a/t/test-lib-functions.sh b/t/test-lib-functions.sh index 79377bc0fc..16eaaaf4c3 100644 --- a/t/test-lib-functions.sh +++ b/t/test-lib-functions.sh @@ -773,6 +773,8 @@ mkdir -p "$TRASH_DIRECTORY/prereq-test-dir-'"$1"'" && rm -rf "$TRASH_DIRECTORY/prereq-test-dir-$1" if test "$eval_ret" = 0; then say >&3 "prerequisite $1 ok" + elif test "$eval_ret" = 125; then + :; else say >&3 "prerequisite $1 not satisfied" fi @@ -811,6 +813,9 @@ test_have_prereq () { if test_run_lazy_prereq_ "$prerequisite" "$script" then test_set_prereq $prerequisite + elif test $? = 125 + then + BUG "Do not use $prerequisite" fi lazily_tested_prereq="$lazily_tested_prereq$prerequisite " esac
Allow test_lazy_prereq script to signal a programming error by exiting with status 125 (like how bisect scripts do). This is used to signal a deprecated-and-then-removed prerequisite that should never be used in tests anymore. Signed-off-by: Junio C Hamano <gitster@pobox.com> --- t/README | 6 ++++-- t/test-lib-functions.sh | 5 +++++ 2 files changed, 9 insertions(+), 2 deletions(-)