tests: create an interactive gdb session with the 'debug' helper

The 'debug' test helper is supposed to facilitate debugging by running
a command of the test suite under gdb.  Unfortunately, its usefulness
is severely limited, because that gdb session is not interactive,
since the test's, and thus gdb's standard input is redirected from
/dev/null (for a good reason, see 781f76b15 (test-lib: redirect stdin
of tests, 2011-12-15)).

Redirect gdb's standard file descriptors from/to the test
environment's stdin, stdout and stderr in the 'debug' helper, thus
creating an interactive gdb session (even in non-verbose mode), which
is much, much more useful.

Signed-off-by: SZEDER Gábor <szeder.dev@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
SZEDER Gábor 2017-03-18 17:13:59 +01:00 коммит произвёл Junio C Hamano
Родитель 7c9c2f8c39
Коммит 4ecae3c8c1
2 изменённых файлов: 2 добавлений и 1 удалений

Просмотреть файл

@ -154,7 +154,7 @@ test_pause () {
#
# Example: "debug git checkout master".
debug () {
GIT_TEST_GDB=1 "$@"
GIT_TEST_GDB=1 "$@" <&6 >&5 2>&7
}
# Call test_commit with the arguments

Просмотреть файл

@ -342,6 +342,7 @@ fi
exec 5>&1
exec 6<&0
exec 7>&2
if test "$verbose_log" = "t"
then
exec 3>>"$GIT_TEST_TEE_OUTPUT_FILE" 4>&3