Skip to content

Commit

Permalink
more D/F conflict tests
Browse files Browse the repository at this point in the history
Before starting to muck with this code, let's expose the current
breakages that we intend to fix.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Junio C Hamano committed Jan 4, 2010
1 parent cd3c095 commit 934f930
Showing 1 changed file with 102 additions and 0 deletions.
102 changes: 102 additions & 0 deletions t/t1012-read-tree-df.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
#!/bin/sh

test_description='read-tree D/F conflict corner cases'

. ./test-lib.sh

maketree () {
(
rm -f .git/index .git/index.lock &&
git clean -d -f -f -q -x &&
name="$1" &&
shift &&
for it
do
path=$(expr "$it" : '\([^:]*\)') &&
mkdir -p $(dirname "$path") &&
echo "$it" >"$path" &&
git update-index --add "$path" || exit
done &&
git tag "$name" $(git write-tree)
)
}

settree () {
rm -f .git/index .git/index.lock &&
git clean -d -f -f -q -x &&
git read-tree "$1" &&
git checkout-index -f -q -u -a &&
git update-index --refresh
}

checkindex () {
git ls-files -s |
sed "s|^[0-7][0-7]* $_x40 \([0-3]\) |\1 |" >current &&
cat >expect &&
test_cmp expect current
}

test_expect_success setup '
maketree O-000 a/b-2/c/d a/b/c/d a/x &&
maketree A-000 a/b-2/c/d a/b/c/d a/x &&
maketree A-001 a/b-2/c/d a/b/c/d a/b/c/e a/x &&
maketree B-000 a/b-2/c/d a/b a/x &&
maketree O-010 t-0 t/1 t/2 t=3 &&
maketree A-010 t-0 t t=3 &&
maketree B-010 t/1: t=3: &&
maketree O-020 ds/dma/ioat.c ds/dma/ioat_dca.c &&
maketree A-020 ds/dma/ioat/Makefile ds/dma/ioat/registers.h &&
:
'

test_expect_failure '3-way (1)' '
settree A-000 &&
git read-tree -m -u O-000 A-000 B-000 &&
checkindex <<-EOF
3 a/b
0 a/b-2/c/d
1 a/b/c/d
2 a/b/c/d
0 a/x
EOF
'

test_expect_failure '3-way (2)' '
settree A-001 &&
git read-tree -m -u O-000 A-001 B-000 &&
checkindex <<-EOF
3 a/b
0 a/b-2/c/d
1 a/b/c/d
2 a/b/c/d
2 a/b/c/e
0 a/x
EOF
'

test_expect_success '3-way (3)' '
settree A-010 &&
git read-tree -m -u O-010 A-010 B-010 &&
checkindex <<-EOF
2 t
1 t-0
2 t-0
1 t/1
3 t/1
1 t/2
0 t=3
EOF
'

test_expect_success '2-way (1)' '
settree O-020 &&
git read-tree -m -u O-020 A-020 &&
checkindex <<-EOF
0 ds/dma/ioat/Makefile
0 ds/dma/ioat/registers.h
EOF
'

test_done

0 comments on commit 934f930

Please sign in to comment.