git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v5 0/3] test-lib-functions.sh: keep user's HOME, TERM and SHELL for 'test_pause' and 'debug'

From
Elijah Newren <newren@gmail.com>
Date
Sep 7, 2021, 06:24 UTC
Message-ID
<CABPp-BG_8DrqtvHrPxkqVEJtj5RHGu_Nv9+i=aFLPUfiq_6kzw@mail.gmail.com>
In-Reply-To
<pull.1022.v5.git.1630903140.gitgitgadget@gmail.com>

On Sun, Sep 5, 2021 at 9:39 PM Philippe Blain via GitGitGadget <gitgitgadget@gmail.com> wrote:

Show 44 quoted lines
>
> Changes since v4:
>
>  * 3/3: use a for loop instead of while loop + heredoc, it's simpler and the
>    need for the later did not match the code.
>
> v4:
>
>  * 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.

This round looks good to me (just eyeballed, didn't download or test); you have an ack from me.

Show 71 quoted lines
> 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 | 107 ++++++++++++++++++++++++++++++++++------
>  t/test-lib.sh           |   6 ++-
>  3 files changed, 103 insertions(+), 21 deletions(-)
>
>
> base-commit: 225bc32a989d7a22fa6addafd4ce7dcd04675dbf
> Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-1022%2Fphil-blain%2Ftest-pause-and-debug-easier-v5
> Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-1022/phil-blain/test-pause-and-debug-easier-v5
> Pull-Request: https://github.com/gitgitgadget/git/pull/1022
>
> Range-diff vs v4:
>
>  1:  2f566f330e0 = 1:  2f566f330e0 test-lib-functions: use 'TEST_SHELL_PATH' in 'test_pause'
>  2:  a231d560e68 = 2:  a231d560e68 test-lib-functions: optionally keep HOME, TERM and SHELL in 'test_pause'
>  3:  a8b12788fa4 ! 3:  ebf92b6b2c3 test-lib-functions: keep user's debugger config files and TERM in 'debug'
>      @@ Commit message
>           HOME to USER_HOME as in 'test_pause' to avoid user configuration in
>           $USER_HOME/.gitconfig from interfering with the command being debugged.
>
>      -    Note that we use a while loop and a heredoc to protect against
>      -    $USER_HOME containing spaces.
>      -
>           Also, add a flag to launch the debugger with the original value of
>           TERM, and add the same warning as for 'test_pause'.
>
>      @@ t/test-lib-functions.sh: test_pause () {
>       +         shift
>       + done &&
>       +
>      -+ dotfiles="
>      -+ .gdbinit
>      -+ .lldbinit
>      -+ "
>      -+ while read -r dotfile
>      ++ dotfiles=".gdbinit .lldbinit"
>      ++
>      ++ for dotfile in $dotfiles
>       + do
>       +         dotfile="$USER_HOME/$dotfile" &&
>       +         test -f "$dotfile" && cp "$dotfile" "$HOME" || :
>      -+ done <<-EOF &&
>      -+ $dotfiles
>      -+ EOF
>      ++ done &&
>       +
>       + TERM="$DEBUG_TERM" GIT_DEBUGGER="${GIT_DEBUGGER}" "$@" <&6 >&5 2>&7 &&
>       +
>      -+ while read -r dotfile
>      ++ for dotfile in $dotfiles
>       + do
>       +         rm -f "$HOME/$dotfile"
>      -+ done <<-EOF
>      -+ $dotfiles
>      -+ EOF
>      ++ done
>        }
>
>        # Usage: test_commit [options] <message> [<file> [<contents> [<tag>]]]
>
> --
> gitgitgadget
Previous: Philippe Blain via GitGitGadget
Message 39 of 39 in “test-lib-functions.sh: keep user's HOME, TERM and SHELL for 'test_pause' and 'debug'”
  1. 0/2 test-lib-functions.sh: keep user's HOME, TERM and SHELL for 'test_pause' and 'debug'Philippe Blain via GitGitGadget, Aug 19, 2021
  2. 1/2 test-lib-functions: use user's SHELL, HOME and TERM for 'test_pause'Philippe Blain via GitGitGadget, Aug 19, 2021
  3. Carlo ArenasAug 20, 2021
  4. Philippe BlainAug 20, 2021
  5. 2/2 test-lib-functions: use user's TERM and HOME for 'debug'Philippe Blain via GitGitGadget, Aug 19, 2021
  6. Taylor BlauAug 19, 2021
  7. Carlo ArenasAug 20, 2021
  8. Eric SunshineAug 19, 2021
  9. Junio C HamanoAug 19, 2021
  10. Eric SunshineAug 19, 2021
  11. Elijah NewrenAug 19, 2021
  12. Eric SunshineAug 19, 2021
  13. Philippe BlainAug 20, 2021
  14. Eric SunshineAug 20, 2021
  15. Jeff KingAug 20, 2021
  16. 0/3 test-lib-functions.sh: keep user's HOME, TERM and SHELL for 'test_pause' and 'debug'Philippe Blain via GitGitGadget, Aug 28, 2021
  17. 1/3 test-lib-functions: use 'TEST_SHELL_PATH' in 'test_pause'Philippe Blain via GitGitGadget, Aug 28, 2021
  18. 2/3 test-lib-functions: optionally keep HOME, TERM and SHELL in 'test_pause'Philippe Blain via GitGitGadget, Aug 28, 2021
  19. Elijah NewrenAug 28, 2021
  20. Philippe BlainAug 28, 2021
  21. 3/3 test-lib-functions: optionally keep HOME and TERM in 'debug'Philippe Blain via GitGitGadget, Aug 28, 2021
  22. 0/3 test-lib-functions.sh: keep user's HOME, TERM and SHELL for 'test_pause' and 'debug'Philippe Blain via GitGitGadget, Sep 1, 2021
  23. 2/3 test-lib-functions: optionally keep HOME, TERM and SHELL in 'test_pause'Philippe Blain via GitGitGadget, Sep 1, 2021
  24. Junio C HamanoSep 1, 2021
  25. Elijah NewrenSep 1, 2021
  26. Junio C HamanoSep 1, 2021
  27. Philippe BlainSep 2, 2021
  28. 1/3 test-lib-functions: use 'TEST_SHELL_PATH' in 'test_pause'Philippe Blain via GitGitGadget, Sep 1, 2021
  29. Junio C HamanoSep 1, 2021
  30. 3/3 test-lib-functions: optionally keep HOME and TERM in 'debug'Philippe Blain via GitGitGadget, Sep 1, 2021
  31. 0/3 test-lib-functions.sh: keep user's HOME, TERM and SHELL for 'test_pause' and 'debug'Philippe Blain via GitGitGadget, Sep 6, 2021
  32. 1/3 test-lib-functions: use 'TEST_SHELL_PATH' in 'test_pause'Philippe Blain via GitGitGadget, Sep 6, 2021
  33. 2/3 test-lib-functions: optionally keep HOME, TERM and SHELL in 'test_pause'Philippe Blain via GitGitGadget, Sep 6, 2021
  34. 3/3 test-lib-functions: keep user's debugger config files and TERM in 'debug'Philippe Blain via GitGitGadget, Sep 6, 2021
  35. 0/3 test-lib-functions.sh: keep user's HOME, TERM and SHELL for 'test_pause' and 'debug'Philippe Blain via GitGitGadget, Sep 6, 2021
  36. 1/3 test-lib-functions: use 'TEST_SHELL_PATH' in 'test_pause'Philippe Blain via GitGitGadget, Sep 6, 2021
  37. 2/3 test-lib-functions: optionally keep HOME, TERM and SHELL in 'test_pause'Philippe Blain via GitGitGadget, Sep 6, 2021
  38. 3/3 test-lib-functions: keep user's debugger config files and TERM in 'debug'Philippe Blain via GitGitGadget, Sep 6, 2021
  39. Elijah NewrenSep 7, 2021

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.