##// END OF EJS Templates
tests: unify test-mq-guards
Nicolas Dumazet -
r11896:286693ea default
parent child Browse files
Show More
This diff has been collapsed as it changes many lines, (549 lines changed) Show them Hide them
@@ -1,173 +1,432 b''
1 #!/bin/sh
1 $ echo "[extensions]" >> $HGRCPATH
2 $ echo "mq=" >> $HGRCPATH
3
4 $ hg init
5 $ hg qinit
6
7 $ echo x > x
8 $ hg ci -Ama
9 adding x
2
10
3 echo "[extensions]" >> $HGRCPATH
11 $ hg qnew a.patch
4 echo "mq=" >> $HGRCPATH
12 $ echo a > a
13 $ hg add a
14 $ hg qrefresh
5
15
6 hg init
16 $ hg qnew b.patch
7 hg qinit
17 $ echo b > b
18 $ hg add b
19 $ hg qrefresh
20
21 $ hg qnew c.patch
22 $ echo c > c
23 $ hg add c
24 $ hg qrefresh
8
25
9 echo x > x
26 $ hg qpop -a
10 hg ci -Ama
27 popping c.patch
28 popping b.patch
29 popping a.patch
30 patch queue now empty
31
32
33 should fail
34
35 $ hg qguard does-not-exist.patch +bleh
36 abort: no patch named does-not-exist.patch
37
11
38
12 hg qnew a.patch
39 should fail
13 echo a > a
40
14 hg add a
41 $ hg qguard +fail
15 hg qrefresh
42 abort: no patches applied
43
44 $ hg qpush
45 applying a.patch
46 now at: a.patch
47
48 should guard a.patch
49
50 $ hg qguard +a
51
52 should print +a
16
53
17 hg qnew b.patch
54 $ hg qguard
18 echo b > b
55 a.patch: +a
19 hg add b
56 $ hg qpop
20 hg qrefresh
57 popping a.patch
58 patch queue now empty
59
60
61 should fail
62
63 $ hg qpush a.patch
64 cannot push 'a.patch' - guarded by ['+a']
21
65
22 hg qnew c.patch
66 $ hg qguard a.patch
23 echo c > c
67 a.patch: +a
24 hg add c
68
25 hg qrefresh
69 should push b.patch
26
70
27 hg qpop -a
71 $ hg qpush
72 applying b.patch
73 now at: b.patch
74
75 $ hg qpop
76 popping b.patch
77 patch queue now empty
28
78
29 echo % should fail
79 test selection of an empty guard
30 hg qguard does-not-exist.patch +bleh
31
80
32 echo % should fail
81 $ hg qselect ""
33 hg qguard +fail
82 abort: guard cannot be an empty string
83 $ hg qselect a
84 number of unguarded, unapplied patches has changed from 2 to 3
85
86 should push a.patch
87
88 $ hg qpush
89 applying a.patch
90 now at: a.patch
34
91
35 hg qpush
92 $ hg qguard -- c.patch -a
36 echo % should guard a.patch
93
37 hg qguard +a
94 should print -a
38 echo % should print +a
95
39 hg qguard
96 $ hg qguard c.patch
40 hg qpop
97 c.patch: -a
98
99
100 should skip c.patch
101
102 $ hg qpush -a
103 applying b.patch
104 skipping c.patch - guarded by '-a'
105 now at: b.patch
41
106
42 echo % should fail
107 should display b.patch
43 hg qpush a.patch
108
109 $ hg qtop
110 b.patch
111
112 $ hg qguard -n c.patch
113
114 should push c.patch
44
115
45 hg qguard a.patch
116 $ hg qpush -a
46 echo % should push b.patch
117 applying c.patch
47 hg qpush
118 now at: c.patch
119
120 $ hg qpop -a
121 popping c.patch
122 popping b.patch
123 popping a.patch
124 patch queue now empty
125 $ hg qselect -n
126 guards deactivated
127 number of unguarded, unapplied patches has changed from 3 to 2
128
129 should push all
48
130
49 hg qpop
131 $ hg qpush -a
50 echo % test selection of an empty guard
132 applying b.patch
51 hg qselect ""
133 applying c.patch
52 hg qselect a
134 now at: c.patch
53 echo % should push a.patch
135
54 hg qpush
136 $ hg qpop -a
137 popping c.patch
138 popping b.patch
139 patch queue now empty
140 $ hg qguard a.patch +1
141 $ hg qguard b.patch +2
142 $ hg qselect 1
143 number of unguarded, unapplied patches has changed from 1 to 2
55
144
56 hg qguard -- c.patch -a
145 should push a.patch, not b.patch
57 echo % should print -a
146
58 hg qguard c.patch
147 $ hg qpush
148 applying a.patch
149 now at: a.patch
150 $ hg qpush
151 applying c.patch
152 now at: c.patch
153 $ hg qpop -a
154 popping c.patch
155 popping a.patch
156 patch queue now empty
157
158 $ hg qselect 2
59
159
60 echo % should skip c.patch
160 should push b.patch
61 hg qpush -a
161
62 echo % should display b.patch
162 $ hg qpush
63 hg qtop
163 applying b.patch
164 now at: b.patch
165 $ hg qpush -a
166 applying c.patch
167 now at: c.patch
168
169 Used to be an issue with holes in the patch sequence
170 So, put one hole on the base and ask for topmost patch.
64
171
65 hg qguard -n c.patch
172 $ hg qtop
66 echo % should push c.patch
173 c.patch
67 hg qpush -a
174 $ hg qpop -a
175 popping c.patch
176 popping b.patch
177 patch queue now empty
178
179 $ hg qselect 1 2
180 number of unguarded, unapplied patches has changed from 2 to 3
181
182 should push a.patch, b.patch
68
183
69 hg qpop -a
184 $ hg qpush
70 hg qselect -n
185 applying a.patch
71 echo % should push all
186 now at: a.patch
72 hg qpush -a
187 $ hg qpush
188 applying b.patch
189 now at: b.patch
190 $ hg qpop -a
191 popping b.patch
192 popping a.patch
193 patch queue now empty
194
195 $ hg qguard -- a.patch +1 +2 -3
196 $ hg qselect 1 2 3
197 number of unguarded, unapplied patches has changed from 3 to 2
73
198
74 hg qpop -a
199
75 hg qguard a.patch +1
200 list patches and guards
76 hg qguard b.patch +2
201
77 hg qselect 1
202 $ hg qguard -l
78 echo % should push a.patch, not b.patch
203 a.patch: +1 +2 -3
79 hg qpush
204 b.patch: +2
80 hg qpush
205 c.patch: unguarded
81 hg qpop -a
206
207 have at least one patch applied to test coloring
208
209 $ hg qpush
210 applying b.patch
211 now at: b.patch
212
213 list patches and guards with color
82
214
83 hg qselect 2
215 $ hg --config extensions.color= qguard --config color.mode=ansi \
84 echo % should push b.patch
216 > -l --color=always
85 hg qpush
217 a.patch: +1 +2 -3
86 hg qpush -a
218 b.patch: +2
87 # Used to be an issue with holes in the patch sequence
219 c.patch: unguarded
88 # So, put one hole on the base and ask for topmost patch.
220
89 hg qtop
221 should pop b.patch
90 hg qpop -a
222
223 $ hg qpop
224 popping b.patch
225 patch queue now empty
226
227 list series
228
229 $ hg qseries -v
230 0 G a.patch
231 1 U b.patch
232 2 U c.patch
233
234 list guards
235
236 $ hg qselect
237 1
238 2
239 3
91
240
92 hg qselect 1 2
241 should push b.patch
93 echo % should push a.patch, b.patch
242
94 hg qpush
243 $ hg qpush
95 hg qpush
244 applying b.patch
96 hg qpop -a
245 now at: b.patch
97
246
98 hg qguard -- a.patch +1 +2 -3
247 $ hg qpush -a
99 hg qselect 1 2 3
248 applying c.patch
249 now at: c.patch
250 $ hg qselect -n --reapply
251 guards deactivated
252 popping guarded patches
253 popping c.patch
254 popping b.patch
255 patch queue now empty
256 reapplying unguarded patches
257 applying c.patch
258 now at: c.patch
259
260 guards in series file: +1 +2 -3
261
262 $ hg qselect -s
263 +1
264 +2
265 -3
266
267 should show c.patch
100
268
101 echo % list patches and guards
269 $ hg qapplied
102 hg qguard -l
270 c.patch
103 echo % have at least one patch applied to test coloring
271
104 hg qpush
272 $ hg qrename a.patch new.patch
105 echo % list patches and guards with color
273
106 hg --config extensions.color= qguard --config color.mode=ansi \
274 should show :
107 -l --color=always
275
108 echo % should pop b.patch
276
109 hg qpop
277 new.patch: +1 +2 -3
110 echo % list series
278
111 hg qseries -v
279
112 echo % list guards
280 b.patch: +2
113 hg qselect
281
114 echo % should push b.patch
282
115 hg qpush
283 c.patch: unguarded
284
285 $ hg qguard -l
286 new.patch: +1 +2 -3
287 b.patch: +2
288 c.patch: unguarded
289
290 $ hg qnew d.patch
291 $ hg qpop
292 popping d.patch
293 now at: c.patch
116
294
117 hg qpush -a
295 should show new.patch and b.patch as Guarded, c.patch as Applied
118 hg qselect -n --reapply
296
119 echo % guards in series file: +1 +2 -3
297
120 hg qselect -s
298 and d.patch as Unapplied
121 echo % should show c.patch
299
122 hg qapplied
300 $ hg qseries -v
301 0 G new.patch
302 1 G b.patch
303 2 A c.patch
304 3 U d.patch
305
306 qseries again, but with color
307
308 $ hg --config extensions.color= qseries -v --color=always
309 0 G new.patch
310 1 G b.patch
311 2 A c.patch
312 3 U d.patch
313
314 $ hg qguard d.patch +2
315
316 new.patch, b.patch: Guarded. c.patch: Applied. d.patch: Guarded.
317
318 $ hg qseries -v
319 0 G new.patch
320 1 G b.patch
321 2 A c.patch
322 3 G d.patch
123
323
124 hg qrename a.patch new.patch
324 $ qappunappv()
125 echo % should show :
325 > {
126 echo % new.patch: +1 +2 -3
326 > for command in qapplied "qapplied -v" qunapplied "qunapplied -v"; do
127 echo % b.patch: +2
327 > echo % hg $command
128 echo % c.patch: unguarded
328 > hg $command
129 hg qguard -l
329 > done
130
330 > }
131 hg qnew d.patch
132 hg qpop
133 echo % should show new.patch and b.patch as Guarded, c.patch as Applied
134 echo % and d.patch as Unapplied
135 hg qseries -v
136 echo % qseries again, but with color
137 hg --config extensions.color= qseries -v --color=always
138
139 hg qguard d.patch +2
140 echo % new.patch, b.patch: Guarded. c.patch: Applied. d.patch: Guarded.
141 hg qseries -v
142
331
143 qappunappv()
332 $ hg qpop -a
144 {
333 popping c.patch
145 for command in qapplied "qapplied -v" qunapplied "qunapplied -v"; do
334 patch queue now empty
146 echo % hg $command
335 $ hg qguard -l
147 hg $command
336 new.patch: +1 +2 -3
148 done
337 b.patch: +2
149 }
338 c.patch: unguarded
339 d.patch: +2
340 $ qappunappv
341 % hg qapplied
342 % hg qapplied -v
343 % hg qunapplied
344 c.patch
345 % hg qunapplied -v
346 0 G new.patch
347 1 G b.patch
348 2 U c.patch
349 3 G d.patch
350 $ hg qselect 1
351 number of unguarded, unapplied patches has changed from 1 to 2
352 $ qappunappv
353 % hg qapplied
354 % hg qapplied -v
355 % hg qunapplied
356 new.patch
357 c.patch
358 % hg qunapplied -v
359 0 U new.patch
360 1 G b.patch
361 2 U c.patch
362 3 G d.patch
363 $ hg qpush -a
364 applying new.patch
365 skipping b.patch - guarded by ['+2']
366 applying c.patch
367 skipping d.patch - guarded by ['+2']
368 now at: c.patch
369 $ qappunappv
370 % hg qapplied
371 new.patch
372 c.patch
373 % hg qapplied -v
374 0 A new.patch
375 1 G b.patch
376 2 A c.patch
377 % hg qunapplied
378 % hg qunapplied -v
379 3 G d.patch
380 $ hg qselect 2
381 number of unguarded, unapplied patches has changed from 0 to 1
382 number of guarded, applied patches has changed from 1 to 0
383 $ qappunappv
384 % hg qapplied
385 new.patch
386 c.patch
387 % hg qapplied -v
388 0 A new.patch
389 1 U b.patch
390 2 A c.patch
391 % hg qunapplied
392 d.patch
393 % hg qunapplied -v
394 3 U d.patch
150
395
151 hg qpop -a
396 $ for patch in `hg qseries`; do
152 hg qguard -l
397 > echo % hg qapplied $patch
153 qappunappv
398 > hg qapplied $patch
154 hg qselect 1
399 > echo % hg qunapplied $patch
155 qappunappv
400 > hg qunapplied $patch
156 hg qpush -a
401 > done
157 qappunappv
402 % hg qapplied new.patch
158 hg qselect 2
403 new.patch
159 qappunappv
404 % hg qunapplied new.patch
405 b.patch
406 d.patch
407 % hg qapplied b.patch
408 new.patch
409 % hg qunapplied b.patch
410 d.patch
411 % hg qapplied c.patch
412 new.patch
413 c.patch
414 % hg qunapplied c.patch
415 d.patch
416 % hg qapplied d.patch
417 new.patch
418 c.patch
419 % hg qunapplied d.patch
160
420
161 for patch in `hg qseries`; do
421
162 echo % hg qapplied $patch
422 hg qseries -m: only b.patch should be shown
163 hg qapplied $patch
423 the guards file was not ignored in the past
164 echo % hg qunapplied $patch
165 hg qunapplied $patch
166 done
167
424
168 echo % hg qseries -m: only b.patch should be shown
425 $ hg qdelete -k b.patch
169 echo the guards file was not ignored in the past
426 $ hg qseries -m
170 hg qdelete -k b.patch
427 b.patch
171 hg qseries -m
428
172 echo % hg qseries -m with color
429 hg qseries -m with color
173 hg --config extensions.color= qseries -m --color=always
430
431 $ hg --config extensions.color= qseries -m --color=always
432 b.patch
1 NO CONTENT: file was removed
NO CONTENT: file was removed
General Comments 0
You need to be logged in to leave comments. Login now