Merge branch 'zj/test-cred-helper-nicer-prove'
Minor improvement to t0303. By Zbigniew Jędrzejewski-Szmek * zj/test-cred-helper-nicer-prove: t0303: resurrect commit message as test documentation t0303: immediately bail out w/o GIT_TEST_CREDENTIAL_HELPER
This commit is contained in:
commit
3ff999e16b
@ -1,39 +1,60 @@
|
||||
#!/bin/sh
|
||||
|
||||
test_description='external credential helper tests'
|
||||
test_description='external credential helper tests
|
||||
|
||||
This is a tool for authors of external helper tools to sanity-check
|
||||
their helpers. If you have written the "git-credential-foo" helper,
|
||||
you check it with:
|
||||
|
||||
make GIT_TEST_CREDENTIAL_HELPER=foo 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).
|
||||
|
||||
Please note that the individual tests do not verify all of the
|
||||
preconditions themselves, but rather build on each other. A failing
|
||||
test means that tests later in the sequence can return false "OK"
|
||||
results.
|
||||
|
||||
If your helper supports time-based expiration with a configurable
|
||||
timeout, you can test that feature with:
|
||||
|
||||
make GIT_TEST_CREDENTIAL_HELPER=foo \
|
||||
GIT_TEST_CREDENTIAL_HELPER_TIMEOUT="foo --timeout=1" \
|
||||
t0303-credential-external.sh
|
||||
|
||||
If your helper requires additional setup before the tests are started,
|
||||
you can set GIT_TEST_CREDENTIAL_HELPER_SETUP to a sequence of shell
|
||||
commands.
|
||||
'
|
||||
|
||||
. ./test-lib.sh
|
||||
. "$TEST_DIRECTORY"/lib-credential.sh
|
||||
|
||||
pre_test() {
|
||||
test -z "$GIT_TEST_CREDENTIAL_HELPER_SETUP" ||
|
||||
if test -z "$GIT_TEST_CREDENTIAL_HELPER"; then
|
||||
skip_all="used to test external credential helpers"
|
||||
test_done
|
||||
fi
|
||||
|
||||
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"
|
||||
}
|
||||
# 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
|
||||
helper_test "$GIT_TEST_CREDENTIAL_HELPER"
|
||||
|
||||
if test -z "$GIT_TEST_CREDENTIAL_HELPER_TIMEOUT"; then
|
||||
say "# skipping external helper timeout tests"
|
||||
say "# skipping timeout tests (GIT_TEST_CREDENTIAL_HELPER_TIMEOUT not set)"
|
||||
else
|
||||
pre_test
|
||||
helper_test_timeout "$GIT_TEST_CREDENTIAL_HELPER_TIMEOUT"
|
||||
post_test
|
||||
fi
|
||||
|
||||
# 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"
|
||||
|
||||
test_done
|
||||
|
Loading…
Reference in New Issue
Block a user