Merge branch 'bc/hash-independent-tests'
authorJunio C Hamano <gitster@pobox.com>
Wed, 11 Apr 2018 04:09:54 +0000 (13:09 +0900)
committerJunio C Hamano <gitster@pobox.com>
Wed, 11 Apr 2018 04:09:54 +0000 (13:09 +0900)
Tests that rely on the exact hardcoded values of object names have
been updated in preparation for hash function migration.

* bc/hash-independent-tests:
t2107: abstract away SHA-1-specific constants
t2101: abstract away SHA-1-specific constants
t2101: modernize test style
t2020: abstract away SHA-1 specific constants
t1507: abstract away SHA-1-specific constants
t1411: abstract away SHA-1-specific constants
t1405: sort reflog entries in a hash-independent way
t1300: abstract away SHA-1-specific constants
t1304: abstract away SHA-1-specific constants
t1011: abstract away SHA-1-specific constants

t/t1011-read-tree-sparse-checkout.sh
t/t1300-repo-config.sh
t/t1304-default-acl.sh
t/t1405-main-ref-store.sh
t/t1411-reflog-show.sh
t/t1507-rev-parse-upstream.sh
t/t2020-checkout-detach.sh
t/t2101-update-index-reupdate.sh
t/t2107-update-index-basic.sh
index c167f606ca7b8c1628ac8d00507d50f032278730..0c6f48f3024c81de765a8acb489e2d5e3ec42a56 100755 (executable)
@@ -15,8 +15,11 @@ test_description='sparse checkout tests
 . "$TEST_DIRECTORY"/lib-read-tree.sh
 
 test_expect_success 'setup' '
+       test_commit init &&
+       echo modified >>init.t &&
+
        cat >expected <<-EOF &&
-       100644 77f0ba1734ed79d12881f81b36ee134de6a3327b 0       init.t
+       100644 $(git hash-object init.t) 0      init.t
        100644 $EMPTY_BLOB 0    sub/added
        100644 $EMPTY_BLOB 0    sub/addedtoo
        100644 $EMPTY_BLOB 0    subsub/added
@@ -28,8 +31,6 @@ test_expect_success 'setup' '
        H subsub/added
        EOF
 
-       test_commit init &&
-       echo modified >>init.t &&
        mkdir sub subsub &&
        touch sub/added sub/addedtoo subsub/added &&
        git add init.t sub/added sub/addedtoo subsub/added &&
index 4f8e6f5fde3295cc91d2feb1fd85fa007e56016c..dc7e6c2e775777d3cecf923006cba7be503708bb 100755 (executable)
@@ -1587,10 +1587,10 @@ test_expect_success '--show-origin stdin with file include' '
 '
 
 test_expect_success !MINGW '--show-origin blob' '
-       cat >expect <<-\EOF &&
-               blob:a9d9f9e555b5c6f07cbe09d3f06fe3df11e09c08   user.custom=true
-       EOF
        blob=$(git hash-object -w "$CUSTOM_CONFIG_FILE") &&
+       cat >expect <<-EOF &&
+               blob:$blob      user.custom=true
+       EOF
        git config --blob=$blob --show-origin --list >output &&
        test_cmp expect output
 '
index f5422f1d33f5eac98e6f56ec4bf05f3f8d4c8be2..335d3f3211aa874fd3a8e0d0006dd9fc53a4e589 100755 (executable)
@@ -54,7 +54,7 @@ test_expect_success SETFACL 'Setup test repo' '
 
 test_expect_success SETFACL 'Objects creation does not break ACLs with restrictive umask' '
        # SHA1 for empty blob
-       check_perms_and_acl .git/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391
+       check_perms_and_acl .git/objects/$(echo $EMPTY_BLOB | sed -e "s,^\(..\),\1/,")
 '
 
 test_expect_success SETFACL 'git gc does not break ACLs with restrictive umask' '
index e8115df5bad8d9ef46542cfd3c96c32da0bfa4ad..a1e243a05c623e96a53e931f914d41049b13639e 100755 (executable)
@@ -45,7 +45,7 @@ test_expect_success 'rename_refs(master, new-master)' '
 '
 
 test_expect_success 'for_each_ref(refs/heads/)' '
-       $RUN for-each-ref refs/heads/ | cut -c 42- >actual &&
+       $RUN for-each-ref refs/heads/ | cut -d" " -f 2- >actual &&
        cat >expected <<-\EOF &&
        master 0x0
        new-master 0x0
