You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
60 lines
1.9 KiB
60 lines
1.9 KiB
#!/bin/sh |
|
|
|
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 |
|
|
|
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" |
|
|
|
helper_test "$GIT_TEST_CREDENTIAL_HELPER" |
|
|
|
if test -z "$GIT_TEST_CREDENTIAL_HELPER_TIMEOUT"; then |
|
say "# skipping timeout tests (GIT_TEST_CREDENTIAL_HELPER_TIMEOUT not set)" |
|
else |
|
helper_test_timeout "$GIT_TEST_CREDENTIAL_HELPER_TIMEOUT" |
|
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
|
|
|