tests: make test_must_fail more verbose
[gitweb.git] / t / t5503-tagfollow.sh
index 45ff982ec422a26af2a390833028d30891f180ca..bab1a536f562c63db67035712588d3e9a5222649 100755 (executable)
@@ -4,6 +4,12 @@ test_description='test automatic tag following'
 
 . ./test-lib.sh
 
+case $(uname -s) in
+*MINGW*)
+       skip_all="GIT_DEBUG_SEND_PACK not supported - skipping tests"
+       test_done
+esac
+
 # End state of the repository:
 #
 #         T - tag1          S - tag2
@@ -50,7 +56,7 @@ test_expect_success 'fetch A (new commit : 1 connection)' '
        ) &&
        test -s $U &&
        cut -d" " -f1,2 $U >actual &&
-       git diff expect actual
+       test_cmp expect actual
 '
 
 test_expect_success "create tag T on A, create C on branch cat" '
@@ -82,7 +88,7 @@ test_expect_success 'fetch C, T (new branch, tag : 1 connection)' '
        ) &&
        test -s $U &&
        cut -d" " -f1,2 $U >actual &&
-       git diff expect actual
+       test_cmp expect actual
 '
 
 test_expect_success "create commits O, B, tag S on B" '
@@ -118,7 +124,33 @@ test_expect_success 'fetch B, S (commit and tag : 1 connection)' '
        ) &&
        test -s $U &&
        cut -d" " -f1,2 $U >actual &&
-       git diff expect actual
+       test_cmp expect actual
+'
+
+cat - <<EOF >expect
+#S
+want $B
+want $S
+#E
+EOF
+test_expect_success 'new clone fetch master and tags' '
+       git branch -D cat
+       rm -f $U
+       (
+               mkdir clone2 &&
+               cd clone2 &&
+               git init &&
+               git remote add origin .. &&
+               GIT_DEBUG_SEND_PACK=3 git fetch 3>../$U &&
+               test $B = $(git rev-parse --verify origin/master) &&
+               test $S = $(git rev-parse --verify tag2) &&
+               test $B = $(git rev-parse --verify tag2^0) &&
+               test $T = $(git rev-parse --verify tag1) &&
+               test $A = $(git rev-parse --verify tag1^0)
+       ) &&
+       test -s $U &&
+       cut -d" " -f1,2 $U >actual &&
+       test_cmp expect actual
 '
 
 test_done