From: Philippe Blain via GitGitGadget Date: Mon, 06 Sep 2021 04:20:03 GMT Subject: [PATCH v4 0/3] test-lib-functions.sh: keep user's HOME, TERM and SHELL for 'test_pause' and 'debug' Message-ID: In-Reply-To: Changes since v3: * 2/3: improved the wording for the warning and caution as suggested by Elijah,, and moved the warning so it relates to the use of test_pause itself, not just the new flags, as suggested by Junio. Adapted the commit messages accordingly. * 3/3: changed the approach: instead of changing HOME, just copy ~/.gdbinit and ~/.lldbinit to the test HOME, as suggested by Carlo. This seems safer as this way $USER_HOME/.gitconfig does not interfere with the behaviour of the command being debugged (as Junio remarked in [1], but for test_pause). If other config files are needed for other debuggers, they can be added when the need arises. * [23]/3: also adapted the synopsys of 'test_pause' and 'debug' in t/README for better discoverability of the new features. [1] https://lore.kernel.org/git/xmqqa6kvoptx.fsf@gitster.g/ v3: * 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: keep user's debugger config files and TERM in 'debug' t/README | 11 ++-- t/test-lib-functions.sh | 113 ++++++++++++++++++++++++++++++++++------ t/test-lib.sh | 6 ++- 3 files changed, 109 insertions(+), 21 deletions(-) base-commit: 225bc32a989d7a22fa6addafd4ce7dcd04675dbf Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-1022%2Fphil-blain%2Ftest-pause-and-debug-easier-v4 Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-1022/phil-blain/test-pause-and-debug-easier-v4 Pull-Request: https://github.com/gitgitgadget/git/pull/1022 Range-diff vs v3: 1: 2f566f330e0 = 1: 2f566f330e0 test-lib-functions: use 'TEST_SHELL_PATH' in 'test_pause' 2: 328b5d6e76f ! 2: a231d560e68 test-lib-functions: optionally keep HOME, TERM and SHELL in 'test_pause' @@ Commit message that developer's interactive shell is used. We use options instead of changing the behaviour unconditionally since - these three variables can break test reproducibility. Moreover, using the - original HOME means tests could overwrite files in a user's home - directory. Be explicit about these caveats in the new 'Usage' section in - test-lib-functions.sh. + these three variables can slightly change command behaviour. Moreover, + using the original HOME means commands could overwrite files in a user's + home directory. Be explicit about these caveats in the new 'Usage' + section in test-lib-functions.sh. + Finally, add '[options]' to the test_pause synopsys in t/README, and + mention that the full list of helper functions and their options can be + found in test-lib-functions.sh. + + Helped-by: Elijah Newren Signed-off-by: Philippe Blain + ## t/README ## +@@ t/README: Test harness library + -------------------- + + There are a handful helper functions defined in the test harness +-library for your script to use. ++library for your script to use. Some of them are listed below; ++see test-lib-functions.sh for the full list and their options. + + - test_expect_success []