test-lib.sh: introduce and use $EMPTY_BLOB

Similar to $EMPTY_TREE this makes it easier to recognize this special
SHA-1 and change hash later.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Nguyễn Thái Ngọc Duy 2016-07-16 07:06:25 +02:00 committed by Junio C Hamano
parent f9e7d9f8c3
commit 378932d3c3
8 changed files with 35 additions and 38 deletions

View file

@ -15,11 +15,11 @@ test_description='sparse checkout tests
. "$TEST_DIRECTORY"/lib-read-tree.sh . "$TEST_DIRECTORY"/lib-read-tree.sh
test_expect_success 'setup' ' test_expect_success 'setup' '
cat >expected <<-\EOF && cat >expected <<-EOF &&
100644 77f0ba1734ed79d12881f81b36ee134de6a3327b 0 init.t 100644 77f0ba1734ed79d12881f81b36ee134de6a3327b 0 init.t
100644 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 0 sub/added 100644 $EMPTY_BLOB 0 sub/added
100644 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 0 sub/addedtoo 100644 $EMPTY_BLOB 0 sub/addedtoo
100644 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 0 subsub/added 100644 $EMPTY_BLOB 0 subsub/added
EOF EOF
cat >expected.swt <<-\EOF && cat >expected.swt <<-\EOF &&
H init.t H init.t

View file

@ -33,14 +33,14 @@ test_expect_success 'add one file' '
git update-index --add one && git update-index --add one &&
git ls-files --stage >ls-files.actual && git ls-files --stage >ls-files.actual &&
cat >ls-files.expect <<EOF && cat >ls-files.expect <<EOF &&
100644 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 0 one 100644 $EMPTY_BLOB 0 one
EOF EOF
test_cmp ls-files.expect ls-files.actual && test_cmp ls-files.expect ls-files.actual &&
test-dump-split-index .git/index | sed "/^own/d" >actual && test-dump-split-index .git/index | sed "/^own/d" >actual &&
cat >expect <<EOF && cat >expect <<EOF &&
base $base base $base
100644 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 0 one 100644 $EMPTY_BLOB 0 one
replacements: replacements:
deletions: deletions:
EOF EOF
@ -51,7 +51,7 @@ test_expect_success 'disable split index' '
git update-index --no-split-index && git update-index --no-split-index &&
git ls-files --stage >ls-files.actual && git ls-files --stage >ls-files.actual &&
cat >ls-files.expect <<EOF && cat >ls-files.expect <<EOF &&
100644 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 0 one 100644 $EMPTY_BLOB 0 one
EOF EOF
test_cmp ls-files.expect ls-files.actual && test_cmp ls-files.expect ls-files.actual &&
@ -67,7 +67,7 @@ test_expect_success 'enable split index again, "one" now belongs to base index"'
git update-index --split-index && git update-index --split-index &&
git ls-files --stage >ls-files.actual && git ls-files --stage >ls-files.actual &&
cat >ls-files.expect <<EOF && cat >ls-files.expect <<EOF &&
100644 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 0 one 100644 $EMPTY_BLOB 0 one
EOF EOF
test_cmp ls-files.expect ls-files.actual && test_cmp ls-files.expect ls-files.actual &&
@ -105,7 +105,7 @@ test_expect_success 'add another file, which stays index' '
git ls-files --stage >ls-files.actual && git ls-files --stage >ls-files.actual &&
cat >ls-files.expect <<EOF && cat >ls-files.expect <<EOF &&
100644 2e0996000b7e9019eabcad29391bf0f5c7702f0b 0 one 100644 2e0996000b7e9019eabcad29391bf0f5c7702f0b 0 one
100644 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 0 two 100644 $EMPTY_BLOB 0 two
EOF EOF
test_cmp ls-files.expect ls-files.actual && test_cmp ls-files.expect ls-files.actual &&
@ -113,7 +113,7 @@ EOF
q_to_tab >expect <<EOF && q_to_tab >expect <<EOF &&
$BASE $BASE
100644 2e0996000b7e9019eabcad29391bf0f5c7702f0b 0Q 100644 2e0996000b7e9019eabcad29391bf0f5c7702f0b 0Q
100644 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 0 two 100644 $EMPTY_BLOB 0 two
replacements: 0 replacements: 0
deletions: deletions:
EOF EOF
@ -159,14 +159,14 @@ test_expect_success 'add original file back' '
git update-index --add one && git update-index --add one &&
git ls-files --stage >ls-files.actual && git ls-files --stage >ls-files.actual &&
cat >ls-files.expect <<EOF && cat >ls-files.expect <<EOF &&
100644 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 0 one 100644 $EMPTY_BLOB 0 one
EOF EOF
test_cmp ls-files.expect ls-files.actual && test_cmp ls-files.expect ls-files.actual &&
test-dump-split-index .git/index | sed "/^own/d" >actual && test-dump-split-index .git/index | sed "/^own/d" >actual &&
cat >expect <<EOF && cat >expect <<EOF &&
$BASE $BASE
100644 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 0 one 100644 $EMPTY_BLOB 0 one
replacements: replacements:
deletions: 0 deletions: 0
EOF EOF
@ -178,8 +178,8 @@ test_expect_success 'add new file' '
git update-index --add two && git update-index --add two &&
git ls-files --stage >actual && git ls-files --stage >actual &&
cat >expect <<EOF && cat >expect <<EOF &&
100644 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 0 one 100644 $EMPTY_BLOB 0 one
100644 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 0 two 100644 $EMPTY_BLOB 0 two
EOF EOF
test_cmp expect actual test_cmp expect actual
' '
@ -188,8 +188,8 @@ test_expect_success 'unify index, two files remain' '
git update-index --no-split-index && git update-index --no-split-index &&
git ls-files --stage >ls-files.actual && git ls-files --stage >ls-files.actual &&
cat >ls-files.expect <<EOF && cat >ls-files.expect <<EOF &&
100644 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 0 one 100644 $EMPTY_BLOB 0 one
100644 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 0 two 100644 $EMPTY_BLOB 0 two
EOF EOF
test_cmp ls-files.expect ls-files.actual && test_cmp ls-files.expect ls-files.actual &&

