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>
maint
parent
52b9d2cf7f
commit
c4d2539af7
13
t/README
13
t/README
|
@ -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
|
Prerequisites
|
||||||
-------------
|
-------------
|
||||||
|
|
||||||
|
|
|
@ -329,6 +329,19 @@ test_tick () {
|
||||||
export GIT_COMMITTER_DATE GIT_AUTHOR_DATE
|
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>]]"
|
# Call test_commit with the arguments "<message> [<file> [<contents>]]"
|
||||||
#
|
#
|
||||||
# This will commit a file with the given contents and the given commit
|
# This will commit a file with the given contents and the given commit
|
||||||
|
|
Loading…
Reference in New Issue