@@ -71,7 +71,7 @@ test_expect_success 'verify_ref(new-master)' '
 '
 
 test_expect_success 'for_each_reflog()' '
-       $RUN for-each-reflog | sort | cut -c 42- >actual &&
+       $RUN for-each-reflog | sort -k2 | cut -c 42- >actual &&
        cat >expected <<-\EOF &&
        HEAD 0x1
        refs/heads/master 0x0
index 6ac7734d79be21a82feeadff10064bb4ca7ad47b..596907758d5d47ae8026098a2ce4acd8c01df6aa 100755 (executable)
@@ -10,6 +10,7 @@ test_expect_success 'setup' '
        git commit -m one
 '
 
+commit=$(git rev-parse --short HEAD)
 cat >expect <<'EOF'
 Reflog: HEAD@{0} (C O Mitter <committer@example.com>)
 Reflog message: commit (initial): one
@@ -20,8 +21,8 @@ test_expect_success 'log -g shows reflog headers' '
        test_cmp expect actual
 '
 
-cat >expect <<'EOF'
-e46513e HEAD@{0}: commit (initial): one
+cat >expect <<EOF
+$commit HEAD@{0}: commit (initial): one
 EOF
 test_expect_success 'oneline reflog format' '
        git log -g -1 --oneline >actual &&
@@ -33,8 +34,8 @@ test_expect_success 'reflog default format' '
        test_cmp expect actual
 '
 
-cat >expect <<'EOF'
-commit e46513e
+cat >expect <<EOF
+commit $commit
 Reflog: HEAD@{0} (C O Mitter <committer@example.com>)
 Reflog message: commit (initial): one
 Author: A U Thor <author@example.com>
@@ -56,8 +57,8 @@ test_expect_success 'using @{now} syntax shows reflog date (multiline)' '
        test_cmp expect actual
 '
 
-cat >expect <<'EOF'
-e46513e HEAD@{Thu Apr 7 15:13:13 2005 -0700}: commit (initial): one
+cat >expect <<EOF
+$commit HEAD@{Thu Apr 7 15:13:13 2005 -0700}: commit (initial): one
 EOF
 test_expect_success 'using @{now} syntax shows reflog date (oneline)' '
        git log -g -1 --oneline HEAD@{now} >actual &&
@@ -82,8 +83,8 @@ test_expect_success 'using --date= shows reflog date (multiline)' '
        test_cmp expect actual
 '
 
-cat >expect <<'EOF'
-e46513e HEAD@{Thu Apr 7 15:13:13 2005 -0700}: commit (initial): one
+cat >expect <<EOF
+$commit HEAD@{Thu Apr 7 15:13:13 2005 -0700}: commit (initial): one
 EOF
 test_expect_success 'using --date= shows reflog date (oneline)' '
        git log -g -1 --oneline --date=default >actual &&
@@ -109,8 +110,8 @@ test_expect_success 'log.date does not invoke "--date" magic (multiline)' '
        test_cmp expect actual
 '
 
-cat >expect <<'EOF'
-e46513e HEAD@{0}: commit (initial): one
+cat >expect <<EOF
+$commit HEAD@{0}: commit (initial): one
 EOF
 test_expect_success 'log.date does not invoke "--date" magic (oneline)' '
        test_config log.date raw &&
index 2ce68cc277a1ed742ce7b644de31a4a847e3529b..93c77eac45321cb24823431c4d89dc393049edbf 100755 (executable)
@@ -209,8 +209,9 @@ test_expect_success '@{u} works when tracking a local branch' '
        test refs/heads/master = "$(full_name @{u})"
 '
 
+commit=$(git rev-parse HEAD)
 cat >expect <<EOF
-commit 8f489d01d0cc65c3b0f09504ec50b5ed02a70bd5
+commit $commit
 Reflog: master@{0} (C O Mitter <committer@example.com>)
 Reflog message: branch: Created from HEAD
 Author: A U Thor <author@example.com>
@@ -224,7 +225,7 @@ test_expect_success 'log -g other@{u}' '
 '
 
 cat >expect <<EOF
-commit 8f489d01d0cc65c3b0f09504ec50b5ed02a70bd5
+commit $commit
 Reflog: master@{Thu Apr 7 15:17:13 2005 -0700} (C O Mitter <committer@example.com>)
 Reflog message: branch: Created from HEAD
 Author: A U Thor <author@example.com>
