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

[PATCH 3/4] Add tests for .git file

From
LHLars Hjemli <hjemli@gmail.com>
Date
Feb 4, 2008, 20:59 UTC
Message-ID
<1202158761-31211-4-git-send-email-hjemli@gmail.com>
In-Reply-To
<1202158761-31211-3-git-send-email-hjemli@gmail.com>

Verify that the basic plumbing works when .git is a file pointing at the real git directory.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
---
 t/t0002-gitfile.sh |   71 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 71 insertions(+), 0 deletions(-)
 create mode 100755 t/t0002-gitfile.sh
diff --git a/t/t0002-gitfile.sh b/t/t0002-gitfile.sh
new file mode 100755
index 0000000..f8f39e6
--- /dev/null
+++ b/t/t0002-gitfile.sh
@@ -0,0 +1,71 @@
+#!/bin/sh
+
+test_description='.git file
+
+Verify that plumbing commands work when .git is a file
+'
+. ./test-lib.sh
+
+chkfile() {
+	D=$(echo $1 | cut -b 1-2) &&
+	F=$(echo $1 | cut -b 3-40) &&
+	if test ! -f $REAL/objects/$D/$F
+	then
+		echo "Object not found: $REAL/objects/$D/$F"
+		false
+	fi
+}
+
+test_expect_success 'setup' '
+	REAL=$(pwd)/.real &&
+	mv .git $REAL &&
+	echo "gitdir: $REAL" >.git
+'
+
+test_expect_success 'check rev-parse --git-dir' '
+	test "$REAL" = "$(git rev-parse --git-dir)"
+'
+
+test_expect_success 'check hash-object' '
+	echo "foo" >bar &&
+	SHA=$(cat bar | git hash-object -w --stdin) &&
+	chkfile $SHA
+'
+
+test_expect_success 'check cat-file' '
+	git cat-file blob $SHA >actual &&
+	diff -u bar actual
+'
+
+test_expect_success 'check update-index' '
+	if test -f $REAL/index
+	then
+		echo "Hmm, $REAL/index exists?"
+		false
+	fi &&
+	rm -rf $REAL/objects/* &&
+	git update-index --add bar &&
+	if ! test -f $REAL/index
+	then
+		echo "$REAL/index not found"
+		false
+	fi &&
+	chkfile $SHA
+'
+
+test_expect_success 'check write-tree' '
+	SHA=$(git write-tree) &&
+	chkfile $SHA
+'
+
+test_expect_success 'check commit-tree' '
+	SHA=$(echo "commit bar" | git commit-tree $SHA) &&
+	chkfile $SHA
+'
+
+test_expect_success 'check rev-list' '
+	echo $SHA >$REAL/HEAD &&
+	test "$SHA" = "$(git rev-list HEAD)"
+'
+
+test_done
-- 
1.5.4.5.g25d066
Previous: Lars HjemliNext: Lars Hjemli
Message 4 of 13 in “Introduce the .git-file”
  1. 0/4 Introduce the .git-fileLars Hjemli, Feb 4, 2008
  2. 1/4 Add platform-independent .git "symlink"Lars Hjemli, Feb 4, 2008
  3. 2/4 Document the .git-fileLars Hjemli, Feb 4, 2008
  4. 3/4 Add tests for .git fileLars Hjemli, Feb 4, 2008
  5. 4/4 git-submodule: prepare for the .git-fileLars Hjemli, Feb 4, 2008
  6. Mike HommeyFeb 4, 2008
  7. Lars HjemliFeb 4, 2008
  8. Junio C HamanoFeb 6, 2008
  9. 3/4 Add tests for .git fileLars Hjemli, Feb 6, 2008
  10. Junio C HamanoFeb 6, 2008
  11. Lars HjemliFeb 6, 2008
  12. Junio C HamanoFeb 6, 2008
  13. Lars HjemliFeb 6, 2008

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.