-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
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
- Loading branch information
Showing
1 changed file
with
45 additions
and
24 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,39 +1,60 @@ | ||
#!/bin/sh | ||
|
||
test_description='external credential helper tests' | ||
. ./test-lib.sh | ||
. "$TEST_DIRECTORY"/lib-credential.sh | ||
test_description='external credential helper tests | ||
pre_test() { | ||
test -z "$GIT_TEST_CREDENTIAL_HELPER_SETUP" || | ||
eval "$GIT_TEST_CREDENTIAL_HELPER_SETUP" | ||
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 | ||
# 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" | ||
} | ||
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. | ||
' | ||
|
||
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" | ||
} | ||
. ./test-lib.sh | ||
. "$TEST_DIRECTORY"/lib-credential.sh | ||
|
||
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 | ||
|
||
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" | ||
|
||
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 |