t: ensure client cert integration test runs completely

The shell function that performed the clone for the client certificate
test contained several branches, each of which ended with an exit.  This
caused the test to always exit early (and in the normal case,
successfully) without running the rest of the test.

Change this function to use "return" instead of "exit" so that the test
runs to completion, and fix the single failing assertion.  Ignore this
test on Travis CI, just like we do for the other SSL test, for exactly
the same reason.

Note that this appears to be the only test helper that has this problem:
the other uses of "exit" in the test helpers are all either to skip
tests or to exit unsuccessfully, the latter of which is equivalent to
returning unsuccessfully under set -e (which we use).
This commit is contained in:
brian m. carlson 2018-09-13 22:41:11 +00:00
parent c53f28aca5
commit 4500e2008b
No known key found for this signature in database
GPG Key ID: 2D0C9BC12F82B3A1
2 changed files with 8 additions and 4 deletions

@ -150,6 +150,11 @@ end_test
begin_test "clone ClientCert"
(
set -e
if $TRAVIS; then
echo "Skipping SSL tests, Travis has weird behaviour in validating custom certs, test locally only"
exit 0
fi
reponame="test-cloneClientCert"
setup_remote_repo "$reponame"
clone_repo_clientcert "$reponame" "$reponame"
@ -184,7 +189,6 @@ begin_test "clone ClientCert"
newclonedir="testcloneClietCert1"
git lfs clone "$CLIENTCERTGITSERVER/$reponame" "$newclonedir" 2>&1 | tee lfsclone.log
grep "Cloning into" lfsclone.log
grep "Git LFS:" lfsclone.log
# should be no filter errors
[ ! $(grep "filter" lfsclone.log) ]
[ ! $(grep "error" lfsclone.log) ]

@ -418,16 +418,16 @@ clone_repo_clientcert() {
echo "$out" > clone_client_cert.log
git config credential.helper lfstest
exit 0
return 0
fi
echo "$out" > clone_client_cert.log
if [ $(grep -c "NSInvalidArgumentException" clone_client_cert.log) -gt 0 ]; then
echo "client-cert-mac-openssl" > clone_client_cert.log
exit 0
return 0
fi
exit 1
return 1
}
# setup_remote_repo_with_file creates a remote repo, clones it locally, commits