@matheusbsbs / matheus-bagliano / commits / 934f930b31
Fork 0

more D/F conflict tests

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>

Junio C Hamano committed Sep 20, 2009 at 11:49 UTC 934f930b3144d03cacd16bc5117ef2afe3b1d04d
1 file changed +102
t/t1012-read-tree-df.sh new
+102
@@ -0,0 +1,102 @@
1 +#!/bin/sh
2 +
3 +test_description='read-tree D/F conflict corner cases'
4 +
5 +. ./test-lib.sh
6 +
7 +maketree () {
8 + (
9 + rm -f .git/index .git/index.lock &&
10 + git clean -d -f -f -q -x &&
11 + name="$1" &&
12 + shift &&
13 + for it
14 + do
15 + path=$(expr "$it" : '\([^:]*\)') &&
16 + mkdir -p $(dirname "$path") &&
17 + echo "$it" >"$path" &&
18 + git update-index --add "$path" || exit
19 + done &&
20 + git tag "$name" $(git write-tree)
21 + )
22 +}
23 +
24 +settree () {
25 + rm -f .git/index .git/index.lock &&
26 + git clean -d -f -f -q -x &&
27 + git read-tree "$1" &&
28 + git checkout-index -f -q -u -a &&
29 + git update-index --refresh
30 +}
31 +
32 +checkindex () {
33 + git ls-files -s |
34 + sed "s|^[0-7][0-7]* $_x40 \([0-3]\) |\1 |" >current &&
35 + cat >expect &&
36 + test_cmp expect current
37 +}
38 +
39 +test_expect_success setup '
40 + maketree O-000 a/b-2/c/d a/b/c/d a/x &&
41 + maketree A-000 a/b-2/c/d a/b/c/d a/x &&
42 + maketree A-001 a/b-2/c/d a/b/c/d a/b/c/e a/x &&
43 + maketree B-000 a/b-2/c/d a/b a/x &&
44 +
45 + maketree O-010 t-0 t/1 t/2 t=3 &&
46 + maketree A-010 t-0 t t=3 &&
47 + maketree B-010 t/1: t=3: &&
48 +
49 + maketree O-020 ds/dma/ioat.c ds/dma/ioat_dca.c &&
50 + maketree A-020 ds/dma/ioat/Makefile ds/dma/ioat/registers.h &&
51 + :
52 +'
53 +
54 +test_expect_failure '3-way (1)' '
55 + settree A-000 &&
56 + git read-tree -m -u O-000 A-000 B-000 &&
57 + checkindex <<-EOF
58 + 3 a/b
59 + 0 a/b-2/c/d
60 + 1 a/b/c/d
61 + 2 a/b/c/d
62 + 0 a/x
63 + EOF
64 +'
65 +
66 +test_expect_failure '3-way (2)' '
67 + settree A-001 &&
68 + git read-tree -m -u O-000 A-001 B-000 &&
69 + checkindex <<-EOF
70 + 3 a/b
71 + 0 a/b-2/c/d
72 + 1 a/b/c/d
73 + 2 a/b/c/d
74 + 2 a/b/c/e
75 + 0 a/x
76 + EOF
77 +'
78 +
79 +test_expect_success '3-way (3)' '
80 + settree A-010 &&
81 + git read-tree -m -u O-010 A-010 B-010 &&
82 + checkindex <<-EOF
83 + 2 t
84 + 1 t-0
85 + 2 t-0
86 + 1 t/1
87 + 3 t/1
88 + 1 t/2
89 + 0 t=3
90 + EOF
91 +'
92 +
93 +test_expect_success '2-way (1)' '
94 + settree O-020 &&
95 + git read-tree -m -u O-020 A-020 &&
96 + checkindex <<-EOF
97 + 0 ds/dma/ioat/Makefile
98 + 0 ds/dma/ioat/registers.h
99 + EOF
100 +'
101 +
102 +test_done