| #!/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 |