index bb4f2e0c631f1de7421f50b9fa64f11276fe9645..1fa670625c5be87294eec9c5fe86bf2defff2ce2 100755 (executable)
@@ -189,8 +189,12 @@ test_expect_success 'no advice given for explicit detached head state' '
 # Detached HEAD tests for GIT_PRINT_SHA1_ELLIPSIS (new format)
 test_expect_success 'describe_detached_head prints no SHA-1 ellipsis when not asked to' "
 
+       commit=$(git rev-parse --short=12 master^) &&
+       commit2=$(git rev-parse --short=12 master~2) &&
+       commit3=$(git rev-parse --short=12 master~3) &&
+
        # The first detach operation is more chatty than the following ones.
-       cat >1st_detach <<-'EOF' &&
+       cat >1st_detach <<-EOF &&
        Note: checking out 'HEAD^'.
 
        You are in 'detached HEAD' state. You can look around, make experimental
@@ -202,18 +206,18 @@ test_expect_success 'describe_detached_head prints no SHA-1 ellipsis when not as
 
          git checkout -b <new-branch-name>
 
-       HEAD is now at 7c7cd714e262 three
+       HEAD is now at \$commit three
        EOF
 
        # The remaining ones just show info about previous and current HEADs.
-       cat >2nd_detach <<-'EOF' &&
-       Previous HEAD position was 7c7cd714e262 three
-       HEAD is now at 139b20d8e6c5 two
+       cat >2nd_detach <<-EOF &&
+       Previous HEAD position was \$commit three
+       HEAD is now at \$commit2 two
        EOF
 
-       cat >3rd_detach <<-'EOF' &&
-       Previous HEAD position was 139b20d8e6c5 two
-       HEAD is now at d79ce1670bdc one
+       cat >3rd_detach <<-EOF &&
+       Previous HEAD position was \$commit2 two
+       HEAD is now at \$commit3 one
        EOF
 
        reset &&
@@ -261,8 +265,12 @@ test_expect_success 'describe_detached_head prints no SHA-1 ellipsis when not as
 # Detached HEAD tests for GIT_PRINT_SHA1_ELLIPSIS (old format)
 test_expect_success 'describe_detached_head does print SHA-1 ellipsis when asked to' "
 
+       commit=$(git rev-parse --short=12 master^) &&
+       commit2=$(git rev-parse --short=12 master~2) &&
+       commit3=$(git rev-parse --short=12 master~3) &&
+
        # The first detach operation is more chatty than the following ones.
-       cat >1st_detach <<-'EOF' &&
+       cat >1st_detach <<-EOF &&
        Note: checking out 'HEAD^'.
 
        You are in 'detached HEAD' state. You can look around, make experimental
@@ -274,18 +282,18 @@ test_expect_success 'describe_detached_head does print SHA-1 ellipsis when asked
 
          git checkout -b <new-branch-name>
 
-       HEAD is now at 7c7cd714e262... three
+       HEAD is now at \$commit... three
        EOF
 
        # The remaining ones just show info about previous and current HEADs.
-       cat >2nd_detach <<-'EOF' &&
-       Previous HEAD position was 7c7cd714e262... three
-       HEAD is now at 139b20d8e6c5... two
+       cat >2nd_detach <<-EOF &&
+       Previous HEAD position was \$commit... three
+       HEAD is now at \$commit2... two
        EOF
 
-       cat >3rd_detach <<-'EOF' &&
-       Previous HEAD position was 139b20d8e6c5... two
-       HEAD is now at d79ce1670bdc... one
+       cat >3rd_detach <<-EOF &&
+       Previous HEAD position was \$commit2... two
+       HEAD is now at \$commit3... one
        EOF
 
        reset &&
index c8bce8c2e4314aaf466019438818293102c12c9c..685ec45639a5e9a2bf929e10aa30976e9a4c456b 100755 (executable)
@@ -8,19 +8,20 @@ test_description='git update-index --again test.
 
 . ./test-lib.sh
 
-cat > expected <<\EOF
-100644 3b18e512dba79e4c8300dd08aeb37f8e728b8dad 0      file1
-100644 9db8893856a8a02eaa73470054b7c1c5a7c82e47 0      file2
-EOF
-test_expect_success 'update-index --add' \
-       'echo hello world >file1 &&
-        echo goodbye people >file2 &&
-        git update-index --add file1 file2 &&
-        git ls-files -s >current &&
-        cmp current expected'
+test_expect_success 'update-index --add' '
+       echo hello world >file1 &&
+       echo goodbye people >file2 &&
+       git update-index --add file1 file2 &&
+       git ls-files -s >current &&
+       cat >expected <<-EOF &&
+       100644 $(git hash-object file1) 0       file1
+       100644 $(git hash-object file2) 0       file2
+       EOF
+       cmp current expected
+'
 
