t5541: fix url scrubbing test when GPG is not set
authorJeff King <peff@peff.net>
Wed, 20 Jul 2016 11:32:26 +0000 (05:32 -0600)
committerJunio C Hamano <gitster@pobox.com>
Wed, 20 Jul 2016 22:08:40 +0000 (15:08 -0700)
When the GPG prereq is not set, we do not run test 34. That
test changes the directory of the test script as a side
effect (something we usually frown on, but which matches the
style of the rest of this script). When test 35 (the
url-scrubbing test) runs, it expects to be in the directory
from test 34. If it's not, the test fails; we are in a
different sub-repo, our test-commit is built on a different
history, and the push becomes a non-fast-forward.

We can fix this by unconditionally moving to the directory
we expect (again, against our usual style but matching how
the rest of the script operates).

As an additional protection, let's also switch from "make a
new commit and push to master" to just "push to a new
branch". We don't care about the branch name; we just want
_some_ ref update to trigger the status output. Pushing to a
new branch is less likely to run into problems with
force-updates, changing the checked-out branch, etc.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t5541-http-push-smart.sh
index 8d08e0632719478766d705aa2625d50a2699ee23..9593fc17f36650f8e02fdae1dafd1419d84f71f3 100755 (executable)
@@ -369,8 +369,10 @@ test_expect_success GPG 'push with post-receive to inspect certificate' '
 '
 
 test_expect_success 'push status output scrubs password' '
-       test_commit scrub &&
-       git push --porcelain "$HTTPD_URL_USER_PASS/smart/test_repo.git" >status &&
+       cd "$ROOT_PATH/test_repo_clone" &&
+       git push --porcelain \
+               "$HTTPD_URL_USER_PASS/smart/test_repo.git" \
+               +HEAD:scrub >status &&
        # should have been scrubbed down to vanilla URL
        grep "^To $HTTPD_URL/smart/test_repo.git" status
 '