From: Junio C Hamano <gitster@pobox.com>
To: git@vger.kernel.org
Subject: [PATCH v2 1/6] t: document test_lazy_prereq
Date: Tue, 11 Mar 2025 14:25:00 -0700 [thread overview]
Message-ID: <20250311212505.2920181-2-gitster@pobox.com> (raw)
In-Reply-To: <20250311212505.2920181-1-gitster@pobox.com>
The t/README file talked about test_set_prereq but lacked
explanation on test_lazy_prereq, which is a more modern way to
define prerequisites.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
t/README | 23 ++++++++++++++++++++++-
1 file changed, 22 insertions(+), 1 deletion(-)
diff --git a/t/README b/t/README
index 53e5b4a710..3ce9f5a393 100644
--- a/t/README
+++ b/t/README
@@ -818,7 +818,7 @@ Skipping tests
--------------
If you need to skip tests you should do so by using the three-arg form
-of the test_* functions (see the "Test harness library" section
+of the test_expect_* functions (see the "Test harness library" section
below), e.g.:
test_expect_success PERL 'I need Perl' '
@@ -965,6 +965,27 @@ see test-lib-functions.sh for the full list and their options.
test_done
fi
+ - test_lazy_prereq <prereq> <script>
+
+ Declare the way to determine if a test prerequisite <prereq> is
+ satisified or not, but delay the actual determination until the
+ prerequisite is actually used by "test_have_prereq" or the
+ three-arg form of the test_expect_* functions. For example, this
+ is how the SYMLINKS prerequisite is declared to see if the platform
+ supports symbolic links:
+
+ test_lazy_prereq SYMLINKS '
+ ln -s x y && test -h y
+ '
+
+ The script is lazily invoked when SYMLINKS prerequisite is first
+ queried by either "test_have_prereq SYMLINKS" or "test_expect_*
+ 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.
+
- test_expect_code <exit-code> <command>
Run a command and ensure that it exits with the given exit code.
--
2.49.0-rc2-181-g28e223d67e
next prev parent reply other threads:[~2025-03-11 21:25 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-10 23:16 [PATCH v1 0/4] drop "name-rev --stdin" support Junio C Hamano
2025-03-10 23:16 ` [PATCH v1 1/4] t: introduce WITH_BREAKING_CHANGES prerequisite Junio C Hamano
2025-03-10 23:53 ` Eric Sunshine
2025-03-11 12:57 ` Patrick Steinhardt
2025-03-11 17:07 ` Junio C Hamano
2025-03-10 23:16 ` [PATCH v1 2/4] t6120: avoid hiding "git" exit status Junio C Hamano
2025-03-10 23:16 ` [PATCH v1 3/4] t6120: further modernize Junio C Hamano
2025-03-10 23:16 ` [PATCH v1 4/4] name-rev: remove "--stdin" support Junio C Hamano
2025-03-11 12:57 ` Patrick Steinhardt
2025-03-11 17:07 ` Junio C Hamano
2025-03-11 21:24 ` [PATCH v2 0/6] drop "name-rev --stdin" support Junio C Hamano
2025-03-11 21:25 ` Junio C Hamano [this message]
2025-03-11 21:25 ` [PATCH v2 2/6] t: extend test_lazy_prereq Junio C Hamano
2025-03-12 7:01 ` Patrick Steinhardt
2025-03-13 11:56 ` Junio C Hamano
2025-03-11 21:25 ` [PATCH v2 3/6] t: introduce WITH_BREAKING_CHANGES prerequisite Junio C Hamano
2025-03-12 7:01 ` Patrick Steinhardt
2025-03-11 21:25 ` [PATCH v2 4/6] t6120: avoid hiding "git" exit status Junio C Hamano
2025-03-11 21:25 ` [PATCH v2 5/6] t6120: further modernize Junio C Hamano
2025-03-11 21:25 ` [PATCH v2 6/6] name-rev: remove "--stdin" support Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250311212505.2920181-2-gitster@pobox.com \
--to=gitster@pobox.com \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.