Test pushing, pulling, and mirroring of repositories with ref namespaces. Signed-off-by: Josh Triplett <josh@xxxxxxxxxxxxxxxx> Signed-off-by: Jamey Sharp <jamey@xxxxxxxxxxx> --- The most recent "What's cooking" suggested that the ref namespaces patches needed tests. This test works with PATCHv10, currently in pu. Please append this patch to the js/ref-namespaces branch. t/t5502-fetch-push-namespaces.sh | 77 ++++++++++++++++++++++++++++++++++++++ 1 files changed, 77 insertions(+), 0 deletions(-) create mode 100755 t/t5502-fetch-push-namespaces.sh diff --git a/t/t5502-fetch-push-namespaces.sh b/t/t5502-fetch-push-namespaces.sh new file mode 100755 index 0000000..85720b6 --- /dev/null +++ b/t/t5502-fetch-push-namespaces.sh @@ -0,0 +1,77 @@ +#!/bin/sh + +test_description='fetch/push involving ref namespaces' +. ./test-lib.sh + +test_expect_success setup ' + test_tick && + git init original && + ( + cd original && + i=0 && + while [ "$i" -lt 2 ] + do + echo "$i" > count && + git add count && + test_commit "$i" && + i=$(($i + 1)) + done && + git remote add pushee-namespaced "ext::git --namespace=namespace %s ../pushee" && + git remote add pushee-unnamespaced ../pushee + ) && + git init pushee && + git init puller +' + +test_expect_success 'pushing into a repository using a ref namespace' ' + ( + cd original && + git push pushee-namespaced master && + git ls-remote pushee-namespaced > actual && + printf "dc65a2e0f299dcc7efddbbe01641a28ee84329ba\trefs/heads/master\n" > expected && + test_cmp expected actual && + git push pushee-namespaced --tags && + git ls-remote pushee-namespaced > actual && + printf "fbdf4310c71b916568f04753f603fb24a0544227\trefs/tags/0\n" >> expected && + printf "dc65a2e0f299dcc7efddbbe01641a28ee84329ba\trefs/tags/1\n" >> expected && + test_cmp expected actual && + # Verify that the GIT_NAMESPACE environment variable works as well + GIT_NAMESPACE=namespace git ls-remote "ext::git %s ../pushee" > actual && + test_cmp expected actual && + # Verify that --namespace overrides GIT_NAMESPACE + GIT_NAMESPACE=garbage git ls-remote pushee-namespaced > actual && + test_cmp expected actual && + # Try a namespace with no content + git ls-remote "ext::git --namespace=garbage %s ../pushee" > actual && + test_cmp /dev/null actual && + git ls-remote pushee-unnamespaced > actual && + sed -e "s|refs/|refs/namespaces/namespace/refs/|" expected > expected.unnamespaced && + test_cmp expected.unnamespaced actual + ) +' + +test_expect_success 'pulling from a repository using a ref namespace' ' + ( + cd puller && + git remote add -f pushee-namespaced "ext::git --namespace=namespace %s ../pushee" && + git for-each-ref refs/ > actual && + printf "dc65a2e0f299dcc7efddbbe01641a28ee84329ba commit\trefs/remotes/pushee-namespaced/master\n" > expected && + printf "fbdf4310c71b916568f04753f603fb24a0544227 commit\trefs/tags/0\n" >> expected && + printf "dc65a2e0f299dcc7efddbbe01641a28ee84329ba commit\trefs/tags/1\n" >> expected && + test_cmp expected actual + ) +' + +test_expect_success 'mirroring a repository using a ref namespace' ' + git clone --mirror pushee mirror && + ( + cd mirror && + git for-each-ref refs/ > actual && + printf "dc65a2e0f299dcc7efddbbe01641a28ee84329ba commit\trefs/namespaces/namespace/refs/heads/master\n" > expected && + printf "fbdf4310c71b916568f04753f603fb24a0544227 commit\trefs/namespaces/namespace/refs/tags/0\n" >> expected && + printf "dc65a2e0f299dcc7efddbbe01641a28ee84329ba commit\trefs/namespaces/namespace/refs/tags/1\n" >> expected && + test_cmp expected actual + ) +' + +test_done -- 1.7.5.4 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html