-test_expect_success 'update-index --again' \
-       'rm -f file1 &&
+test_expect_success 'update-index --again' '
+       rm -f file1 &&
        echo hello everybody >file2 &&
        if git update-index --again
        then
@@ -29,25 +30,23 @@ test_expect_success 'update-index --again' \
        else
                echo happy - failed as expected
        fi &&
-        git ls-files -s >current &&
-        cmp current expected'
+       git ls-files -s >current &&
+       cmp current expected
+'
 
-cat > expected <<\EOF
-100644 0f1ae1422c2bf43f117d3dbd715c988a9ed2103f 0      file2
-EOF
-test_expect_success 'update-index --remove --again' \
-       'git update-index --remove --again &&
-        git ls-files -s >current &&
-        cmp current expected'
+test_expect_success 'update-index --remove --again' '
+       git update-index --remove --again &&
+       git ls-files -s >current &&
+       cat >expected <<-EOF &&
+       100644 $(git hash-object file2) 0       file2
+       EOF
+       cmp current expected
+'
 
 test_expect_success 'first commit' 'git commit -m initial'
 
-cat > expected <<\EOF
-100644 53ab446c3f4e42ce9bb728a0ccb283a101be4979 0      dir1/file3
-100644 0f1ae1422c2bf43f117d3dbd715c988a9ed2103f 0      file2
-EOF
-test_expect_success 'update-index again' \
-       'mkdir -p dir1 &&
+test_expect_success 'update-index again' '
+       mkdir -p dir1 &&
        echo hello world >dir1/file3 &&
        echo goodbye people >file2 &&
        git update-index --add file2 dir1/file3 &&
@@ -55,30 +54,38 @@ test_expect_success 'update-index again' \
        echo happy >dir1/file3 &&
        git update-index --again &&
        git ls-files -s >current &&
-       cmp current expected'
+       cat >expected <<-EOF &&
+       100644 $(git hash-object dir1/file3) 0  dir1/file3
+       100644 $(git hash-object file2) 0       file2
+       EOF
+       cmp current expected
+'
 
-cat > expected <<\EOF
-100644 d7fb3f695f06c759dbf3ab00046e7cc2da22d10f 0      dir1/file3
-100644 0f1ae1422c2bf43f117d3dbd715c988a9ed2103f 0      file2
-EOF
-test_expect_success 'update-index --update from subdir' \
-       'echo not so happy >file2 &&
+file2=$(git hash-object file2)
+test_expect_success 'update-index --update from subdir' '
+       echo not so happy >file2 &&
        (cd dir1 &&
        cat ../file2 >file3 &&
        git update-index --again
        ) &&
        git ls-files -s >current &&
-       cmp current expected'
+       cat >expected <<-EOF &&
+       100644 $(git hash-object dir1/file3) 0  dir1/file3
+       100644 $file2 0 file2
+       EOF
+       test_cmp current expected
+'
 
-cat > expected <<\EOF
-100644 594fb5bb1759d90998e2bf2a38261ae8e243c760 0      dir1/file3
-100644 0f1ae1422c2bf43f117d3dbd715c988a9ed2103f 0      file2
-EOF
-test_expect_success 'update-index --update with pathspec' \
-       'echo very happy >file2 &&
+test_expect_success 'update-index --update with pathspec' '
+       echo very happy >file2 &&
        cat file2 >dir1/file3 &&
        git update-index --again dir1/ &&
        git ls-files -s >current &&
-       cmp current expected'
+       cat >expected <<-EOF &&
+       100644 $(git hash-object dir1/file3) 0  dir1/file3
+       100644 $file2 0 file2
+       EOF
+       cmp current expected
+'
 
 test_done
index 32ac6e09bdc81acfb8de5cf887302794d20c8ece..1db7e6a1abbebb63f811fa6ecbcd1db67607298e 100755 (executable)
@@ -85,9 +85,9 @@ test_expect_success '--chmod=+x and chmod=-x in the same argument list' '
        >B &&
        git add A B &&
        git update-index --chmod=+x A --chmod=-x B &&
-       cat >expect <<-\EOF &&
-       100755 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 0       A
-       100644 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 0       B
+       cat >expect <<-EOF &&
+       100755 $EMPTY_BLOB 0    A
+       100644 $EMPTY_BLOB 0    B
        EOF
        git ls-files --stage A B >actual &&
        test_cmp expect actual