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

[PATCH] new test from the submodule chapter of the user manual

From
Miklos Vajna <vmiklos@frugalware.org>
Date
Sep 22, 2007, 20:05 UTC
Message-ID
<20070922200535.GE24023@genesis.frugalware.org>
In-Reply-To
<7v1wcrki96.fsf@gitster.siamese.dyndns.org>
Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
---
On Fri, Sep 21, 2007 at 11:04:05AM -0700, Junio C Hamano <gitster@pobox.com> wrote:
> That's horrible.  Please do not depend on object SHA1's to stay
> the same.  If somebody makes a fix to the test to add a new file
> in a sample subproject it would break all the rest.  Also please
> do not depend on the progress output.

okay, here is the third try. now checking for the result using diff-tree and ls-files. hopefully i did what you expected :)

 t/t3060-subprojects-tutorial.sh |   95 +++++++++++++++++++++++++++++++++++++++
 1 files changed, 95 insertions(+), 0 deletions(-)
 create mode 100755 t/t3060-subprojects-tutorial.sh
diff --git a/t/t3060-subprojects-tutorial.sh b/t/t3060-subprojects-tutorial.sh
new file mode 100755
index 0000000..d46dded
--- /dev/null
+++ b/t/t3060-subprojects-tutorial.sh
@@ -0,0 +1,95 @@
+#!/bin/sh
+#
+# Copyright (c) 2007 Miklos Vajna
+#
+
+test_description='A simple subprojects tutorial in the form of a test case'
+
+. ./test-lib.sh
+
+test_expect_success "create the submodules" '
+	for i in a b c d
+	do
+		mkdir $i &&
+		cd $i &&
+		git init &&
+		echo "module $i" > $i.txt &&
+		git add $i.txt &&
+		git commit -m "Initial commit, submodule $i" &&
+		cd ..
+	done
+'
+
+mkdir super
+cd super
+cat >expected << EOF
+:000000 100644 00000... A	.gitmodules
+:000000 160000 00000... A	a
+:000000 160000 00000... A	b
+:000000 160000 00000... A	c
+:000000 160000 00000... A	d
+EOF
+
+test_expect_success "create the superproject" '
+	git init &&
+	echo super > super.txt &&
+	git add super.txt &&
+	git commit -m "initial" &&
+	for i in a b c d
+	do
+		git submodule add '`pwd`'/../$i
+	done &&
+	git commit -m "Add submodules a, b, c and d." &&
+	git diff-tree --abbrev=5 HEAD^ HEAD |cut -d" " -f-3,5- >current &&
+	cmp expected current
+'
+
+test_expect_success "checking if the correct commit is stored in the superproject" '
+	for i in a b c d
+	do
+		git ls-files -s $i|cut -d " " -f 2 > $i.actual &&
+		(cd $i && git-rev-parse HEAD) > $i.expected &&
+		cmp $i.actual $i.expected
+	done &&
+	cd ..
+'
+
+test_expect_success "clone the superproject" '
+	git clone super cloned &&
+	cd cloned
+'
+
+test_expect_success "submodule init" '
+	git submodule init
+'
+
+test_expect_success "submodule update" '
+	git submodule update
+'
+
+test_expect_success "checking the result of the commit in the cloned project" '
+	for i in a b c d
+	do
+		git ls-files -s $i|cut -d " " -f 2 > $i.actual &&
+		(cd $i && git-rev-parse HEAD) > $i.expected &&
+		cmp $i.actual $i.expected
+	done
+'
+
+test_expect_success "update the submodule from within the superproject" '
+	cd a &&
+	echo "adding a line again" >> a.txt &&
+	git commit -a -m "Updated the submodule from within the superproject." &&
+	git push &&
+	cd .. &&
+	git add a &&
+	git commit -m "Updated submodule a." &&
+	git push
+'
+
+test_expect_success "checking the result of the commit in the updated cloned project" '
+	git ls-files -s a|cut -d " " -f 2 > a.actual &&
+	(cd a && git-rev-parse HEAD) > a.expected &&
+	cmp a.actual a.expected
+'
+test_done
-- 
1.5.3.2.80.g077d6f-dirty
Previous: Junio C HamanoNext: Miklos Vajna
Message 24 of 28 in “[rfc] git submodules howto”
  1. Miklos VajnaSep 18, 2007
  2. Johannes SchindelinSep 18, 2007
  3. Michael SmithSep 18, 2007
  4. J. Bruce FieldsSep 18, 2007
  5. Miklos VajnaSep 18, 2007
  6. J. Bruce FieldsSep 18, 2007
  7. Miklos VajnaSep 18, 2007
  8. Michael SmithSep 18, 2007
  9. User Manual: add a chapter for submodulesMiklos Vajna, Sep 19, 2007
  10. Junio C HamanoSep 19, 2007
  11. J. Bruce FieldsSep 19, 2007
  12. User Manual: add a chapter for submodulesMiklos Vajna, Sep 20, 2007
  13. User Manual: add a chapter for submodulesMiklos Vajna, Sep 20, 2007
  14. Junio C HamanoSep 20, 2007
  15. Johannes SchindelinSep 20, 2007
  16. new test from the submodule chapter of the user manualMiklos Vajna, Sep 20, 2007
  17. Joel BeckerSep 20, 2007
  18. Johannes SchindelinSep 20, 2007
  19. Miklos VajnaSep 20, 2007
  20. Joel BeckerSep 20, 2007
  21. Junio C HamanoSep 20, 2007
  22. new test from the submodule chapter of the user manualMiklos Vajna, Sep 21, 2007
  23. Junio C HamanoSep 21, 2007
  24. new test from the submodule chapter of the user manualMiklos Vajna, Sep 22, 2007
  25. Miklos VajnaSep 20, 2007
  26. Sven VerdoolaegeSep 19, 2007
  27. Uwe Kleine-KönigSep 24, 2007
  28. Miklos VajnaSep 24, 2007

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.