Changes since v2: * Added '-a' flag as suggested by Elijah, equivalent to '-t -s -h' for 'test_pause' and to '-t -h' for 'debug' v2: * added 1/3 as a preliminary step to use TEST_SHELL_PATH in test_pause instead of SHELL_PATH, as suggested by Carlo * implemented the change in behaviour through optional flags in both test_pause and debug. This seemed to be the simplest way to keep the current behaviour but also provide a way to improve the UX. v1: This series proposes two small quality-of-life improvements (in my opinion) to the 'test_pause' and 'debug' test functions: using the original values of HOME and TERM (before they are changed by the test framework) and using SHELL instead of SHELL_PATH. The later might be too big of a change, but I think it makes sense. We could add a new GIT_TEST_* to conditionnaly change the behaviour, but I kept it simple for v1. Cheers, Philippe. Philippe Blain (3): test-lib-functions: use 'TEST_SHELL_PATH' in 'test_pause' test-lib-functions: optionally keep HOME, TERM and SHELL in 'test_pause' test-lib-functions: optionally keep HOME and TERM in 'debug' t/test-lib-functions.sh | 104 ++++++++++++++++++++++++++++++++++------ t/test-lib.sh | 6 ++- 2 files changed, 93 insertions(+), 17 deletions(-) base-commit: 225bc32a989d7a22fa6addafd4ce7dcd04675dbf Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-1022%2Fphil-blain%2Ftest-pause-and-debug-easier-v3 Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-1022/phil-blain/test-pause-and-debug-easier-v3 Pull-Request: https://github.com/gitgitgadget/git/pull/1022 Range-diff vs v2: 1: 2f566f330e0 = 1: 2f566f330e0 test-lib-functions: use 'TEST_SHELL_PATH' in 'test_pause' 2: 00211457ece ! 2: 328b5d6e76f test-lib-functions: optionally keep HOME, TERM and SHELL in 'test_pause' @@ t/test-lib-functions.sh: test_tick () { +# This allows you to use your regular shell environment and Git aliases. +# WARNING: this can break test reproducibility. +# CAUTION: this can overwrite files in your HOME. ++# -a ++# Shortcut for -t -s -h test_pause () { - "$TEST_SHELL_PATH" <&6 >&5 2>&7 @@ t/test-lib-functions.sh: test_tick () { + -h) + PAUSE_HOME="$USER_HOME" + ;; ++ -a) ++ PAUSE_TERM="$USER_TERM" ++ PAUSE_SHELL="$SHELL" ++ PAUSE_HOME="$USER_HOME" ++ ;; + *) + break + ;; 3: 1fac9baec1d ! 3: 4e43bd086b5 test-lib-functions: optionally keep HOME and TERM in 'debug' @@ t/test-lib-functions.sh: test_pause () { +# This allows your debugger to find its config file in your home. +# WARNING: this can break test reproducibility. +# CAUTION: this can overwrite files in your HOME. ++# -a ++# Shortcut for -t -h +# # Examples: # debug git checkout master @@ t/test-lib-functions.sh: test_pause () { + -h) + DEBUG_HOME="$USER_HOME" + ;; ++ -a) ++ DEBUG_TERM="$USER_TERM" ++ DEBUG_HOME="$USER_HOME" ++ ;; + -d) + GIT_DEBUGGER="$2" && + shift -- gitgitgadget