git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH] ref namespaces: tests

From
Josh Triplett <josh@joshtriplett.org>
Date
Jul 14, 2011, 20:50 UTC
Message-ID
<20110714205055.GA26956@leaf>

Test pushing, pulling, and mirroring of repositories with ref namespaces.

Signed-off-by: Josh Triplett <josh@joshtriplett.org>
Signed-off-by: Jamey Sharp <jamey@minilop.net>
---

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
Next: Junio C Hamano
Message 1 of 8 in “ref namespaces: tests”
  1. ref namespaces: testsJosh Triplett, Jul 14, 2011
  2. Junio C HamanoJul 14, 2011
  3. Josh TriplettJul 15, 2011
  4. [PATCHv2] ref namespaces: testsJosh Triplett, Jul 15, 2011
  5. [PATCHv3] ref namespaces: testsJosh Triplett, Jul 21, 2011
  6. Junio C HamanoJul 21, 2011
  7. Jeff KingJul 22, 2011
  8. Junio C HamanoJul 15, 2011

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.