diff options
author | Jens Lehmann <Jens.Lehmann@web.de> | 2012-01-17 22:04:31 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2012-01-17 15:15:35 -0800 |
commit | c4d2539af751ed394ee68c02fe688e75c647c5fe (patch) | |
tree | cb9658bddd4e0ff8d5c47ae4bfef7dd94255bf1e | |
parent | Merge branch 'jk/maint-do-not-feed-stdin-to-tests' (diff) | |
download | tgif-c4d2539af751ed394ee68c02fe688e75c647c5fe.tar.xz |
test-lib: add the test_pause convenience function
Since 781f76b15 (test-lib: redirect stdin of tests) you can't simply put a
"bash &&" into a test for debugging purposes anymore. Instead you'll have
to use "bash <&6 >&3 2>&4".
As that invocation is not that easy to remember add the test_pause
convenience function. It invokes "$SHELL_PATH" to provide a sane shell
for the user.
This function also checks if the -v flag is given and will error out if
that is not the case instead of letting the test hang until ^D is pressed.
Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | t/README | 13 | ||||
-rw-r--r-- | t/test-lib.sh | 13 |
2 files changed, 26 insertions, 0 deletions
@@ -548,6 +548,19 @@ library for your script to use. ... ' + - test_pause + + This command is useful for writing and debugging tests and must be + removed before submitting. It halts the execution of the test and + spawns a shell in the trash directory. Exit the shell to continue + the test. Example: + + test_expect_success 'test' ' + git do-something >actual && + test_pause && + test_cmp expected actual + ' + Prerequisites ------------- diff --git a/t/test-lib.sh b/t/test-lib.sh index a65dfc7ea9..709a30067e 100644 --- a/t/test-lib.sh +++ b/t/test-lib.sh @@ -329,6 +329,19 @@ test_tick () { export GIT_COMMITTER_DATE GIT_AUTHOR_DATE } +# Stop execution and start a shell. This is useful for debugging tests and +# only makes sense together with "-v". +# +# Be sure to remove all invocations of this command before submitting. + +test_pause () { + if test "$verbose" = t; then + "$SHELL_PATH" <&6 >&3 2>&4 + else + error >&5 "test_pause requires --verbose" + fi +} + # Call test_commit with the arguments "<message> [<file> [<contents>]]" # # This will commit a file with the given contents and the given commit |