]>
Commit | Line | Data |
---|---|---|
861444f6 JK |
1 | #!/bin/sh |
2 | ||
6c556cb8 ZJS |
3 | test_description='external credential helper tests |
4 | ||
5 | This is a tool for authors of external helper tools to sanity-check | |
6 | their helpers. If you have written the "git-credential-foo" helper, | |
7 | you check it with: | |
8 | ||
9 | make GIT_TEST_CREDENTIAL_HELPER=foo t0303-credential-external.sh | |
10 | ||
11 | This assumes that your helper is capable of both storing and | |
12 | retrieving credentials (some helpers may be read-only, and they will | |
13 | fail these tests). | |
14 | ||
15 | Please note that the individual tests do not verify all of the | |
16 | preconditions themselves, but rather build on each other. A failing | |
17 | test means that tests later in the sequence can return false "OK" | |
18 | results. | |
19 | ||
20 | If your helper supports time-based expiration with a configurable | |
21 | timeout, you can test that feature with: | |
22 | ||
23 | make GIT_TEST_CREDENTIAL_HELPER=foo \ | |
24 | GIT_TEST_CREDENTIAL_HELPER_TIMEOUT="foo --timeout=1" \ | |
25 | t0303-credential-external.sh | |
26 | ||
27 | If your helper requires additional setup before the tests are started, | |
28 | you can set GIT_TEST_CREDENTIAL_HELPER_SETUP to a sequence of shell | |
29 | commands. | |
30 | ' | |
31 | ||
861444f6 JK |
32 | . ./test-lib.sh |
33 | . "$TEST_DIRECTORY"/lib-credential.sh | |
34 | ||
16e44810 ZJS |
35 | if test -z "$GIT_TEST_CREDENTIAL_HELPER"; then |
36 | skip_all="used to test external credential helpers" | |
37 | test_done | |
38 | fi | |
861444f6 | 39 | |
16e44810 ZJS |
40 | test -z "$GIT_TEST_CREDENTIAL_HELPER_SETUP" || |
41 | eval "$GIT_TEST_CREDENTIAL_HELPER_SETUP" | |
861444f6 | 42 | |
16e44810 ZJS |
43 | # clean before the test in case there is cruft left |
44 | # over from a previous run that would impact results | |
45 | helper_test_clean "$GIT_TEST_CREDENTIAL_HELPER" | |
861444f6 | 46 | |
16e44810 | 47 | helper_test "$GIT_TEST_CREDENTIAL_HELPER" |
861444f6 JK |
48 | |
49 | if test -z "$GIT_TEST_CREDENTIAL_HELPER_TIMEOUT"; then | |
16e44810 | 50 | say "# skipping timeout tests (GIT_TEST_CREDENTIAL_HELPER_TIMEOUT not set)" |
861444f6 | 51 | else |
861444f6 | 52 | helper_test_timeout "$GIT_TEST_CREDENTIAL_HELPER_TIMEOUT" |
861444f6 JK |
53 | fi |
54 | ||
16e44810 ZJS |
55 | # clean afterwards so that we are good citizens |
56 | # and don't leave cruft in the helper's storage, which | |
57 | # might be long-term system storage | |
58 | helper_test_clean "$GIT_TEST_CREDENTIAL_HELPER" | |
59 | ||
861444f6 | 60 | test_done |