Add `stg import --message-id` option
[stgit.git] / t / t1802-import-quilt.sh
blob20b1ffe594c343bcff8b9b7e78d12758a809d6f0
1 #!/bin/sh
3 # Copyright (c) 2015 Vincent Legoll
5 test_description='Test import from quilt series'
7 . ./test-lib.sh
9 cleanup_test () {
10 stg delete ..
11 rm -r patches .pc
14 after_test () {
15 # Revert to master status : undedit files
16 quilt pop -a
19 check_test () {
20 # Test importing quilt series
21 stg import -s patches/series
24 test_import_quilt_series_should_fail_p_something_ok () {
25 quilt new -p $1 patch-p$1.diff
26 quilt add t
27 echo 4 > t
28 quilt refresh
30 quilt new -p $1 patch-p$1-s.diff
31 quilt add s/u
32 echo 4 > s/u
33 quilt refresh
36 test_import_quilt_series_should_fail_p_something_unexpected () {
37 quilt new patch-p$1.diff
38 quilt add t
39 echo 4 > t
40 quilt refresh
42 quilt new patch-p$1-s.diff
43 quilt add s/u
44 echo 4 > s/u
45 quilt refresh
48 test_expect_success QUILT \
49 'Test quilt presence' \
50 'quilt --version'
52 test_expect_success QUILT \
53 'Prepare test environment' \
54 '# Initialize git tree
55 mkdir s
56 echo 0 > t
57 echo 0 > s/u
58 git add t s/u
59 git commit -a -m initial
61 # Initialize patch stacking tool
62 stg init
65 test_expect_success QUILT \
66 'Import a quilt series with an empty patch' \
67 'quilt new empty.diff &&
68 quilt refresh &&
69 after_test &&
70 check_test &&
71 cleanup_test
74 test_expect_success QUILT \
75 'Import a quilt series with indented comments' \
76 'quilt new patch_before_comment.diff &&
77 quilt add t &&
78 echo 1 > t &&
79 quilt refresh &&
80 echo "# Test comment at beginning-of-line" >> patches/series &&
81 echo " # Test <SPACE> character before comment" >> patches/series &&
82 echo " # Test <TAB> character before comment" >> patches/series &&
83 quilt new patch_after_comments.diff &&
84 quilt add t &&
85 echo 2 > t &&
86 quilt refresh &&
87 after_test &&
88 check_test &&
89 cleanup_test
92 test_expect_success QUILT \
93 'Import a quilt series with patches for toplevel files' \
94 'quilt new patch.diff &&
95 quilt add t &&
96 echo 1 > t &&
97 quilt refresh &&
98 quilt new -p 0 patch-p0.diff &&
99 quilt add t &&
100 echo 2 > t &&
101 quilt refresh &&
102 quilt new -p 1 patch-p1.diff &&
103 quilt add t &&
104 echo 3 > t &&
105 quilt refresh &&
106 quilt new -p ab patch-pab.diff &&
107 quilt add t &&
108 echo 4 > t &&
109 quilt refresh &&
110 after_test &&
111 check_test &&
112 cleanup_test
115 test_expect_success QUILT \
116 'Import a quilt series with patches for subdirectories files' \
117 'quilt new patch-s.diff &&
118 quilt add s/u &&
119 echo 1 > s/u &&
120 quilt refresh &&
121 quilt new -p 0 patch-p0-s.diff &&
122 quilt add s/u &&
123 echo 2 > s/u &&
124 quilt refresh &&
125 quilt new -p 1 patch-p1-s.diff &&
126 quilt add s/u &&
127 echo 3 > s/u &&
128 quilt refresh &&
129 quilt new -p ab patch-pab-s.diff &&
130 quilt add s/u &&
131 echo 4 > s/u &&
132 quilt refresh &&
133 after_test &&
134 check_test &&
135 cleanup_test
138 test_expect_success QUILT \
139 'Import a quilt series with unexpected "-p" in series' \
140 'test_import_quilt_series_should_fail_p_something_unexpected '' &&
141 after_test &&
142 sed -e "s/^\(.*\)$/\1 -p/g" patches/series > series_messed &&
143 mv series_messed patches/series &&
144 test_expect_code 2 check_test &&
145 cleanup_test
148 test_expect_success QUILT \
149 'Import a quilt series with unexpected "-p1" in series' \
150 'test_import_quilt_series_should_fail_p_something_ok 1 &&
151 after_test &&
152 sed -e "s/^\(.*\)$/\1 -p1/g" patches/series > series_messed &&
153 mv series_messed patches/series &&
154 test_expect_code 2 check_test &&
155 cleanup_test
158 test_expect_success QUILT \
159 'Import a quilt series with unexpected "-pab" in series' \
160 'test_import_quilt_series_should_fail_p_something_ok ab &&
161 after_test &&
162 sed -e "s/^\(.*\)$/\1 -pab/g" patches/series > series_messed &&
163 mv series_messed patches/series &&
164 test_expect_code 2 check_test &&
165 cleanup_test
168 test_expect_success QUILT \
169 'Import a quilt series with unexpected "-p000" in series' \
170 'test_import_quilt_series_should_fail_p_something_unexpected 000 &&
171 after_test &&
172 sed -e "s/^\(.*\)$/\1 -p000/g" patches/series > series_messed &&
173 mv series_messed patches/series &&
174 test_expect_code 2 check_test &&
175 cleanup_test
178 test_expect_success QUILT \
179 'Import a quilt series with unexpected "-p42" in series' \
180 'test_import_quilt_series_should_fail_p_something_unexpected 42 &&
181 after_test &&
182 sed -e "s/^\(.*\)$/\1 -p42/g" patches/series > series_messed &&
183 mv series_messed patches/series &&
184 test_expect_code 2 check_test &&
185 cleanup_test
188 test_expect_success QUILT \
189 'Import a quilt series with unexpected "-pYo" in series' \
190 'test_import_quilt_series_should_fail_p_something_unexpected Yo &&
191 after_test &&
192 sed -e "s/^\(.*\)$/\1 -pYo/g" patches/series > series_messed &&
193 mv series_messed patches/series &&
194 test_expect_code 2 check_test &&
195 cleanup_test
198 test_expect_success QUILT \
199 'Quilt import filename with spaces' \
200 'echo 1 > "filename with space.txt" &&
201 git add "filename with space.txt" &&
202 git commit -m initial &&
203 quilt new patch-test-space-fn.diff &&
204 quilt add "filename with space.txt" &&
205 echo 2 > "filename with space.txt" &&
206 quilt refresh &&
207 quilt pop -a &&
208 stg import -s patches/series &&
209 stg series &&
210 stg delete ..
213 test_expect_success QUILT \
214 'Quilt import series with subdirs' \
215 'echo 1 > "filename.txt" &&
216 git add "filename.txt" &&
217 git commit -m initial &&
218 quilt new d1/patch-test-subdir-patches.diff &&
219 quilt add "filename.txt" &&
220 echo 2 > "filename.txt" &&
221 quilt refresh &&
222 quilt new d2/patch-test-subdir-patches.diff &&
223 quilt add "filename.txt" &&
224 echo 3 > "filename.txt" &&
225 quilt refresh &&
226 quilt pop -a &&
227 stg import -s patches/series &&
228 stg series &&
229 stg delete ..
232 test_done