]>
Commit | Line | Data |
---|---|---|
2988289f JH |
1 | #!/bin/sh |
2 | # | |
3 | # Copyright (C) 2015 Kyle J. McKay | |
4 | # | |
5 | ||
6 | test_description='git apply test patches with whitespace expansion.' | |
7 | ||
8 | . ./test-lib.sh | |
9 | ||
10 | test_expect_success setup ' | |
11 | # | |
12 | ## create test-N, patchN.patch, expect-N files | |
13 | # | |
14 | ||
15 | # test 1 | |
16 | printf "\t%s\n" 1 2 3 4 5 6 >before && | |
17 | printf "\t%s\n" 1 2 3 >after && | |
18 | printf "%64s\n" a b c >>after && | |
19 | printf "\t%s\n" 4 5 6 >>after && | |
20 | git diff --no-index before after | | |
21 | sed -e "s/before/test-1/" -e "s/after/test-1/" >patch1.patch && | |
22 | printf "%64s\n" 1 2 3 4 5 6 >test-1 && | |
23 | printf "%64s\n" 1 2 3 a b c 4 5 6 >expect-1 && | |
24 | ||
25 | # test 2 | |
26 | printf "\t%s\n" a b c d e f >before && | |
27 | printf "\t%s\n" a b c >after && | |
28 | n=10 && | |
29 | x=1 && | |
30 | while test $x -lt $n | |
31 | do | |
32 | printf "%63s%d\n" "" $x >>after | |
33 | x=$(( $x + 1 )) | |
34 | done && | |
35 | printf "\t%s\n" d e f >>after && | |
36 | git diff --no-index before after | | |
37 | sed -e "s/before/test-2/" -e "s/after/test-2/" >patch2.patch && | |
38 | printf "%64s\n" a b c d e f >test-2 && | |
39 | printf "%64s\n" a b c >expect-2 && | |
40 | x=1 && | |
41 | while test $x -lt $n | |
42 | do | |
43 | printf "%63s%d\n" "" $x >>expect-2 | |
44 | x=$(( $x + 1 )) | |
45 | done && | |
46 | printf "%64s\n" d e f >>expect-2 && | |
47 | ||
48 | # test 3 | |
49 | printf "\t%s\n" a b c d e f >before && | |
50 | printf "\t%s\n" a b c >after && | |
51 | n=100 && | |
52 | x=0 && | |
53 | while test $x -lt $n | |
54 | do | |
55 | printf "%63s%02d\n" "" $x >>after | |
56 | x=$(( $x + 1 )) | |
57 | done && | |
58 | printf "\t%s\n" d e f >>after && | |
59 | git diff --no-index before after | | |
60 | sed -e "s/before/test-3/" -e "s/after/test-3/" >patch3.patch && | |
61 | printf "%64s\n" a b c d e f >test-3 && | |
62 | printf "%64s\n" a b c >expect-3 && | |
63 | x=0 && | |
64 | while test $x -lt $n | |
65 | do | |
66 | printf "%63s%02d\n" "" $x >>expect-3 | |
67 | x=$(( $x + 1 )) | |
68 | done && | |
69 | printf "%64s\n" d e f >>expect-3 && | |
70 | ||
71 | # test 4 | |
72 | >before && | |
73 | x=0 && | |
74 | while test $x -lt 50 | |
75 | do | |
76 | printf "\t%02d\n" $x >>before | |
77 | x=$(( $x + 1 )) | |
78 | done && | |
79 | cat before >after && | |
80 | printf "%64s\n" a b c >>after && | |
81 | while test $x -lt 100 | |
82 | do | |
83 | printf "\t%02d\n" $x >>before | |
84 | printf "\t%02d\n" $x >>after | |
85 | x=$(( $x + 1 )) | |
86 | done && | |
87 | git diff --no-index before after | | |
88 | sed -e "s/before/test-4/" -e "s/after/test-4/" >patch4.patch && | |
89 | >test-4 && | |
90 | x=0 && | |
91 | while test $x -lt 50 | |
92 | do | |
93 | printf "%63s%02d\n" "" $x >>test-4 | |
94 | x=$(( $x + 1 )) | |
95 | done && | |
96 | cat test-4 >expect-4 && | |
97 | printf "%64s\n" a b c >>expect-4 && | |
98 | while test $x -lt 100 | |
99 | do | |
100 | printf "%63s%02d\n" "" $x >>test-4 | |
101 | printf "%63s%02d\n" "" $x >>expect-4 | |
102 | x=$(( $x + 1 )) | |
103 | done && | |
104 | ||
105 | git config core.whitespace tab-in-indent,tabwidth=63 && | |
106 | git config apply.whitespace fix | |
107 | ||
108 | ' | |
109 | ||
110 | # Note that `patch` can successfully apply all patches when run | |
111 | # with the --ignore-whitespace option. | |
112 | ||
113 | for t in 1 2 3 4 | |
114 | do | |
115 | test_expect_success 'apply with ws expansion (t=$t)' ' | |
116 | git apply patch$t.patch && | |
dcbaa0b3 | 117 | test_cmp expect-$t test-$t |
2988289f JH |
118 | ' |
119 | done | |
120 | ||
121 | test_done |