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