Re: [PATCH v2 1/2] t0303: immediately bail out w/o GIT_TEST_CREDENTIAL_HELPER
- From
Jeff King <peff@peff.net>
- Date
- Mar 15, 2012, 13:24 UTC
- Message-ID
- <20120315132428.GB8467@sigill.intra.peff.net>
- In-Reply-To
- <7vk42ml5er.fsf@alter.siamese.dyndns.org>
On Wed, Mar 14, 2012 at 11:55:24PM -0700, Junio C Hamano wrote:
Show 18 quoted lines
> Jeff King <peff@peff.net> writes: > > > On Wed, Mar 14, 2012 at 03:17:28PM -0700, Junio C Hamano wrote: > >> This is probably not related to your patch, but > >> > >> GIT_TEST_CREDENTIAL_HELPER=cache sh t0303-*.sh > >> > >> passes OK for me while > >> > >> make GIT_TEST_CREDENTIAL_HELPER=cache T=t0303-*.sh prove > >> > >> seems to get stuck forever. > > > > It's because t0303 is the generic "test any helper" script, and does not > > know how to clean up the credential-cache daemon. So the daemon sticks > > around, holding onto a file descriptor that causes prove to hang. > > And the reason why "sh t0303-*.sh" version does not have this problem is...?
Most helpers don't spawn a daemon that hangs around (and if they do, the instructions for killing said daemon are outside the scope of the helper protocol -- though I would recommend having an "exit" command, as credential-cache has). You could add something like:
GIT_TEST_CREDENTIAL_HELPER='cache' \ GIT_TEST_CREDENTIAL_HELPER_EXIT='git credential-cache exit' \ ./t0303-*
But like I said, I didn't bother. If you are testing credential-cache, then use t0301, which handles this. If you are testing something external, use t0303. My external testing didn't require such an exit hook, so I didn't bother with it. If somebody writes a helper that requires such a hook, they can add it then. I didn't want to get into the business of guessing which hooks people might need (and it is not as if these tests are an end-user visible piece of code; they are purely a convenience for developers to test their implementations against the same battery of tests that credential-cache and credential-store use).
-Peff