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

Re: debugging git tests, was: Re: [PATCH v4 2/8] t5520: test no merge candidates cases

From
Jeff King <peff@peff.net>
Date
Jun 5, 2015, 10:44 UTC
Message-ID
<20150605104441.GA19840@peff.net>
In-Reply-To
<1254ff617c50077dc0c08321f168c4ce@www.dscho.org>
On Tue, May 19, 2015 at 03:29:23PM +0200, Johannes Schindelin wrote:
Show 17 quoted lines
> On 2015-05-18 20:55, Jeff King wrote:
> 
> > As a side note, I've also considered better support for running the
> > debugger on git commands inside a test (right now, I usually stick a
> > "gdb --args" in the pipeline, but you have to remember to run with "-v",
> > and to redirect stdin appropriately). Do other people have this
> > annoyance, too?
> 
> Yes, I have that annoyance, and I usually want to debug one very specific Git call in that script. Therefore, I made this patch:
> 
> https://github.com/git-for-windows/git/commit/0f50fd723beb5d27d2d799ef3a0cfc0b0bbd80a8
> 
> It really served me well during the past four months of Git for Windows 2.x work. Of course I also had to avoid the redirection:
> 
> https://github.com/git-for-windows/git/commit/d27cb6e0572475582677724545a71755d171ea76
> 
> So what I do these days is to run the failing test with `TEST_NO_REDIRECT=1` and with the Git call I want to debug prefixed with `TEST_GDB_GIT=1`.

Thanks for sharing this (I stuck it on my "to read" list and didn't get to it until today).

This is definitely the direction I'd like to go in. I think it would be cool to add in a test-harness option enable TEST_GIT_GDB for a specific test. So something like:

  ./t1234-foo.sh --gdb=8

to just enable it for a particular test (of course some test snippets run multiple git invocations, but in practice I think it is few enough that you could just ask gdb to run to completion until you hit the invocation you want).

I don't have any code to share yet. I'm still at the point of collecting ideas like this, which I'll rage-implement next time I have to do a lot of debugging. :)

-Peff
Previous: Johannes SchindelinNext: Paul Tan
Message 10 of 24 in “Improve git-pull test coverage”
  1. 0/8 Improve git-pull test coveragePaul Tan, May 18, 2015
  2. 1/8 t5520: prevent field splitting in content comparisonsPaul Tan, May 18, 2015
  3. Junio C HamanoMay 18, 2015
  4. 2/8 t5520: test no merge candidates casesPaul Tan, May 18, 2015
  5. Johannes SchindelinMay 18, 2015
  6. Junio C HamanoMay 18, 2015
  7. debugging git tests, was: Re: [PATCH v4 2/8] t5520: test no merge candidates casesJeff King, May 18, 2015
  8. Junio C HamanoMay 18, 2015
  9. Johannes SchindelinMay 19, 2015
  10. Jeff KingJun 5, 2015
  11. 3/8 t5520: test for failure if index has unresolved entriesPaul Tan, May 18, 2015
  12. Johannes SchindelinMay 18, 2015
  13. Paul TanMay 21, 2015
  14. 4/8 t5520: test work tree fast-forward when fetch updates headPaul Tan, May 18, 2015
  15. Johannes SchindelinMay 18, 2015
  16. 5/8 t5520: test --rebase with multiple branchesPaul Tan, May 18, 2015
  17. 6/8 t5520: test --rebase failure on unborn branch with indexPaul Tan, May 18, 2015
  18. Stefan BellerMay 18, 2015
  19. Paul TanMay 21, 2015
  20. 7/8 t5521: test --dry-run does not make any changesPaul Tan, May 18, 2015
  21. 8/8 t5520: check reflog action in fast-forward mergePaul Tan, May 18, 2015
  22. Johannes SchindelinMay 18, 2015
  23. Paul TanMay 21, 2015
  24. Junio C HamanoMay 21, 2015

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.