{"thread":{"id":"12631","subject":"[PATCH] git-submodule summary: test","startedAt":"2008-03-11T05:15:49Z","lastAt":"2008-03-11T05:15:49Z","messageCount":1,"participants":["Ping Yin"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"71651","messageId":"1205212549-31541-1-git-send-email-pkufranky@gmail.com","threadId":"12631","inReplyTo":null,"subject":"[PATCH] git-submodule summary: test","fromName":"Ping Yin","fromEmail":"pkufranky@gmail.com","sentAt":"2008-03-11T05:15:49Z","receivedAt":"2008-03-11T05:15:49Z","isPatch":true,"sender":{"key":"pkufranky@gmail.com","avatar":"https://avatars.githubusercontent.com/u/5346?v=4"},"body":"Signed-off-by: Ping Yin <pkufranky@gmail.com>\n---\n t/t7401-submodule-summary.sh |  195 ++++++++++++++++++++++++++++++++++++++++++\n 1 files changed, 195 insertions(+), 0 deletions(-)\n create mode 100755 t/t7401-submodule-summary.sh\n\ndiff --git a/t/t7401-submodule-summary.sh b/t/t7401-submodule-summary.sh\nnew file mode 100755\nindex 0000000..0f3c42a\n--- /dev/null\n+++ b/t/t7401-submodule-summary.sh\n@@ -0,0 +1,195 @@\n+#!/bin/sh\n+#\n+# Copyright (c) 2008 Ping Yin\n+#\n+\n+test_description='Summary support for submodules\n+\n+This test tries to verify the sanity of summary subcommand of git-submodule.\n+'\n+\n+. ./test-lib.sh\n+\n+add_file () {\n+\tsm=$1\n+\tshift\n+\towd=$(pwd)\n+\tcd \"$sm\"\n+\tfor name; do\n+\t\techo \"$name\" > \"$name\" &&\n+\t\tgit add \"$name\" &&\n+\t\ttest_tick &&\n+\t\tgit commit -m \"Add $name\"\n+\tdone >/dev/null\n+\tgit rev-parse --verify HEAD | cut -c1-7\n+\tcd \"$owd\"\n+}\n+commit_file () {\n+\ttest_tick &&\n+\tgit commit \"$@\" -m \"Commit $*\" >/dev/null\n+}\n+\n+test_create_repo sm1 &&\n+add_file . foo\n+\n+head1=$(add_file sm1 foo1 foo2)\n+\n+test_expect_success 'added submodule' \"\n+\tgit add sm1 &&\n+\tgit submodule summary >actual &&\n+\tdiff actual - <<-EOF\n+* sm1 0000000...$head1 (2):\n+  > Add foo2\n+\n+EOF\n+\"\n+\n+commit_file sm1 &&\n+head2=$(add_file sm1 foo3)\n+\n+test_expect_success 'modified submodule(forward)' \"\n+\tgit submodule summary >actual &&\n+\tdiff actual - <<-EOF\n+* sm1 $head1...$head2 (1):\n+  > Add foo3\n+\n+EOF\n+\"\n+\n+commit_file sm1 &&\n+cd sm1 &&\n+git reset --hard HEAD~2 >/dev/null &&\n+head3=$(git rev-parse --verify HEAD | cut -c1-7) &&\n+cd ..\n+\n+test_expect_success 'modified submodule(backward)' \"\n+    git submodule summary >actual &&\n+    diff actual - <<-EOF\n+* sm1 $head2...$head3 (2):\n+  < Add foo3\n+  < Add foo2\n+\n+EOF\n+\"\n+\n+head4=$(add_file sm1 foo4 foo5) &&\n+head4_full=$(GIT_DIR=sm1/.git git rev-parse --verify HEAD)\n+test_expect_success 'modified submodule(backward and forward)' \"\n+    git submodule summary >actual &&\n+    diff actual - <<-EOF\n+* sm1 $head2...$head4 (4):\n+  > Add foo5\n+  > Add foo4\n+  < Add foo3\n+  < Add foo2\n+\n+EOF\n+\"\n+\n+test_expect_success '--summary-limit' \"\n+    git submodule summary -n 3 >actual &&\n+    diff actual - <<-EOF\n+* sm1 $head2...$head4 (4):\n+  > Add foo5\n+  > Add foo4\n+  < Add foo3\n+\n+EOF\n+\"\n+\n+commit_file sm1 &&\n+mv sm1 sm1-bak &&\n+echo sm1 >sm1 &&\n+head5=$(git hash-object sm1 | cut -c1-7) &&\n+git add sm1 &&\n+rm -f sm1 &&\n+mv sm1-bak sm1\n+\n+test_expect_success 'typechanged submodule(submodule->blob), --cached' \"\n+    git submodule summary --cached >actual &&\n+    diff actual - <<-EOF\n+* sm1 $head4(submodule)->$head5(blob) (3):\n+  < Add foo5\n+\n+EOF\n+\"\n+\n+rm -rf sm1 &&\n+git checkout-index sm1\n+test_expect_success 'typechanged submodule(submodule->blob)' \"\n+    git submodule summary >actual &&\n+    diff actual - <<-EOF\n+* sm1 $head4(submodule)->$head5(blob):\n+\n+EOF\n+\"\n+\n+rm -f sm1 &&\n+test_create_repo sm1 &&\n+head6=$(add_file sm1 foo6 foo7)\n+test_expect_success 'nonexistent commit' \"\n+    git submodule summary >actual &&\n+    diff actual - <<-EOF\n+* sm1 $head4...$head6:\n+  Warn: sm1 doesn't contain commit $head4_full\n+\n+EOF\n+\"\n+\n+commit_file\n+test_expect_success 'typechanged submodule(blob->submodule)' \"\n+    git submodule summary >actual &&\n+    diff actual - <<-EOF\n+* sm1 $head5(blob)->$head6(submodule) (2):\n+  > Add foo7\n+\n+EOF\n+\"\n+\n+commit_file sm1 &&\n+rm -rf sm1\n+test_expect_success 'deleted submodule' \"\n+    git submodule summary >actual &&\n+    diff actual - <<-EOF\n+* sm1 $head6...0000000:\n+\n+EOF\n+\"\n+\n+test_create_repo sm2 &&\n+head7=$(add_file sm2 foo8 foo9) &&\n+git add sm2\n+\n+test_expect_success 'multiple submodules' \"\n+    git submodule summary >actual &&\n+    diff actual - <<-EOF\n+* sm1 $head6...0000000:\n+\n+* sm2 0000000...$head7 (2):\n+  > Add foo9\n+\n+EOF\n+\"\n+\n+test_expect_success 'path filter' \"\n+    git submodule summary sm2 >actual &&\n+    diff actual - <<-EOF\n+* sm2 0000000...$head7 (2):\n+  > Add foo9\n+\n+EOF\n+\"\n+\n+commit_file sm2\n+test_expect_success 'given commit' \"\n+    git submodule summary HEAD^ >actual &&\n+    diff actual - <<-EOF\n+* sm1 $head6...0000000:\n+\n+* sm2 0000000...$head7 (2):\n+  > Add foo9\n+\n+EOF\n+\"\n+\n+test_done\n-- \n1.5.4.3.347.g5314c\n"}]}