mirror of
https://github.com/git/git.git
synced 2024-05-27 16:56:15 +02:00
aaa68ad022
This reverts commitfd898e3756
, reversing changes made toc2148408a2
. With the previous round, because libsecret overwrites items if and only if the attributes match exactly, you end up with many items in the secret store that differ only by expiry date. This is inelegant, and confusing to users. It was caught before merged to 'master' and being replaced.
61 lines
1.9 KiB
Bash
Executable File
61 lines
1.9 KiB
Bash
Executable File
#!/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
|