Skip to content

Commit

Permalink
Merge branch 'zj/test-cred-helper-nicer-prove'
Browse files Browse the repository at this point in the history
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
Junio C Hamano committed Apr 16, 2012
2 parents 4e52008 + 6c556cb commit 3ff999e
Showing 1 changed file with 45 additions and 24 deletions.
69 changes: 45 additions & 24 deletions t/t0303-credential-external.sh
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

0 comments on commit 3ff999e

Please sign in to comment.