]> git.ipfire.org Git - thirdparty/git.git/commitdiff
t: extend test_lazy_prereq
authorJunio C Hamano <gitster@pobox.com>
Tue, 11 Mar 2025 21:25:01 +0000 (14:25 -0700)
committerJunio C Hamano <gitster@pobox.com>
Tue, 11 Mar 2025 22:05:23 +0000 (15:05 -0700)
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
t/test-lib-functions.sh

index 3ce9f5a3939625c9bfffff5e05437e1a57ed88e1..e9ffd9a81c3331d0614ca2073959b306cc0bac86 100644 (file)
--- 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>
 
index 79377bc0fc2110ede59f56547ee850cebc35fc3c..16eaaaf4c373bce8516cbfb90bacd8f4ced200ef 100644 (file)
@@ -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