mirror of
https://github.com/git/git
synced 2024-08-24 18:26:02 +00:00
t: add test harness for external credential helpers
We already have tests for the internal helpers, but it's nice to give authors of external tools an easy way to sanity-check their helpers. If you have written the "git-credential-foo" helper, you can do so with: GIT_TEST_CREDENTIAL_HELPER=foo \ make t0303-credential-external.sh This assumes that your helper is capable of both storing and retrieving credentials (some helpers may be read-only, and they will fail these tests). If your helper supports time-based expiration with a configurable timeout, you can test that feature like this: GIT_TEST_CREDENTIAL_HELPER_TIMEOUT="foo --timeout=1" \ make t0303-credential-external.sh Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
71e1b4b6bf
commit
861444f6d7
39
t/t0303-credential-external.sh
Executable file
39
t/t0303-credential-external.sh
Executable file
|
@ -0,0 +1,39 @@
|
|||
#!/bin/sh
|
||||
|
||||
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
|
||||
fi
|
||||
|
||||
if test -z "$GIT_TEST_CREDENTIAL_HELPER_TIMEOUT"; then
|
||||
say "# skipping external helper timeout tests"
|
||||
else
|
||||
pre_test
|
||||
helper_test_timeout "$GIT_TEST_CREDENTIAL_HELPER_TIMEOUT"
|
||||
post_test
|
||||
fi
|
||||
|
||||
test_done
|
Loading…
Reference in a new issue