git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v2 2/6] t: extend test_lazy_prereq

From
Junio C Hamano <gitster@pobox.com>
Date
Mar 11, 2025, 21:25 UTC
Message-ID
<20250311212505.2920181-3-gitster@pobox.com>
In-Reply-To
<20250311212505.2920181-1-gitster@pobox.com>

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(-)
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
-- 
2.49.0-rc2-181-g28e223d67e
Previous: Junio C HamanoNext: Patrick Steinhardt
Message 13 of 20 in “drop "name-rev --stdin" support”
  1. 0/4 drop "name-rev --stdin" supportJunio C Hamano, Mar 10, 2025
  2. 1/4 t: introduce WITH_BREAKING_CHANGES prerequisiteJunio C Hamano, Mar 10, 2025
  3. Eric SunshineMar 10, 2025
  4. Patrick SteinhardtMar 11, 2025
  5. Junio C HamanoMar 11, 2025
  6. 2/4 t6120: avoid hiding "git" exit statusJunio C Hamano, Mar 10, 2025
  7. 3/4 t6120: further modernizeJunio C Hamano, Mar 10, 2025
  8. 4/4 name-rev: remove "--stdin" supportJunio C Hamano, Mar 10, 2025
  9. Patrick SteinhardtMar 11, 2025
  10. Junio C HamanoMar 11, 2025
  11. 0/6 drop "name-rev --stdin" supportJunio C Hamano, Mar 11, 2025
  12. 1/6 t: document test_lazy_prereqJunio C Hamano, Mar 11, 2025
  13. 2/6 t: extend test_lazy_prereqJunio C Hamano, Mar 11, 2025
  14. Patrick SteinhardtMar 12, 2025
  15. Junio C HamanoMar 13, 2025
  16. 3/6 t: introduce WITH_BREAKING_CHANGES prerequisiteJunio C Hamano, Mar 11, 2025
  17. Patrick SteinhardtMar 12, 2025
  18. 4/6 t6120: avoid hiding "git" exit statusJunio C Hamano, Mar 11, 2025
  19. 5/6 t6120: further modernizeJunio C Hamano, Mar 11, 2025
  20. 6/6 name-rev: remove "--stdin" supportJunio C Hamano, Mar 11, 2025

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.