Re: [PATCH v2 1/2] t0303: immediately bail out w/o GIT_TEST_CREDENTIAL_HELPER

2 messages, 2 authors, 2016-06-15 · open the first message on its own page

Re: [PATCH v2 1/2] t0303: immediately bail out w/o GIT_TEST_CREDENTIAL_HELPER

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:53:18

Zbigniew Jędrzejewski-Szmek [off-list ref] writes:
quoted hunk
t0300-credential-helpers.sh requires GIT_TEST_CREDENTIAL_HELPER to be
configured to do something sensible. If it is not set, prove will say:
  ./t0303-credential-external.sh .. skipped: (no reason given)
which isn't very nice.

Use skip_all="..." && test_done to bail out immediately and provide a
nicer message. In case GIT_TEST_CREDENTIAL_HELPER is set, but the
timeout tests are skipped, mention GIT_TEST_CREDENTIAL_HELPER_TIMEOUT.

Signed-off-by: Zbigniew Jędrzejewski-Szmek <redacted>
---
 t/t0303-credential-external.sh |   40 ++++++++++++++++------------------------
 1 files changed, 16 insertions(+), 24 deletions(-)
diff --git a/t/t0303-credential-external.sh b/t/t0303-credential-external.sh
index 267f4c8..4479bf8 100755
--- a/t/t0303-credential-external.sh
+++ b/t/t0303-credential-external.sh
@@ -4,36 +4,28 @@ test_description='external credential helper tests'
 . ./test-lib.sh
 . "$TEST_DIRECTORY"/lib-credential.sh
 
-pre_test() {
-	test -z "$GIT_TEST_CREDENTIAL_HELPER_SETUP" ||
-	eval "$GIT_TEST_CREDENTIAL_HELPER_SETUP"
-
-	# clean before the test in case there is cruft left
-	# over from a previous run that would impact results
-	helper_test_clean "$GIT_TEST_CREDENTIAL_HELPER"
-}
-
-post_test() {
-	# clean afterwards so that we are good citizens
-	# and don't leave cruft in the helper's storage, which
-	# might be long-term system storage
-	helper_test_clean "$GIT_TEST_CREDENTIAL_HELPER"
-}
-
 if test -z "$GIT_TEST_CREDENTIAL_HELPER"; then
-	say "# skipping external helper tests (set GIT_TEST_CREDENTIAL_HELPER)"
-else
-	pre_test
-	helper_test "$GIT_TEST_CREDENTIAL_HELPER"
-	post_test
+	skip_all="used to test external credential helpers"
+	test_done
 fi
 
+$GIT_TEST_CREDENTIAL_HELPER_SETUP
This used to be 'test -z "$it" || eval "$it"'; doesn't it make a
difference?

What is the value expected to be in this variable?  Nobody seems to set it
in our codebase, so I cannot say "with the current code, this rewrite is
safe" or anything like that.

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.

Re: [PATCH v2 1/2] t0303: immediately bail out w/o GIT_TEST_CREDENTIAL_HELPER

From: Jeff King <hidden>
Date: 2016-06-15 22:53:18

On Wed, Mar 14, 2012 at 03:17:28PM -0700, Junio C Hamano wrote:
quoted
+$GIT_TEST_CREDENTIAL_HELPER_SETUP
This used to be 'test -z "$it" || eval "$it"'; doesn't it make a
difference?

What is the value expected to be in this variable?  Nobody seems to set it
in our codebase, so I cannot say "with the current code, this rewrite is
safe" or anything like that.
I think eval is a better route, as it gives the caller more flexibility
about what shell code to run. The only use is here:

  http://article.gmane.org/gmane.comp.version-control.git/186757

which does work either way.
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.
If you look at t0301 (which runs the same tests on credential-cache), we
kill the resulting daemon explicitly. t0303 could learn hooks to do
this, but I didn't bother, as I didn't need them for testing the
osxkeychain helper (which is the only thing I've used t0303 for, as
t0301 and t0302 cover the in-tree helpers). I figured that somebody
could add the hooks easily if and when they needed.

-Peff
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help