]> git.ipfire.org Git - thirdparty/git.git/blame - t/t4138-apply-ws-expansion.sh
Merge branch 'wb/fsmonitor-bitmap-fix'
[thirdparty/git.git] / t / t4138-apply-ws-expansion.sh
CommitLineData
2988289f
JH
1#!/bin/sh
2#
3# Copyright (C) 2015 Kyle J. McKay
4#
5
6test_description='git apply test patches with whitespace expansion.'
7
8. ./test-lib.sh
9
10test_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
113for t in 1 2 3 4
114do
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 '
119done
120
121test_done