[PATCH v3 0/3] test-lib-functions.sh: keep user's HOME, TERM and SHELL for 'test_pause' and 'debug'
From: Philippe Blain via GitGitGadget <hidden>
Date: 2021-09-01 13:31:48
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