View file

@ -12,16 +12,16 @@ test_expect_success 'setup' '
' '
test_expect_success 'ls-tree a[a] matches literally' ' test_expect_success 'ls-tree a[a] matches literally' '
cat >expect <<-\EOF && cat >expect <<-EOF &&
100644 blob e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 a[a]/three 100644 blob $EMPTY_BLOB a[a]/three
EOF EOF
git ls-tree -r HEAD "a[a]" >actual && git ls-tree -r HEAD "a[a]" >actual &&
test_cmp expect actual test_cmp expect actual
' '
test_expect_success 'ls-tree outside prefix' ' test_expect_success 'ls-tree outside prefix' '
cat >expect <<-\EOF && cat >expect <<-EOF &&
100644 blob e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 ../a[a]/three 100644 blob $EMPTY_BLOB ../a[a]/three
EOF EOF
( cd aa && git ls-tree -r HEAD "../a[a]"; ) >actual && ( cd aa && git ls-tree -r HEAD "../a[a]"; ) >actual &&
test_cmp expect actual test_cmp expect actual

View file

@ -23,17 +23,15 @@ S sub/1
H sub/2 H sub/2
EOF EOF
NULL_SHA1=e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
setup_absent() { setup_absent() {
test -f 1 && rm 1 test -f 1 && rm 1
git update-index --remove 1 && git update-index --remove 1 &&
git update-index --add --cacheinfo 100644 $NULL_SHA1 1 && git update-index --add --cacheinfo 100644 $EMPTY_BLOB 1 &&
git update-index --skip-worktree 1 git update-index --skip-worktree 1
} }
test_absent() { test_absent() {
echo "100644 $NULL_SHA1 0 1" > expected && echo "100644 $EMPTY_BLOB 0 1" > expected &&
git ls-files --stage 1 > result && git ls-files --stage 1 > result &&
test_cmp expected result && test_cmp expected result &&
test ! -f 1 test ! -f 1
@ -42,12 +40,12 @@ test_absent() {
setup_dirty() { setup_dirty() {
git update-index --force-remove 1 && git update-index --force-remove 1 &&
echo dirty > 1 && echo dirty > 1 &&
git update-index --add --cacheinfo 100644 $NULL_SHA1 1 && git update-index --add --cacheinfo 100644 $EMPTY_BLOB 1 &&
git update-index --skip-worktree 1 git update-index --skip-worktree 1
} }
test_dirty() { test_dirty() {
echo "100644 $NULL_SHA1 0 1" > expected && echo "100644 $EMPTY_BLOB 0 1" > expected &&
git ls-files --stage 1 > result && git ls-files --stage 1 > result &&
test_cmp expected result && test_cmp expected result &&
echo dirty > expected echo dirty > expected
@ -120,7 +118,7 @@ test_expect_success 'grep with skip-worktree file' '
test "$(git grep --no-ext-grep test)" = "1:test" test "$(git grep --no-ext-grep test)" = "1:test"
' '
echo ":000000 100644 $_z40 $NULL_SHA1 A 1" > expected echo ":000000 100644 $_z40 $EMPTY_BLOB A 1" > expected
test_expect_success 'diff-index does not examine skip-worktree absent entries' ' test_expect_success 'diff-index does not examine skip-worktree absent entries' '
setup_absent && setup_absent &&
git diff-index HEAD -- 1 > result && git diff-index HEAD -- 1 > result &&

View file

@ -53,17 +53,15 @@ test_expect_success 'read-tree removes worktree, dirty case' '
git update-index --no-skip-worktree added git update-index --no-skip-worktree added
' '
NULL_SHA1=e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
setup_absent() { setup_absent() {
test -f 1 && rm 1 test -f 1 && rm 1
git update-index --remove 1 && git update-index --remove 1 &&
git update-index --add --cacheinfo 100644 $NULL_SHA1 1 && git update-index --add --cacheinfo 100644 $EMPTY_BLOB 1 &&
git update-index --skip-worktree 1 git update-index --skip-worktree 1
} }
test_absent() { test_absent() {
echo "100644 $NULL_SHA1 0 1" > expected && echo "100644 $EMPTY_BLOB 0 1" > expected &&
git ls-files --stage 1 > result && git ls-files --stage 1 > result &&
test_cmp expected result && test_cmp expected result &&
test ! -f 1 test ! -f 1
@ -72,12 +70,12 @@ test_absent() {
setup_dirty() { setup_dirty() {
git update-index --force-remove 1 && git update-index --force-remove 1 &&
echo dirty > 1 && echo dirty > 1 &&
git update-index --add --cacheinfo 100644 $NULL_SHA1 1 && git update-index --add --cacheinfo 100644 $EMPTY_BLOB 1 &&
git update-index --skip-worktree 1 git update-index --skip-worktree 1
} }
test_dirty() { test_dirty() {
echo "100644 $NULL_SHA1 0 1" > expected && echo "100644 $EMPTY_BLOB 0 1" > expected &&
git ls-files --stage 1 > result && git ls-files --stage 1 > result &&
test_cmp expected result && test_cmp expected result &&
echo dirty > expected echo dirty > expected

View file

@ -53,7 +53,7 @@ A two
EOF EOF
cat >../dump.expect <<EOF && cat >../dump.expect <<EOF &&
info/exclude e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 info/exclude $EMPTY_BLOB
core.excludesfile 0000000000000000000000000000000000000000 core.excludesfile 0000000000000000000000000000000000000000
exclude_per_dir .gitignore exclude_per_dir .gitignore
flags 00000006 flags 00000006
@ -137,7 +137,7 @@ EOF
test_expect_success 'verify untracked cache dump' ' test_expect_success 'verify untracked cache dump' '
test-dump-untracked-cache >../actual && test-dump-untracked-cache >../actual &&
cat >../expect <<EOF && cat >../expect <<EOF &&
info/exclude e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 info/exclude $EMPTY_BLOB
core.excludesfile 0000000000000000000000000000000000000000 core.excludesfile 0000000000000000000000000000000000000000
exclude_per_dir .gitignore exclude_per_dir .gitignore
flags 00000006 flags 00000006
@ -184,7 +184,7 @@ EOF
test_expect_success 'verify untracked cache dump' ' test_expect_success 'verify untracked cache dump' '
test-dump-untracked-cache >../actual && test-dump-untracked-cache >../actual &&
cat >../expect <<EOF && cat >../expect <<EOF &&
info/exclude e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 info/exclude $EMPTY_BLOB
core.excludesfile 0000000000000000000000000000000000000000 core.excludesfile 0000000000000000000000000000000000000000
exclude_per_dir .gitignore exclude_per_dir .gitignore
flags 00000006 flags 00000006

View file

@ -803,7 +803,7 @@ EOF
' '
cat >expect <<EOF cat >expect <<EOF
:100644 100644 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 0000000000000000000000000000000000000000 M dir1/modified :100644 100644 $EMPTY_BLOB 0000000000000000000000000000000000000000 M dir1/modified
EOF EOF
test_expect_success 'status refreshes the index' ' test_expect_success 'status refreshes the index' '
touch dir2/added && touch dir2/added &&

View file

@ -163,6 +163,7 @@ _x40="$_x05$_x05$_x05$_x05$_x05$_x05$_x05$_x05"
_z40=0000000000000000000000000000000000000000 _z40=0000000000000000000000000000000000000000
EMPTY_TREE=4b825dc642cb6eb9a060e54bf8d69288fbee4904 EMPTY_TREE=4b825dc642cb6eb9a060e54bf8d69288fbee4904
EMPTY_BLOB=e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
# Line feed # Line feed
LF=' LF='
@ -172,7 +173,7 @@ LF='
# when case-folding filenames # when case-folding filenames
u200c=$(printf '\342\200\214') u200c=$(printf '\342\200\214')
export _x05 _x40 _z40 LF u200c EMPTY_TREE export _x05 _x40 _z40 LF u200c EMPTY_TREE EMPTY_BLOB
# Each test should start with something like this, after copyright notices: # Each test should start with something like this, after copyright notices:
# #