Merge branch 'rs/deflate-init-cleanup'
[gitweb.git] / t / t7004-tag.sh
index 143a8ea60507a35bbdfb310eb74a33cf5b88bf1f..35c805a44e817c637c667b1d1d14d97b4ee46803 100755 (executable)
@@ -1081,7 +1081,7 @@ test_expect_success GPG \
 get_tag_header rfc1991-signed-tag $commit commit $time >expect
 echo "RFC1991 signed tag" >>expect
 echo '-----BEGIN PGP MESSAGE-----' >>expect
-test_expect_success GPG \
+test_expect_success GPG,RFC1991 \
        'creating a signed tag with rfc1991' '
        echo "rfc1991" >gpghome/gpg.conf &&
        git tag -s -m "RFC1991 signed tag" rfc1991-signed-tag $commit &&
@@ -1095,7 +1095,7 @@ cp "$1" actual
 EOF
 chmod +x fakeeditor
 
-test_expect_success GPG \
+test_expect_success GPG,RFC1991 \
        'reediting a signed tag body omits signature' '
        echo "rfc1991" >gpghome/gpg.conf &&
        echo "RFC1991 signed tag" >expect &&
@@ -1103,13 +1103,13 @@ test_expect_success GPG \
        test_cmp expect actual
 '
 
-test_expect_success GPG \
+test_expect_success GPG,RFC1991 \
        'verifying rfc1991 signature' '
        echo "rfc1991" >gpghome/gpg.conf &&
        git tag -v rfc1991-signed-tag
 '
 
-test_expect_success GPG \
+test_expect_success GPG,RFC1991 \
        'list tag with rfc1991 signature' '
        echo "rfc1991" >gpghome/gpg.conf &&
        echo "rfc1991-signed-tag RFC1991 signed tag" >expect &&
@@ -1123,12 +1123,12 @@ test_expect_success GPG \
 
 rm -f gpghome/gpg.conf
 
-test_expect_success GPG \
+test_expect_success GPG,RFC1991 \
        'verifying rfc1991 signature without --rfc1991' '
        git tag -v rfc1991-signed-tag
 '
 
-test_expect_success GPG \
+test_expect_success GPG,RFC1991 \
        'list tag with rfc1991 signature without --rfc1991' '
        echo "rfc1991-signed-tag RFC1991 signed tag" >expect &&
        git tag -l -n1 rfc1991-signed-tag >actual &&
@@ -1139,7 +1139,7 @@ test_expect_success GPG \
        test_cmp expect actual
 '
 
-test_expect_success GPG \
+test_expect_success GPG,RFC1991 \
        'reediting a signed tag body omits signature' '
        echo "RFC1991 signed tag" >expect &&
        GIT_EDITOR=./fakeeditor git tag -f -s rfc1991-signed-tag $commit &&
@@ -1385,41 +1385,103 @@ test_expect_success 'lexical sort' '
        git tag foo1.6 &&
        git tag foo1.10 &&
        git tag -l --sort=refname "foo*" >actual &&
-       cat >expect <<EOF &&
-foo1.10
-foo1.3
-foo1.6
-EOF
+       cat >expect <<-\EOF &&
+       foo1.10
+       foo1.3
+       foo1.6
+       EOF
        test_cmp expect actual
 '
 
 test_expect_success 'version sort' '
        git tag -l --sort=version:refname "foo*" >actual &&
-       cat >expect <<EOF &&
-foo1.3
-foo1.6
-foo1.10
-EOF
+       cat >expect <<-\EOF &&
+       foo1.3
+       foo1.6
+       foo1.10
+       EOF
        test_cmp expect actual
 '
 
 test_expect_success 'reverse version sort' '
        git tag -l --sort=-version:refname "foo*" >actual &&
-       cat >expect <<EOF &&
-foo1.10
-foo1.6
-foo1.3
-EOF
+       cat >expect <<-\EOF &&
+       foo1.10
+       foo1.6
+       foo1.3
+       EOF
        test_cmp expect actual
 '
 
 test_expect_success 'reverse lexical sort' '
        git tag -l --sort=-refname "foo*" >actual &&
-       cat >expect <<EOF &&
-foo1.6
-foo1.3
-foo1.10
-EOF
+       cat >expect <<-\EOF &&
+       foo1.6
+       foo1.3
+       foo1.10
+       EOF
+       test_cmp expect actual
+'
+
+test_expect_success 'configured lexical sort' '
+       git config tag.sort "v:refname" &&
+       git tag -l "foo*" >actual &&
+       cat >expect <<-\EOF &&
+       foo1.3
+       foo1.6
+       foo1.10
+       EOF
+       test_cmp expect actual
+'
+
+test_expect_success 'option override configured sort' '
+       git tag -l --sort=-refname "foo*" >actual &&
+       cat >expect <<-\EOF &&
+       foo1.6
+       foo1.3
+       foo1.10
+       EOF
+       test_cmp expect actual
+'
+
+test_expect_success 'invalid sort parameter on command line' '
+       test_must_fail git tag -l --sort=notvalid "foo*" >actual
+'
+
+test_expect_success 'invalid sort parameter in configuratoin' '
+       git config tag.sort "v:notvalid" &&
+       git tag -l "foo*" >actual &&
+       cat >expect <<-\EOF &&
+       foo1.10
+       foo1.3
+       foo1.6
+       EOF
+       test_cmp expect actual
+'
+
+run_with_limited_stack () {
+       (ulimit -s 128 && "$@")
+}
+
+test_lazy_prereq ULIMIT 'run_with_limited_stack true'
+
+# we require ulimit, this excludes Windows
+test_expect_success ULIMIT '--contains works in a deep repo' '
+       >expect &&
+       i=1 &&
+       while test $i -lt 8000
+       do
+               echo "commit refs/heads/master
+committer A U Thor <author@example.com> $((1000000000 + $i * 100)) +0200
+data <<EOF
+commit #$i
+EOF"
+               test $i = 1 && echo "from refs/heads/master^0"
+               i=$(($i + 1))
+       done | git fast-import &&
+       git checkout master &&
+       git tag far-far-away HEAD^ &&
+       run_with_limited_stack git tag --contains HEAD >actual &&
        test_cmp expect actual
 '