From: Jeff King Date: Thu, 15 Mar 2012 13:24:28 GMT Subject: Re: [PATCH v2 1/2] t0303: immediately bail out w/o GIT_TEST_CREDENTIAL_HELPER 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: > Jeff King 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