Merge branch 'bc/hash-independent-tests'

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
This commit is contained in:
Junio C Hamano 2018-04-11 13:09:54 +09:00
commit 709f9f5b4b
9 changed files with 100 additions and 82 deletions

View file

@ -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 &&

View file

@ -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
'

View file

@ -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' '

View file

@ -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

View file

@ -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 &&

View file

@ -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>

View file

@ -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 &&

View file

@ -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

View file

@ -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