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

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

From
Elijah Newren <newren@gmail.com>
Date
Aug 19, 2021, 20:03 UTC
Message-ID
<CABPp-BFKEoHTgdSnUO86zSPYR0mLHv-vUB+Z-SoTtYQbUY4H=Q@mail.gmail.com>
In-Reply-To
<CAPig+cT2FfaYBbsRMy7vxXkvsxn4BcFTn4bGJjgvJKznXg1OYg@mail.gmail.com>
On Thu, Aug 19, 2021 at 11:10 AM Eric Sunshine <sunshine@sunshineco.com> wrote:
Show 23 quoted lines
>
> On Thu, Aug 19, 2021 at 1:16 PM Philippe Blain via GitGitGadget
> <gitgitgadget@gmail.com> wrote:
> > 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.
>
> I also find the test_pause() user-experience suboptimal and appreciate
> the idea of improving it. However, this approach seems fatally flawed.
> In particular, setting HOME to the user's real home directory could
> lead to undesirable results. When I'm using test_pause() to debug a
> problem with a test, I'm not just inspecting the test state, but I
> quite often interact with the state using the same Git commands as the
> test itself would use. Hence, it is very common for me to pause the
> test just before the suspect commands and then run those commands
> manually (instead of allowing the test script to do so). In such a
> scenario, HOME must be pointing at the test's home directory, not at
> my real home directory.

I agree, but I worry that it's not just HOME. I'd think the point of test_pause is to let you interact with the repository state while getting the same results that the test framework would, and I think some tests could be affected by TERM and SHELL too (e.g. perhaps the recent issues with COLUMNS). Granted, I suspect far fewer tests would be affected by those, but I'm not sure I like the idea of inability to reproduce the same issues.

Maybe we just need a different construct or special flags to test_pause?
Show 8 quoted lines
> Perhaps there's some way to achieve your goal for at least certain
> shells by detecting the shell and taking advantage of special shell
> features which allow you to launch the shell and run some canned
> commands to set up the shell as desired before dropping into an
> interactive session[1] -- but it's just an idle thought.
>
> [1]: For Bash, for instance, a quick bit of Googling leads to:
> https://serverfault.com/a/586272
Previous: Eric SunshineNext: Eric Sunshine
Message 11 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.