##// END OF EJS Templates
test: further fixes to matching for run-tests.py bug...
marmoute -
r42942:2c1a484c stable
parent child Browse files
Show More
@@ -1,2005 +1,2005 b''
1 This file tests the behavior of run-tests.py itself.
1 This file tests the behavior of run-tests.py itself.
2
2
3 Avoid interference from actual test env:
3 Avoid interference from actual test env:
4
4
5 $ . "$TESTDIR/helper-runtests.sh"
5 $ . "$TESTDIR/helper-runtests.sh"
6
6
7 Smoke test with install
7 Smoke test with install
8 ============
8 ============
9 $ "$PYTHON" $TESTDIR/run-tests.py $HGTEST_RUN_TESTS_PURE -l
9 $ "$PYTHON" $TESTDIR/run-tests.py $HGTEST_RUN_TESTS_PURE -l
10 running 0 tests using 0 parallel processes
10 running 0 tests using 0 parallel processes
11
11
12 # Ran 0 tests, 0 skipped, 0 failed.
12 # Ran 0 tests, 0 skipped, 0 failed.
13
13
14 Define a helper to avoid the install step
14 Define a helper to avoid the install step
15 =============
15 =============
16 $ rt()
16 $ rt()
17 > {
17 > {
18 > "$PYTHON" $TESTDIR/run-tests.py --with-hg=`which hg` -j1 "$@"
18 > "$PYTHON" $TESTDIR/run-tests.py --with-hg=`which hg` -j1 "$@"
19 > }
19 > }
20
20
21 error paths
21 error paths
22
22
23 #if symlink
23 #if symlink
24 $ ln -s `which true` hg
24 $ ln -s `which true` hg
25 $ "$PYTHON" $TESTDIR/run-tests.py --with-hg=./hg
25 $ "$PYTHON" $TESTDIR/run-tests.py --with-hg=./hg
26 warning: --with-hg should specify an hg script
26 warning: --with-hg should specify an hg script
27 running 0 tests using 0 parallel processes
27 running 0 tests using 0 parallel processes
28
28
29 # Ran 0 tests, 0 skipped, 0 failed.
29 # Ran 0 tests, 0 skipped, 0 failed.
30 $ rm hg
30 $ rm hg
31 #endif
31 #endif
32
32
33 #if execbit
33 #if execbit
34 $ touch hg
34 $ touch hg
35 $ "$PYTHON" $TESTDIR/run-tests.py --with-hg=./hg
35 $ "$PYTHON" $TESTDIR/run-tests.py --with-hg=./hg
36 usage: run-tests.py [options] [tests]
36 usage: run-tests.py [options] [tests]
37 run-tests.py: error: --with-hg must specify an executable hg script
37 run-tests.py: error: --with-hg must specify an executable hg script
38 [2]
38 [2]
39 $ rm hg
39 $ rm hg
40 #endif
40 #endif
41
41
42 Features for testing optional lines
42 Features for testing optional lines
43 ===================================
43 ===================================
44
44
45 $ cat > hghaveaddon.py <<EOF
45 $ cat > hghaveaddon.py <<EOF
46 > import hghave
46 > import hghave
47 > @hghave.check("custom", "custom hghave feature")
47 > @hghave.check("custom", "custom hghave feature")
48 > def has_custom():
48 > def has_custom():
49 > return True
49 > return True
50 > @hghave.check("missing", "missing hghave feature")
50 > @hghave.check("missing", "missing hghave feature")
51 > def has_missing():
51 > def has_missing():
52 > return False
52 > return False
53 > EOF
53 > EOF
54
54
55 an empty test
55 an empty test
56 =======================
56 =======================
57
57
58 $ touch test-empty.t
58 $ touch test-empty.t
59 $ rt
59 $ rt
60 running 1 tests using 1 parallel processes
60 running 1 tests using 1 parallel processes
61 .
61 .
62 # Ran 1 tests, 0 skipped, 0 failed.
62 # Ran 1 tests, 0 skipped, 0 failed.
63 $ rm test-empty.t
63 $ rm test-empty.t
64
64
65 a succesful test
65 a succesful test
66 =======================
66 =======================
67
67
68 $ cat > test-success.t << EOF
68 $ cat > test-success.t << EOF
69 > $ echo babar
69 > $ echo babar
70 > babar
70 > babar
71 > $ echo xyzzy
71 > $ echo xyzzy
72 > dont_print (?)
72 > dont_print (?)
73 > nothing[42]line (re) (?)
73 > nothing[42]line (re) (?)
74 > never*happens (glob) (?)
74 > never*happens (glob) (?)
75 > more_nothing (?)
75 > more_nothing (?)
76 > xyzzy
76 > xyzzy
77 > nor this (?)
77 > nor this (?)
78 > $ printf 'abc\ndef\nxyz\n'
78 > $ printf 'abc\ndef\nxyz\n'
79 > 123 (?)
79 > 123 (?)
80 > abc
80 > abc
81 > def (?)
81 > def (?)
82 > 456 (?)
82 > 456 (?)
83 > xyz
83 > xyz
84 > $ printf 'zyx\nwvu\ntsr\n'
84 > $ printf 'zyx\nwvu\ntsr\n'
85 > abc (?)
85 > abc (?)
86 > zyx (custom !)
86 > zyx (custom !)
87 > wvu
87 > wvu
88 > no_print (no-custom !)
88 > no_print (no-custom !)
89 > tsr (no-missing !)
89 > tsr (no-missing !)
90 > missing (missing !)
90 > missing (missing !)
91 > EOF
91 > EOF
92
92
93 $ rt
93 $ rt
94 running 1 tests using 1 parallel processes
94 running 1 tests using 1 parallel processes
95 .
95 .
96 # Ran 1 tests, 0 skipped, 0 failed.
96 # Ran 1 tests, 0 skipped, 0 failed.
97
97
98 failing test
98 failing test
99 ==================
99 ==================
100
100
101 test churn with globs
101 test churn with globs
102 $ cat > test-failure.t <<EOF
102 $ cat > test-failure.t <<EOF
103 > $ echo "bar-baz"; echo "bar-bad"; echo foo
103 > $ echo "bar-baz"; echo "bar-bad"; echo foo
104 > bar*bad (glob)
104 > bar*bad (glob)
105 > bar*baz (glob)
105 > bar*baz (glob)
106 > | fo (re)
106 > | fo (re)
107 > EOF
107 > EOF
108 $ rt test-failure.t
108 $ rt test-failure.t
109 running 1 tests using 1 parallel processes
109 running 1 tests using 1 parallel processes
110
110
111 --- $TESTTMP/test-failure.t
111 --- $TESTTMP/test-failure.t
112 +++ $TESTTMP/test-failure.t.err
112 +++ $TESTTMP/test-failure.t.err
113 @@ -1,4 +1,4 @@
113 @@ -1,4 +1,4 @@
114 $ echo "bar-baz"; echo "bar-bad"; echo foo
114 $ echo "bar-baz"; echo "bar-bad"; echo foo
115 + bar*baz (glob)
115 + bar*baz (glob)
116 bar*bad (glob)
116 bar*bad (glob)
117 - bar*baz (glob)
117 - bar*baz (glob)
118 - | fo (re)
118 - | fo (re)
119 + foo
119 + foo
120
120
121 ERROR: test-failure.t output changed
121 ERROR: test-failure.t output changed
122 !
122 !
123 Failed test-failure.t: output changed
123 Failed test-failure.t: output changed
124 # Ran 1 tests, 0 skipped, 1 failed.
124 # Ran 1 tests, 0 skipped, 1 failed.
125 python hash seed: * (glob)
125 python hash seed: * (glob)
126 [1]
126 [1]
127
127
128 test how multiple globs gets matched with lines in output
128 test how multiple globs gets matched with lines in output
129 $ cat > test-failure-globs.t <<EOF
129 $ cat > test-failure-globs.t <<EOF
130 > $ echo "context"; echo "context"; \
130 > $ echo "context"; echo "context"; \
131 > echo "key: 1"; echo "value: not a"; \
131 > echo "key: 1"; echo "value: not a"; \
132 > echo "key: 2"; echo "value: not b"; \
132 > echo "key: 2"; echo "value: not b"; \
133 > echo "key: 3"; echo "value: c"; \
133 > echo "key: 3"; echo "value: c"; \
134 > echo "key: 4"; echo "value: d"
134 > echo "key: 4"; echo "value: d"
135 > context
135 > context
136 > context
136 > context
137 > key: 1
137 > key: 1
138 > value: a
138 > value: a
139 > key: 2
139 > key: 2
140 > value: b
140 > value: b
141 > key: 3
141 > key: 3
142 > value: * (glob)
142 > value: * (glob)
143 > key: 4
143 > key: 4
144 > value: * (glob)
144 > value: * (glob)
145 > EOF
145 > EOF
146 $ rt test-failure-globs.t
146 $ rt test-failure-globs.t
147 running 1 tests using 1 parallel processes
147 running 1 tests using 1 parallel processes
148
148
149 --- $TESTTMP/test-failure-globs.t
149 --- $TESTTMP/test-failure-globs.t
150 +++ $TESTTMP/test-failure-globs.t.err
150 +++ $TESTTMP/test-failure-globs.t.err
151 @@ -2,9 +2,9 @@
151 @@ -2,9 +2,9 @@
152 context
152 context
153 context
153 context
154 key: 1
154 key: 1
155 - value: a
155 - value: a
156 + value: not a
156 + value: not a
157 key: 2
157 key: 2
158 - value: b
158 - value: b
159 + value: not b
159 + value: not b
160 key: 3
160 key: 3
161 value: * (glob)
161 value: * (glob)
162 key: 4
162 key: 4
163
163
164 ERROR: test-failure-globs.t output changed
164 ERROR: test-failure-globs.t output changed
165 !
165 !
166 Failed test-failure-globs.t: output changed
166 Failed test-failure-globs.t: output changed
167 # Ran 1 tests, 0 skipped, 1 failed.
167 # Ran 1 tests, 0 skipped, 1 failed.
168 python hash seed: * (glob)
168 python hash seed: * (glob)
169 [1]
169 [1]
170 $ rm test-failure-globs.t
170 $ rm test-failure-globs.t
171
171
172 test diff colorisation
172 test diff colorisation
173
173
174 #if no-windows pygments
174 #if no-windows pygments
175 $ rt test-failure.t --color always
175 $ rt test-failure.t --color always
176 running 1 tests using 1 parallel processes
176 running 1 tests using 1 parallel processes
177
177
178 \x1b[38;5;124m--- $TESTTMP/test-failure.t\x1b[39m (esc)
178 \x1b[38;5;124m--- $TESTTMP/test-failure.t\x1b[39m (esc)
179 \x1b[38;5;34m+++ $TESTTMP/test-failure.t.err\x1b[39m (esc)
179 \x1b[38;5;34m+++ $TESTTMP/test-failure.t.err\x1b[39m (esc)
180 \x1b[38;5;90;01m@@ -1,4 +1,4 @@\x1b[39;00m (esc)
180 \x1b[38;5;90;01m@@ -1,4 +1,4 @@\x1b[39;00m (esc)
181 $ echo "bar-baz"; echo "bar-bad"; echo foo
181 $ echo "bar-baz"; echo "bar-bad"; echo foo
182 \x1b[38;5;34m+ bar*baz (glob)\x1b[39m (esc)
182 \x1b[38;5;34m+ bar*baz (glob)\x1b[39m (esc)
183 bar*bad (glob)
183 bar*bad (glob)
184 \x1b[38;5;124m- bar*baz (glob)\x1b[39m (esc)
184 \x1b[38;5;124m- bar*baz (glob)\x1b[39m (esc)
185 \x1b[38;5;124m- | fo (re)\x1b[39m (esc)
185 \x1b[38;5;124m- | fo (re)\x1b[39m (esc)
186 \x1b[38;5;34m+ foo\x1b[39m (esc)
186 \x1b[38;5;34m+ foo\x1b[39m (esc)
187
187
188 \x1b[38;5;88mERROR: \x1b[39m\x1b[38;5;9mtest-failure.t\x1b[39m\x1b[38;5;88m output changed\x1b[39m (esc)
188 \x1b[38;5;88mERROR: \x1b[39m\x1b[38;5;9mtest-failure.t\x1b[39m\x1b[38;5;88m output changed\x1b[39m (esc)
189 !
189 !
190 \x1b[38;5;88mFailed \x1b[39m\x1b[38;5;9mtest-failure.t\x1b[39m\x1b[38;5;88m: output changed\x1b[39m (esc)
190 \x1b[38;5;88mFailed \x1b[39m\x1b[38;5;9mtest-failure.t\x1b[39m\x1b[38;5;88m: output changed\x1b[39m (esc)
191 # Ran 1 tests, 0 skipped, 1 failed.
191 # Ran 1 tests, 0 skipped, 1 failed.
192 python hash seed: * (glob)
192 python hash seed: * (glob)
193 [1]
193 [1]
194
194
195 $ rt test-failure.t 2> tmp.log
195 $ rt test-failure.t 2> tmp.log
196 running 1 tests using 1 parallel processes
196 running 1 tests using 1 parallel processes
197 [1]
197 [1]
198 $ cat tmp.log
198 $ cat tmp.log
199
199
200 --- $TESTTMP/test-failure.t
200 --- $TESTTMP/test-failure.t
201 +++ $TESTTMP/test-failure.t.err
201 +++ $TESTTMP/test-failure.t.err
202 @@ -1,4 +1,4 @@
202 @@ -1,4 +1,4 @@
203 $ echo "bar-baz"; echo "bar-bad"; echo foo
203 $ echo "bar-baz"; echo "bar-bad"; echo foo
204 + bar*baz (glob)
204 + bar*baz (glob)
205 bar*bad (glob)
205 bar*bad (glob)
206 - bar*baz (glob)
206 - bar*baz (glob)
207 - | fo (re)
207 - | fo (re)
208 + foo
208 + foo
209
209
210 ERROR: test-failure.t output changed
210 ERROR: test-failure.t output changed
211 !
211 !
212 Failed test-failure.t: output changed
212 Failed test-failure.t: output changed
213 # Ran 1 tests, 0 skipped, 1 failed.
213 # Ran 1 tests, 0 skipped, 1 failed.
214 python hash seed: * (glob)
214 python hash seed: * (glob)
215 #endif
215 #endif
216
216
217 $ cat > test-failure.t << EOF
217 $ cat > test-failure.t << EOF
218 > $ true
218 > $ true
219 > should go away (true !)
219 > should go away (true !)
220 > $ true
220 > $ true
221 > should stay (false !)
221 > should stay (false !)
222 >
222 >
223 > Should remove first line, not second or third
223 > Should remove first line, not second or third
224 > $ echo 'testing'
224 > $ echo 'testing'
225 > baz*foo (glob) (true !)
225 > baz*foo (glob) (true !)
226 > foobar*foo (glob) (false !)
226 > foobar*foo (glob) (false !)
227 > te*ting (glob) (true !)
227 > te*ting (glob) (true !)
228 >
228 >
229 > Should keep first two lines, remove third and last
229 > Should keep first two lines, remove third and last
230 > $ echo 'testing'
230 > $ echo 'testing'
231 > test.ng (re) (true !)
231 > test.ng (re) (true !)
232 > foo.ar (re) (false !)
232 > foo.ar (re) (false !)
233 > b.r (re) (true !)
233 > b.r (re) (true !)
234 > missing (?)
234 > missing (?)
235 > awol (true !)
235 > awol (true !)
236 >
236 >
237 > The "missing" line should stay, even though awol is dropped
237 > The "missing" line should stay, even though awol is dropped
238 > $ echo 'testing'
238 > $ echo 'testing'
239 > test.ng (re) (true !)
239 > test.ng (re) (true !)
240 > foo.ar (?)
240 > foo.ar (?)
241 > awol
241 > awol
242 > missing (?)
242 > missing (?)
243 > EOF
243 > EOF
244 $ rt test-failure.t
244 $ rt test-failure.t
245 running 1 tests using 1 parallel processes
245 running 1 tests using 1 parallel processes
246
246
247 --- $TESTTMP/test-failure.t
247 --- $TESTTMP/test-failure.t
248 +++ $TESTTMP/test-failure.t.err
248 +++ $TESTTMP/test-failure.t.err
249 @@ -1,11 +1,9 @@
249 @@ -1,11 +1,9 @@
250 $ true
250 $ true
251 - should go away (true !)
251 - should go away (true !)
252 $ true
252 $ true
253 should stay (false !)
253 should stay (false !)
254
254
255 Should remove first line, not second or third
255 Should remove first line, not second or third
256 $ echo 'testing'
256 $ echo 'testing'
257 - baz*foo (glob) (true !)
257 - baz*foo (glob) (true !)
258 foobar*foo (glob) (false !)
258 foobar*foo (glob) (false !)
259 te*ting (glob) (true !)
259 te*ting (glob) (true !)
260
260
261 foo.ar (re) (false !)
261 foo.ar (re) (false !)
262 missing (?)
262 missing (?)
263 @@ -13,13 +11,10 @@
263 @@ -13,13 +11,10 @@
264 $ echo 'testing'
264 $ echo 'testing'
265 test.ng (re) (true !)
265 test.ng (re) (true !)
266 foo.ar (re) (false !)
266 foo.ar (re) (false !)
267 - b.r (re) (true !)
267 - b.r (re) (true !)
268 missing (?)
268 missing (?)
269 - awol (true !)
269 - awol (true !)
270
270
271 The "missing" line should stay, even though awol is dropped
271 The "missing" line should stay, even though awol is dropped
272 $ echo 'testing'
272 $ echo 'testing'
273 test.ng (re) (true !)
273 test.ng (re) (true !)
274 foo.ar (?)
274 foo.ar (?)
275 - awol
275 - awol
276 missing (?)
276 missing (?)
277
277
278 ERROR: test-failure.t output changed
278 ERROR: test-failure.t output changed
279 !
279 !
280 Failed test-failure.t: output changed
280 Failed test-failure.t: output changed
281 # Ran 1 tests, 0 skipped, 1 failed.
281 # Ran 1 tests, 0 skipped, 1 failed.
282 python hash seed: * (glob)
282 python hash seed: * (glob)
283 [1]
283 [1]
284
284
285 basic failing test
285 basic failing test
286 $ cat > test-failure.t << EOF
286 $ cat > test-failure.t << EOF
287 > $ echo babar
287 > $ echo babar
288 > rataxes
288 > rataxes
289 > This is a noop statement so that
289 > This is a noop statement so that
290 > this test is still more bytes than success.
290 > this test is still more bytes than success.
291 > pad pad pad pad............................................................
291 > pad pad pad pad............................................................
292 > pad pad pad pad............................................................
292 > pad pad pad pad............................................................
293 > pad pad pad pad............................................................
293 > pad pad pad pad............................................................
294 > pad pad pad pad............................................................
294 > pad pad pad pad............................................................
295 > pad pad pad pad............................................................
295 > pad pad pad pad............................................................
296 > pad pad pad pad............................................................
296 > pad pad pad pad............................................................
297 > EOF
297 > EOF
298
298
299 >>> fh = open('test-failure-unicode.t', 'wb')
299 >>> fh = open('test-failure-unicode.t', 'wb')
300 >>> fh.write(u' $ echo babar\u03b1\n'.encode('utf-8')) and None
300 >>> fh.write(u' $ echo babar\u03b1\n'.encode('utf-8')) and None
301 >>> fh.write(u' l\u03b5\u03b5t\n'.encode('utf-8')) and None
301 >>> fh.write(u' l\u03b5\u03b5t\n'.encode('utf-8')) and None
302
302
303 $ rt
303 $ rt
304 running 3 tests using 1 parallel processes
304 running 3 tests using 1 parallel processes
305
305
306 --- $TESTTMP/test-failure.t
306 --- $TESTTMP/test-failure.t
307 +++ $TESTTMP/test-failure.t.err
307 +++ $TESTTMP/test-failure.t.err
308 @@ -1,5 +1,5 @@
308 @@ -1,5 +1,5 @@
309 $ echo babar
309 $ echo babar
310 - rataxes
310 - rataxes
311 + babar
311 + babar
312 This is a noop statement so that
312 This is a noop statement so that
313 this test is still more bytes than success.
313 this test is still more bytes than success.
314 pad pad pad pad............................................................
314 pad pad pad pad............................................................
315
315
316 ERROR: test-failure.t output changed
316 ERROR: test-failure.t output changed
317 !.
317 !.
318 --- $TESTTMP/test-failure-unicode.t
318 --- $TESTTMP/test-failure-unicode.t
319 +++ $TESTTMP/test-failure-unicode.t.err
319 +++ $TESTTMP/test-failure-unicode.t.err
320 @@ -1,2 +1,2 @@
320 @@ -1,2 +1,2 @@
321 $ echo babar\xce\xb1 (esc)
321 $ echo babar\xce\xb1 (esc)
322 - l\xce\xb5\xce\xb5t (esc)
322 - l\xce\xb5\xce\xb5t (esc)
323 + babar\xce\xb1 (esc)
323 + babar\xce\xb1 (esc)
324
324
325 ERROR: test-failure-unicode.t output changed
325 ERROR: test-failure-unicode.t output changed
326 !
326 !
327 Failed test-failure-unicode.t: output changed
327 Failed test-failure-unicode.t: output changed
328 Failed test-failure.t: output changed
328 Failed test-failure.t: output changed
329 # Ran 3 tests, 0 skipped, 2 failed.
329 # Ran 3 tests, 0 skipped, 2 failed.
330 python hash seed: * (glob)
330 python hash seed: * (glob)
331 [1]
331 [1]
332
332
333 test --outputdir
333 test --outputdir
334 $ mkdir output
334 $ mkdir output
335 $ rt --outputdir output
335 $ rt --outputdir output
336 running 3 tests using 1 parallel processes
336 running 3 tests using 1 parallel processes
337
337
338 --- $TESTTMP/test-failure.t
338 --- $TESTTMP/test-failure.t
339 +++ $TESTTMP/output/test-failure.t.err
339 +++ $TESTTMP/output/test-failure.t.err
340 @@ -1,5 +1,5 @@
340 @@ -1,5 +1,5 @@
341 $ echo babar
341 $ echo babar
342 - rataxes
342 - rataxes
343 + babar
343 + babar
344 This is a noop statement so that
344 This is a noop statement so that
345 this test is still more bytes than success.
345 this test is still more bytes than success.
346 pad pad pad pad............................................................
346 pad pad pad pad............................................................
347
347
348 ERROR: test-failure.t output changed
348 ERROR: test-failure.t output changed
349 !.
349 !.
350 --- $TESTTMP/test-failure-unicode.t
350 --- $TESTTMP/test-failure-unicode.t
351 +++ $TESTTMP/output/test-failure-unicode.t.err
351 +++ $TESTTMP/output/test-failure-unicode.t.err
352 @@ -1,2 +1,2 @@
352 @@ -1,2 +1,2 @@
353 $ echo babar\xce\xb1 (esc)
353 $ echo babar\xce\xb1 (esc)
354 - l\xce\xb5\xce\xb5t (esc)
354 - l\xce\xb5\xce\xb5t (esc)
355 + babar\xce\xb1 (esc)
355 + babar\xce\xb1 (esc)
356
356
357 ERROR: test-failure-unicode.t output changed
357 ERROR: test-failure-unicode.t output changed
358 !
358 !
359 Failed test-failure-unicode.t: output changed
359 Failed test-failure-unicode.t: output changed
360 Failed test-failure.t: output changed
360 Failed test-failure.t: output changed
361 # Ran 3 tests, 0 skipped, 2 failed.
361 # Ran 3 tests, 0 skipped, 2 failed.
362 python hash seed: * (glob)
362 python hash seed: * (glob)
363 [1]
363 [1]
364 $ ls -a output
364 $ ls -a output
365 .
365 .
366 ..
366 ..
367 .testtimes
367 .testtimes
368 test-failure-unicode.t.err
368 test-failure-unicode.t.err
369 test-failure.t.err
369 test-failure.t.err
370
370
371 test --xunit support
371 test --xunit support
372 $ rt --xunit=xunit.xml
372 $ rt --xunit=xunit.xml
373 running 3 tests using 1 parallel processes
373 running 3 tests using 1 parallel processes
374
374
375 --- $TESTTMP/test-failure.t
375 --- $TESTTMP/test-failure.t
376 +++ $TESTTMP/test-failure.t.err
376 +++ $TESTTMP/test-failure.t.err
377 @@ -1,5 +1,5 @@
377 @@ -1,5 +1,5 @@
378 $ echo babar
378 $ echo babar
379 - rataxes
379 - rataxes
380 + babar
380 + babar
381 This is a noop statement so that
381 This is a noop statement so that
382 this test is still more bytes than success.
382 this test is still more bytes than success.
383 pad pad pad pad............................................................
383 pad pad pad pad............................................................
384
384
385 ERROR: test-failure.t output changed
385 ERROR: test-failure.t output changed
386 !.
386 !.
387 --- $TESTTMP/test-failure-unicode.t
387 --- $TESTTMP/test-failure-unicode.t
388 +++ $TESTTMP/test-failure-unicode.t.err
388 +++ $TESTTMP/test-failure-unicode.t.err
389 @@ -1,2 +1,2 @@
389 @@ -1,2 +1,2 @@
390 $ echo babar\xce\xb1 (esc)
390 $ echo babar\xce\xb1 (esc)
391 - l\xce\xb5\xce\xb5t (esc)
391 - l\xce\xb5\xce\xb5t (esc)
392 + babar\xce\xb1 (esc)
392 + babar\xce\xb1 (esc)
393
393
394 ERROR: test-failure-unicode.t output changed
394 ERROR: test-failure-unicode.t output changed
395 !
395 !
396 Failed test-failure-unicode.t: output changed
396 Failed test-failure-unicode.t: output changed
397 Failed test-failure.t: output changed
397 Failed test-failure.t: output changed
398 # Ran 3 tests, 0 skipped, 2 failed.
398 # Ran 3 tests, 0 skipped, 2 failed.
399 python hash seed: * (glob)
399 python hash seed: * (glob)
400 [1]
400 [1]
401 $ cat xunit.xml
401 $ cat xunit.xml
402 <?xml version="1.0" encoding="utf-8"?>
402 <?xml version="1.0" encoding="utf-8"?>
403 <testsuite errors="0" failures="2" name="run-tests" skipped="0" tests="3">
403 <testsuite errors="0" failures="2" name="run-tests" skipped="0" tests="3">
404 <testcase name="test-success.t" time="*"/> (glob)
404 <testcase name="test-success.t" time="*"/> (glob)
405 <testcase name="test-failure-unicode.t" time="*"> (glob)
405 <testcase name="test-failure-unicode.t" time="*"> (glob)
406 <failure message="output changed" type="output-mismatch">
406 <failure message="output changed" type="output-mismatch">
407 <![CDATA[--- $TESTTMP/test-failure-unicode.t
407 <![CDATA[--- $TESTTMP/test-failure-unicode.t
408 +++ $TESTTMP/test-failure-unicode.t.err
408 +++ $TESTTMP/test-failure-unicode.t.err
409 @@ -1,2 +1,2 @@
409 @@ -1,2 +1,2 @@
410 $ echo babar\xce\xb1 (esc)
410 $ echo babar\xce\xb1 (esc)
411 - l\xce\xb5\xce\xb5t (esc)
411 - l\xce\xb5\xce\xb5t (esc)
412 + babar\xce\xb1 (esc)
412 + babar\xce\xb1 (esc)
413 ]]> </failure>
413 ]]> </failure>
414 </testcase>
414 </testcase>
415 <testcase name="test-failure.t" time="*"> (glob)
415 <testcase name="test-failure.t" time="*"> (glob)
416 <failure message="output changed" type="output-mismatch">
416 <failure message="output changed" type="output-mismatch">
417 <![CDATA[--- $TESTTMP/test-failure.t
417 <![CDATA[--- $TESTTMP/test-failure.t
418 +++ $TESTTMP/test-failure.t.err
418 +++ $TESTTMP/test-failure.t.err
419 @@ -1,5 +1,5 @@
419 @@ -1,5 +1,5 @@
420 $ echo babar
420 $ echo babar
421 - rataxes
421 - rataxes
422 + babar
422 + babar
423 This is a noop statement so that
423 This is a noop statement so that
424 this test is still more bytes than success.
424 this test is still more bytes than success.
425 pad pad pad pad............................................................
425 pad pad pad pad............................................................
426 ]]> </failure>
426 ]]> </failure>
427 </testcase>
427 </testcase>
428 </testsuite>
428 </testsuite>
429
429
430 $ cat .testtimes
430 $ cat .testtimes
431 test-empty.t * (glob)
431 test-empty.t * (glob)
432 test-failure-globs.t * (glob)
432 test-failure-globs.t * (glob)
433 test-failure-unicode.t * (glob)
433 test-failure-unicode.t * (glob)
434 test-failure.t * (glob)
434 test-failure.t * (glob)
435 test-success.t * (glob)
435 test-success.t * (glob)
436
436
437 $ rt --list-tests
437 $ rt --list-tests
438 test-failure-unicode.t
438 test-failure-unicode.t
439 test-failure.t
439 test-failure.t
440 test-success.t
440 test-success.t
441
441
442 $ rt --list-tests --json
442 $ rt --list-tests --json
443 test-failure-unicode.t
443 test-failure-unicode.t
444 test-failure.t
444 test-failure.t
445 test-success.t
445 test-success.t
446 $ cat report.json
446 $ cat report.json
447 testreport ={
447 testreport ={
448 "test-failure-unicode.t": {
448 "test-failure-unicode.t": {
449 "result": "success"
449 "result": "success"
450 },
450 },
451 "test-failure.t": {
451 "test-failure.t": {
452 "result": "success"
452 "result": "success"
453 },
453 },
454 "test-success.t": {
454 "test-success.t": {
455 "result": "success"
455 "result": "success"
456 }
456 }
457 } (no-eol)
457 } (no-eol)
458
458
459 $ rt --list-tests --xunit=xunit.xml
459 $ rt --list-tests --xunit=xunit.xml
460 test-failure-unicode.t
460 test-failure-unicode.t
461 test-failure.t
461 test-failure.t
462 test-success.t
462 test-success.t
463 $ cat xunit.xml
463 $ cat xunit.xml
464 <?xml version="1.0" encoding="utf-8"?>
464 <?xml version="1.0" encoding="utf-8"?>
465 <testsuite errors="0" failures="0" name="run-tests" skipped="0" tests="0">
465 <testsuite errors="0" failures="0" name="run-tests" skipped="0" tests="0">
466 <testcase name="test-failure-unicode.t"/>
466 <testcase name="test-failure-unicode.t"/>
467 <testcase name="test-failure.t"/>
467 <testcase name="test-failure.t"/>
468 <testcase name="test-success.t"/>
468 <testcase name="test-success.t"/>
469 </testsuite>
469 </testsuite>
470
470
471 $ rt --list-tests test-failure* --json --xunit=xunit.xml --outputdir output
471 $ rt --list-tests test-failure* --json --xunit=xunit.xml --outputdir output
472 test-failure-unicode.t
472 test-failure-unicode.t
473 test-failure.t
473 test-failure.t
474 $ cat output/report.json
474 $ cat output/report.json
475 testreport ={
475 testreport ={
476 "test-failure-unicode.t": {
476 "test-failure-unicode.t": {
477 "result": "success"
477 "result": "success"
478 },
478 },
479 "test-failure.t": {
479 "test-failure.t": {
480 "result": "success"
480 "result": "success"
481 }
481 }
482 } (no-eol)
482 } (no-eol)
483 $ cat xunit.xml
483 $ cat xunit.xml
484 <?xml version="1.0" encoding="utf-8"?>
484 <?xml version="1.0" encoding="utf-8"?>
485 <testsuite errors="0" failures="0" name="run-tests" skipped="0" tests="0">
485 <testsuite errors="0" failures="0" name="run-tests" skipped="0" tests="0">
486 <testcase name="test-failure-unicode.t"/>
486 <testcase name="test-failure-unicode.t"/>
487 <testcase name="test-failure.t"/>
487 <testcase name="test-failure.t"/>
488 </testsuite>
488 </testsuite>
489
489
490 $ rm test-failure-unicode.t
490 $ rm test-failure-unicode.t
491
491
492 test for --retest
492 test for --retest
493 ====================
493 ====================
494
494
495 $ rt --retest
495 $ rt --retest
496 running 2 tests using 1 parallel processes
496 running 2 tests using 1 parallel processes
497
497
498 --- $TESTTMP/test-failure.t
498 --- $TESTTMP/test-failure.t
499 +++ $TESTTMP/test-failure.t.err
499 +++ $TESTTMP/test-failure.t.err
500 @@ -1,5 +1,5 @@
500 @@ -1,5 +1,5 @@
501 $ echo babar
501 $ echo babar
502 - rataxes
502 - rataxes
503 + babar
503 + babar
504 This is a noop statement so that
504 This is a noop statement so that
505 this test is still more bytes than success.
505 this test is still more bytes than success.
506 pad pad pad pad............................................................
506 pad pad pad pad............................................................
507
507
508 ERROR: test-failure.t output changed
508 ERROR: test-failure.t output changed
509 !
509 !
510 Failed test-failure.t: output changed
510 Failed test-failure.t: output changed
511 # Ran 2 tests, 1 skipped, 1 failed.
511 # Ran 2 tests, 1 skipped, 1 failed.
512 python hash seed: * (glob)
512 python hash seed: * (glob)
513 [1]
513 [1]
514
514
515 --retest works with --outputdir
515 --retest works with --outputdir
516 $ rm -r output
516 $ rm -r output
517 $ mkdir output
517 $ mkdir output
518 $ mv test-failure.t.err output
518 $ mv test-failure.t.err output
519 $ rt --retest --outputdir output
519 $ rt --retest --outputdir output
520 running 2 tests using 1 parallel processes
520 running 2 tests using 1 parallel processes
521
521
522 --- $TESTTMP/test-failure.t
522 --- $TESTTMP/test-failure.t
523 +++ $TESTTMP/output/test-failure.t.err
523 +++ $TESTTMP/output/test-failure.t.err
524 @@ -1,5 +1,5 @@
524 @@ -1,5 +1,5 @@
525 $ echo babar
525 $ echo babar
526 - rataxes
526 - rataxes
527 + babar
527 + babar
528 This is a noop statement so that
528 This is a noop statement so that
529 this test is still more bytes than success.
529 this test is still more bytes than success.
530 pad pad pad pad............................................................
530 pad pad pad pad............................................................
531
531
532 ERROR: test-failure.t output changed
532 ERROR: test-failure.t output changed
533 !
533 !
534 Failed test-failure.t: output changed
534 Failed test-failure.t: output changed
535 # Ran 2 tests, 1 skipped, 1 failed.
535 # Ran 2 tests, 1 skipped, 1 failed.
536 python hash seed: * (glob)
536 python hash seed: * (glob)
537 [1]
537 [1]
538
538
539 Selecting Tests To Run
539 Selecting Tests To Run
540 ======================
540 ======================
541
541
542 successful
542 successful
543
543
544 $ rt test-success.t
544 $ rt test-success.t
545 running 1 tests using 1 parallel processes
545 running 1 tests using 1 parallel processes
546 .
546 .
547 # Ran 1 tests, 0 skipped, 0 failed.
547 # Ran 1 tests, 0 skipped, 0 failed.
548
548
549 success w/ keyword
549 success w/ keyword
550 $ rt -k xyzzy
550 $ rt -k xyzzy
551 running 2 tests using 1 parallel processes
551 running 2 tests using 1 parallel processes
552 .
552 .
553 # Ran 2 tests, 1 skipped, 0 failed.
553 # Ran 2 tests, 1 skipped, 0 failed.
554
554
555 failed
555 failed
556
556
557 $ rt test-failure.t
557 $ rt test-failure.t
558 running 1 tests using 1 parallel processes
558 running 1 tests using 1 parallel processes
559
559
560 --- $TESTTMP/test-failure.t
560 --- $TESTTMP/test-failure.t
561 +++ $TESTTMP/test-failure.t.err
561 +++ $TESTTMP/test-failure.t.err
562 @@ -1,5 +1,5 @@
562 @@ -1,5 +1,5 @@
563 $ echo babar
563 $ echo babar
564 - rataxes
564 - rataxes
565 + babar
565 + babar
566 This is a noop statement so that
566 This is a noop statement so that
567 this test is still more bytes than success.
567 this test is still more bytes than success.
568 pad pad pad pad............................................................
568 pad pad pad pad............................................................
569
569
570 ERROR: test-failure.t output changed
570 ERROR: test-failure.t output changed
571 !
571 !
572 Failed test-failure.t: output changed
572 Failed test-failure.t: output changed
573 # Ran 1 tests, 0 skipped, 1 failed.
573 # Ran 1 tests, 0 skipped, 1 failed.
574 python hash seed: * (glob)
574 python hash seed: * (glob)
575 [1]
575 [1]
576
576
577 failure w/ keyword
577 failure w/ keyword
578 $ rt -k rataxes
578 $ rt -k rataxes
579 running 2 tests using 1 parallel processes
579 running 2 tests using 1 parallel processes
580
580
581 --- $TESTTMP/test-failure.t
581 --- $TESTTMP/test-failure.t
582 +++ $TESTTMP/test-failure.t.err
582 +++ $TESTTMP/test-failure.t.err
583 @@ -1,5 +1,5 @@
583 @@ -1,5 +1,5 @@
584 $ echo babar
584 $ echo babar
585 - rataxes
585 - rataxes
586 + babar
586 + babar
587 This is a noop statement so that
587 This is a noop statement so that
588 this test is still more bytes than success.
588 this test is still more bytes than success.
589 pad pad pad pad............................................................
589 pad pad pad pad............................................................
590
590
591 ERROR: test-failure.t output changed
591 ERROR: test-failure.t output changed
592 !
592 !
593 Failed test-failure.t: output changed
593 Failed test-failure.t: output changed
594 # Ran 2 tests, 1 skipped, 1 failed.
594 # Ran 2 tests, 1 skipped, 1 failed.
595 python hash seed: * (glob)
595 python hash seed: * (glob)
596 [1]
596 [1]
597
597
598 Verify that when a process fails to start we show a useful message
598 Verify that when a process fails to start we show a useful message
599 ==================================================================
599 ==================================================================
600
600
601 $ cat > test-serve-fail.t <<EOF
601 $ cat > test-serve-fail.t <<EOF
602 > $ echo 'abort: child process failed to start blah'
602 > $ echo 'abort: child process failed to start blah'
603 > EOF
603 > EOF
604 $ rt test-serve-fail.t
604 $ rt test-serve-fail.t
605 running 1 tests using 1 parallel processes
605 running 1 tests using 1 parallel processes
606
606
607 --- $TESTTMP/test-serve-fail.t
607 --- $TESTTMP/test-serve-fail.t
608 +++ $TESTTMP/test-serve-fail.t.err
608 +++ $TESTTMP/test-serve-fail.t.err
609 @@ -1* +1,2 @@ (glob)
609 @@ -1* +1,2 @@ (glob)
610 $ echo 'abort: child process failed to start blah'
610 $ echo 'abort: child process failed to start blah'
611 + abort: child process failed to start blah
611 + abort: child process failed to start blah
612
612
613 ERROR: test-serve-fail.t output changed
613 ERROR: test-serve-fail.t output changed
614 !
614 !
615 Failed test-serve-fail.t: server failed to start (HGPORT=*) (glob)
615 Failed test-serve-fail.t: server failed to start (HGPORT=*) (glob)
616 # Ran 1 tests, 0 skipped, 1 failed.
616 # Ran 1 tests, 0 skipped, 1 failed.
617 python hash seed: * (glob)
617 python hash seed: * (glob)
618 [1]
618 [1]
619 $ rm test-serve-fail.t
619 $ rm test-serve-fail.t
620
620
621 Verify that we can try other ports
621 Verify that we can try other ports
622 ===================================
622 ===================================
623
623
624 Extensions aren't inherited by the invoked run-tests.py. An extension
624 Extensions aren't inherited by the invoked run-tests.py. An extension
625 introducing a repository requirement could cause this to fail. So we force
625 introducing a repository requirement could cause this to fail. So we force
626 HGRCPATH to get a clean environment.
626 HGRCPATH to get a clean environment.
627
627
628 $ HGRCPATH= hg init inuse
628 $ HGRCPATH= hg init inuse
629 $ hg serve -R inuse -p $HGPORT -d --pid-file=blocks.pid
629 $ hg serve -R inuse -p $HGPORT -d --pid-file=blocks.pid
630 $ cat blocks.pid >> $DAEMON_PIDS
630 $ cat blocks.pid >> $DAEMON_PIDS
631 $ cat > test-serve-inuse.t <<EOF
631 $ cat > test-serve-inuse.t <<EOF
632 > $ hg serve -R `pwd`/inuse -p \$HGPORT -d --pid-file=hg.pid
632 > $ hg serve -R `pwd`/inuse -p \$HGPORT -d --pid-file=hg.pid
633 > $ cat hg.pid >> \$DAEMON_PIDS
633 > $ cat hg.pid >> \$DAEMON_PIDS
634 > EOF
634 > EOF
635 $ rt test-serve-inuse.t
635 $ rt test-serve-inuse.t
636 running 1 tests using 1 parallel processes
636 running 1 tests using 1 parallel processes
637 .
637 .
638 # Ran 1 tests, 0 skipped, 0 failed.
638 # Ran 1 tests, 0 skipped, 0 failed.
639 $ rm test-serve-inuse.t
639 $ rm test-serve-inuse.t
640 $ killdaemons.py $DAEMON_PIDS
640 $ killdaemons.py $DAEMON_PIDS
641
641
642 Running In Debug Mode
642 Running In Debug Mode
643 ======================
643 ======================
644
644
645 $ rt --debug 2>&1 | grep -v pwd
645 $ rt --debug 2>&1 | grep -v pwd
646 running 2 tests using 1 parallel processes
646 running 2 tests using 1 parallel processes
647 + alias hg=hg.exe (windows !)
647 + alias hg=hg.exe (windows !)
648 + echo *SALT* 0 0 (glob)
648 + echo *SALT* 0 0 (glob)
649 *SALT* 0 0 (glob)
649 *SALT* 0 0 (glob)
650 + echo babar
650 + echo babar
651 babar
651 babar
652 + echo *SALT* 10 0 (glob)
652 + echo *SALT* 10 0 (glob)
653 *SALT* 10 0 (glob)
653 *SALT* 10 0 (glob)
654 .+ alias hg=hg.exe (windows !)
654 .+ alias hg=hg.exe (windows !)
655 *+ echo *SALT* 0 0 (glob)
655 *+ echo *SALT* 0 0 (glob)
656 *SALT* 0 0 (glob)
656 *SALT* 0 0 (glob)
657 + echo babar
657 + echo babar
658 babar
658 babar
659 + echo *SALT* 2 0 (glob)
659 + echo *SALT* 2 0 (glob)
660 *SALT* 2 0 (glob)
660 *SALT* 2 0 (glob)
661 + echo xyzzy
661 + echo xyzzy
662 xyzzy
662 xyzzy
663 + echo *SALT* 9 0 (glob)
663 + echo *SALT* 9 0 (glob)
664 *SALT* 9 0 (glob)
664 *SALT* 9 0 (glob)
665 + printf *abc\ndef\nxyz\n* (glob)
665 + printf *abc\ndef\nxyz\n* (glob)
666 abc
666 abc
667 def
667 def
668 xyz
668 xyz
669 + echo *SALT* 15 0 (glob)
669 + echo *SALT* 15 0 (glob)
670 *SALT* 15 0 (glob)
670 *SALT* 15 0 (glob)
671 + printf *zyx\nwvu\ntsr\n* (glob)
671 + printf *zyx\nwvu\ntsr\n* (glob)
672 zyx
672 zyx
673 wvu
673 wvu
674 tsr
674 tsr
675 + echo *SALT* 22 0 (glob)
675 + echo *SALT* 22 0 (glob)
676 *SALT* 22 0 (glob)
676 *SALT* 22 0 (glob)
677 .
677 .
678 # Ran 2 tests, 0 skipped, 0 failed.
678 # Ran 2 tests, 0 skipped, 0 failed.
679
679
680 Parallel runs
680 Parallel runs
681 ==============
681 ==============
682
682
683 (duplicate the failing test to get predictable output)
683 (duplicate the failing test to get predictable output)
684 $ cp test-failure.t test-failure-copy.t
684 $ cp test-failure.t test-failure-copy.t
685
685
686 $ rt --jobs 2 test-failure*.t -n
686 $ rt --jobs 2 test-failure*.t -n
687 running 2 tests using 2 parallel processes
687 running 2 tests using 2 parallel processes
688 !!
688 !!
689 Failed test-failure*.t: output changed (glob)
689 Failed test-failure*.t: output changed (glob)
690 Failed test-failure*.t: output changed (glob)
690 Failed test-failure*.t: output changed (glob)
691 # Ran 2 tests, 0 skipped, 2 failed.
691 # Ran 2 tests, 0 skipped, 2 failed.
692 python hash seed: * (glob)
692 python hash seed: * (glob)
693 [1]
693 [1]
694
694
695 failures in parallel with --first should only print one failure
695 failures in parallel with --first should only print one failure
696 $ rt --jobs 2 --first test-failure*.t
696 $ rt --jobs 2 --first test-failure*.t
697 running 2 tests using 2 parallel processes
697 running 2 tests using 2 parallel processes
698
698
699 --- $TESTTMP/test-failure*.t (glob)
699 --- $TESTTMP/test-failure*.t (glob)
700 +++ $TESTTMP/test-failure*.t.err (glob)
700 +++ $TESTTMP/test-failure*.t.err (glob)
701 @@ -1,5 +1,5 @@
701 @@ -1,5 +1,5 @@
702 $ echo babar
702 $ echo babar
703 - rataxes
703 - rataxes
704 + babar
704 + babar
705 This is a noop statement so that
705 This is a noop statement so that
706 this test is still more bytes than success.
706 this test is still more bytes than success.
707 pad pad pad pad............................................................
707 pad pad pad pad............................................................
708
708
709 Failed test-failure*.t: output changed (glob)
709 Failed test-failure*.t: output changed (glob)
710 Failed test-failure*.t: output changed (glob)
710 Failed test-failure*.t: output changed (glob)
711 # Ran 2 tests, 0 skipped, 2 failed.
711 # Ran 2 tests, 0 skipped, 2 failed.
712 python hash seed: * (glob)
712 python hash seed: * (glob)
713 [1]
713 [1]
714
714
715
715
716 (delete the duplicated test file)
716 (delete the duplicated test file)
717 $ rm test-failure-copy.t
717 $ rm test-failure-copy.t
718
718
719 multiple runs per test should be parallelized
719 multiple runs per test should be parallelized
720
720
721 $ rt --jobs 2 --runs-per-test 2 test-success.t
721 $ rt --jobs 2 --runs-per-test 2 test-success.t
722 running 2 tests using 2 parallel processes
722 running 2 tests using 2 parallel processes
723 ..
723 ..
724 # Ran 2 tests, 0 skipped, 0 failed.
724 # Ran 2 tests, 0 skipped, 0 failed.
725
725
726 Interactive run
726 Interactive run
727 ===============
727 ===============
728
728
729 (backup the failing test)
729 (backup the failing test)
730 $ cp test-failure.t backup
730 $ cp test-failure.t backup
731
731
732 Refuse the fix
732 Refuse the fix
733
733
734 $ echo 'n' | rt -i
734 $ echo 'n' | rt -i
735 running 2 tests using 1 parallel processes
735 running 2 tests using 1 parallel processes
736
736
737 --- $TESTTMP/test-failure.t
737 --- $TESTTMP/test-failure.t
738 +++ $TESTTMP/test-failure.t.err
738 +++ $TESTTMP/test-failure.t.err
739 @@ -1,5 +1,5 @@
739 @@ -1,5 +1,5 @@
740 $ echo babar
740 $ echo babar
741 - rataxes
741 - rataxes
742 + babar
742 + babar
743 This is a noop statement so that
743 This is a noop statement so that
744 this test is still more bytes than success.
744 this test is still more bytes than success.
745 pad pad pad pad............................................................
745 pad pad pad pad............................................................
746 Accept this change? [n]
746 Accept this change? [n]
747 ERROR: test-failure.t output changed
747 ERROR: test-failure.t output changed
748 !.
748 !.
749 Failed test-failure.t: output changed
749 Failed test-failure.t: output changed
750 # Ran 2 tests, 0 skipped, 1 failed.
750 # Ran 2 tests, 0 skipped, 1 failed.
751 python hash seed: * (glob)
751 python hash seed: * (glob)
752 [1]
752 [1]
753
753
754 $ cat test-failure.t
754 $ cat test-failure.t
755 $ echo babar
755 $ echo babar
756 rataxes
756 rataxes
757 This is a noop statement so that
757 This is a noop statement so that
758 this test is still more bytes than success.
758 this test is still more bytes than success.
759 pad pad pad pad............................................................
759 pad pad pad pad............................................................
760 pad pad pad pad............................................................
760 pad pad pad pad............................................................
761 pad pad pad pad............................................................
761 pad pad pad pad............................................................
762 pad pad pad pad............................................................
762 pad pad pad pad............................................................
763 pad pad pad pad............................................................
763 pad pad pad pad............................................................
764 pad pad pad pad............................................................
764 pad pad pad pad............................................................
765
765
766 Interactive with custom view
766 Interactive with custom view
767
767
768 $ echo 'n' | rt -i --view echo
768 $ echo 'n' | rt -i --view echo
769 running 2 tests using 1 parallel processes
769 running 2 tests using 1 parallel processes
770 $TESTTMP/test-failure.t $TESTTMP/test-failure.t.err
770 $TESTTMP/test-failure.t $TESTTMP/test-failure.t.err
771 Accept this change? [n]* (glob)
771 Accept this change? [n]* (glob)
772 ERROR: test-failure.t output changed
772 ERROR: test-failure.t output changed
773 !.
773 !.
774 Failed test-failure.t: output changed
774 Failed test-failure.t: output changed
775 # Ran 2 tests, 0 skipped, 1 failed.
775 # Ran 2 tests, 0 skipped, 1 failed.
776 python hash seed: * (glob)
776 python hash seed: * (glob)
777 [1]
777 [1]
778
778
779 View the fix
779 View the fix
780
780
781 $ echo 'y' | rt --view echo
781 $ echo 'y' | rt --view echo
782 running 2 tests using 1 parallel processes
782 running 2 tests using 1 parallel processes
783 $TESTTMP/test-failure.t $TESTTMP/test-failure.t.err
783 $TESTTMP/test-failure.t $TESTTMP/test-failure.t.err
784
784
785 ERROR: test-failure.t output changed
785 ERROR: test-failure.t output changed
786 !.
786 !.
787 Failed test-failure.t: output changed
787 Failed test-failure.t: output changed
788 # Ran 2 tests, 0 skipped, 1 failed.
788 # Ran 2 tests, 0 skipped, 1 failed.
789 python hash seed: * (glob)
789 python hash seed: * (glob)
790 [1]
790 [1]
791
791
792 Accept the fix
792 Accept the fix
793
793
794 $ cat >> test-failure.t <<EOF
794 $ cat >> test-failure.t <<EOF
795 > $ echo 'saved backup bundle to \$TESTTMP/foo.hg'
795 > $ echo 'saved backup bundle to \$TESTTMP/foo.hg'
796 > saved backup bundle to \$TESTTMP/foo.hg
796 > saved backup bundle to \$TESTTMP/foo.hg
797 > $ echo 'saved backup bundle to \$TESTTMP/foo.hg'
797 > $ echo 'saved backup bundle to \$TESTTMP/foo.hg'
798 > saved backup bundle to $TESTTMP\\foo.hg
798 > saved backup bundle to $TESTTMP\\foo.hg
799 > $ echo 'saved backup bundle to \$TESTTMP/foo.hg'
799 > $ echo 'saved backup bundle to \$TESTTMP/foo.hg'
800 > saved backup bundle to \$TESTTMP/*.hg (glob)
800 > saved backup bundle to \$TESTTMP/*.hg (glob)
801 > EOF
801 > EOF
802 $ echo 'y' | rt -i 2>&1
802 $ echo 'y' | rt -i 2>&1
803 running 2 tests using 1 parallel processes
803 running 2 tests using 1 parallel processes
804
804
805 --- $TESTTMP/test-failure.t
805 --- $TESTTMP/test-failure.t
806 +++ $TESTTMP/test-failure.t.err
806 +++ $TESTTMP/test-failure.t.err
807 @@ -1,5 +1,5 @@
807 @@ -1,5 +1,5 @@
808 $ echo babar
808 $ echo babar
809 - rataxes
809 - rataxes
810 + babar
810 + babar
811 This is a noop statement so that
811 This is a noop statement so that
812 this test is still more bytes than success.
812 this test is still more bytes than success.
813 pad pad pad pad............................................................
813 pad pad pad pad............................................................
814 @@ -11,6 +11,6 @@
814 @@ -11,6 +11,6 @@
815 $ echo 'saved backup bundle to $TESTTMP/foo.hg'
815 $ echo 'saved backup bundle to $TESTTMP/foo.hg'
816 saved backup bundle to $TESTTMP/foo.hg
816 saved backup bundle to $TESTTMP/foo.hg
817 $ echo 'saved backup bundle to $TESTTMP/foo.hg'
817 $ echo 'saved backup bundle to $TESTTMP/foo.hg'
818 - saved backup bundle to $TESTTMP\foo.hg
818 - saved backup bundle to $TESTTMP\foo.hg
819 + saved backup bundle to $TESTTMP/foo.hg
819 + saved backup bundle to $TESTTMP/foo.hg
820 $ echo 'saved backup bundle to $TESTTMP/foo.hg'
820 $ echo 'saved backup bundle to $TESTTMP/foo.hg'
821 saved backup bundle to $TESTTMP/*.hg (glob)
821 saved backup bundle to $TESTTMP/*.hg (glob)
822 Accept this change? [n] ..
822 Accept this change? [n] ..
823 # Ran 2 tests, 0 skipped, 0 failed.
823 # Ran 2 tests, 0 skipped, 0 failed.
824
824
825 $ sed -e 's,(glob)$,&<,g' test-failure.t
825 $ sed -e 's,(glob)$,&<,g' test-failure.t
826 $ echo babar
826 $ echo babar
827 babar
827 babar
828 This is a noop statement so that
828 This is a noop statement so that
829 this test is still more bytes than success.
829 this test is still more bytes than success.
830 pad pad pad pad............................................................
830 pad pad pad pad............................................................
831 pad pad pad pad............................................................
831 pad pad pad pad............................................................
832 pad pad pad pad............................................................
832 pad pad pad pad............................................................
833 pad pad pad pad............................................................
833 pad pad pad pad............................................................
834 pad pad pad pad............................................................
834 pad pad pad pad............................................................
835 pad pad pad pad............................................................
835 pad pad pad pad............................................................
836 $ echo 'saved backup bundle to $TESTTMP/foo.hg'
836 $ echo 'saved backup bundle to $TESTTMP/foo.hg'
837 saved backup bundle to $TESTTMP/foo.hg
837 saved backup bundle to $TESTTMP/foo.hg
838 $ echo 'saved backup bundle to $TESTTMP/foo.hg'
838 $ echo 'saved backup bundle to $TESTTMP/foo.hg'
839 saved backup bundle to $TESTTMP/foo.hg
839 saved backup bundle to $TESTTMP/foo.hg
840 $ echo 'saved backup bundle to $TESTTMP/foo.hg'
840 $ echo 'saved backup bundle to $TESTTMP/foo.hg'
841 saved backup bundle to $TESTTMP/*.hg (glob)<
841 saved backup bundle to $TESTTMP/*.hg (glob)<
842
842
843 Race condition - test file was modified when test is running
843 Race condition - test file was modified when test is running
844
844
845 $ TESTRACEDIR=`pwd`
845 $ TESTRACEDIR=`pwd`
846 $ export TESTRACEDIR
846 $ export TESTRACEDIR
847 $ cat > test-race.t <<EOF
847 $ cat > test-race.t <<EOF
848 > $ echo 1
848 > $ echo 1
849 > $ echo "# a new line" >> $TESTRACEDIR/test-race.t
849 > $ echo "# a new line" >> $TESTRACEDIR/test-race.t
850 > EOF
850 > EOF
851
851
852 $ rt -i test-race.t
852 $ rt -i test-race.t
853 running 1 tests using 1 parallel processes
853 running 1 tests using 1 parallel processes
854
854
855 --- $TESTTMP/test-race.t
855 --- $TESTTMP/test-race.t
856 +++ $TESTTMP/test-race.t.err
856 +++ $TESTTMP/test-race.t.err
857 @@ -1,2 +1,3 @@
857 @@ -1,2 +1,3 @@
858 $ echo 1
858 $ echo 1
859 + 1
859 + 1
860 $ echo "# a new line" >> $TESTTMP/test-race.t
860 $ echo "# a new line" >> $TESTTMP/test-race.t
861 Reference output has changed (run again to prompt changes)
861 Reference output has changed (run again to prompt changes)
862 ERROR: test-race.t output changed
862 ERROR: test-race.t output changed
863 !
863 !
864 Failed test-race.t: output changed
864 Failed test-race.t: output changed
865 # Ran 1 tests, 0 skipped, 1 failed.
865 # Ran 1 tests, 0 skipped, 1 failed.
866 python hash seed: * (glob)
866 python hash seed: * (glob)
867 [1]
867 [1]
868
868
869 $ rm test-race.t
869 $ rm test-race.t
870
870
871 When "#testcases" is used in .t files
871 When "#testcases" is used in .t files
872
872
873 $ cat >> test-cases.t <<EOF
873 $ cat >> test-cases.t <<EOF
874 > #testcases a b
874 > #testcases a b
875 > #if a
875 > #if a
876 > $ echo 1
876 > $ echo 1
877 > #endif
877 > #endif
878 > #if b
878 > #if b
879 > $ echo 2
879 > $ echo 2
880 > #endif
880 > #endif
881 > EOF
881 > EOF
882
882
883 $ cat <<EOF | rt -i test-cases.t 2>&1
883 $ cat <<EOF | rt -i test-cases.t 2>&1
884 > y
884 > y
885 > y
885 > y
886 > EOF
886 > EOF
887 running 2 tests using 1 parallel processes
887 running 2 tests using 1 parallel processes
888
888
889 --- $TESTTMP/test-cases.t
889 --- $TESTTMP/test-cases.t
890 +++ $TESTTMP/test-cases.t#a.err
890 +++ $TESTTMP/test-cases.t#a.err
891 @@ -1,6 +1,7 @@
891 @@ -1,6 +1,7 @@
892 #testcases a b
892 #testcases a b
893 #if a
893 #if a
894 $ echo 1
894 $ echo 1
895 + 1
895 + 1
896 #endif
896 #endif
897 #if b
897 #if b
898 $ echo 2
898 $ echo 2
899 Accept this change? [n] .
899 Accept this change? [n] .
900 --- $TESTTMP/test-cases.t
900 --- $TESTTMP/test-cases.t
901 +++ $TESTTMP/test-cases.t#b.err
901 +++ $TESTTMP/test-cases.t#b.err
902 @@ -5,4 +5,5 @@
902 @@ -5,4 +5,5 @@
903 #endif
903 #endif
904 #if b
904 #if b
905 $ echo 2
905 $ echo 2
906 + 2
906 + 2
907 #endif
907 #endif
908 Accept this change? [n] .
908 Accept this change? [n] .
909 # Ran 2 tests, 0 skipped, 0 failed.
909 # Ran 2 tests, 0 skipped, 0 failed.
910
910
911 $ cat test-cases.t
911 $ cat test-cases.t
912 #testcases a b
912 #testcases a b
913 #if a
913 #if a
914 $ echo 1
914 $ echo 1
915 1
915 1
916 #endif
916 #endif
917 #if b
917 #if b
918 $ echo 2
918 $ echo 2
919 2
919 2
920 #endif
920 #endif
921
921
922 $ cat >> test-cases.t <<'EOF'
922 $ cat >> test-cases.t <<'EOF'
923 > #if a
923 > #if a
924 > $ NAME=A
924 > $ NAME=A
925 > #else
925 > #else
926 > $ NAME=B
926 > $ NAME=B
927 > #endif
927 > #endif
928 > $ echo $NAME
928 > $ echo $NAME
929 > A (a !)
929 > A (a !)
930 > B (b !)
930 > B (b !)
931 > EOF
931 > EOF
932 $ rt test-cases.t
932 $ rt test-cases.t
933 running 2 tests using 1 parallel processes
933 running 2 tests using 1 parallel processes
934 ..
934 ..
935 # Ran 2 tests, 0 skipped, 0 failed.
935 # Ran 2 tests, 0 skipped, 0 failed.
936
936
937 When using multiple dimensions of "#testcases" in .t files
937 When using multiple dimensions of "#testcases" in .t files
938
938
939 $ cat > test-cases.t <<'EOF'
939 $ cat > test-cases.t <<'EOF'
940 > #testcases a b
940 > #testcases a b
941 > #testcases c d
941 > #testcases c d
942 > #if a d
942 > #if a d
943 > $ echo $TESTCASE
943 > $ echo $TESTCASE
944 > a#d
944 > a#d
945 > #endif
945 > #endif
946 > #if b c
946 > #if b c
947 > $ echo yes
947 > $ echo yes
948 > no
948 > no
949 > #endif
949 > #endif
950 > EOF
950 > EOF
951 $ rt test-cases.t
951 $ rt test-cases.t
952 running 4 tests using 1 parallel processes
952 running 4 tests using 1 parallel processes
953 ..
953 ..
954 --- $TESTTMP/test-cases.t
954 --- $TESTTMP/test-cases.t
955 +++ $TESTTMP/test-cases.t#b#c.err
955 +++ $TESTTMP/test-cases.t#b#c.err
956 @@ -6,5 +6,5 @@
956 @@ -6,5 +6,5 @@
957 #endif
957 #endif
958 #if b c
958 #if b c
959 $ echo yes
959 $ echo yes
960 - no
960 - no
961 + yes
961 + yes
962 #endif
962 #endif
963
963
964 ERROR: test-cases.t#b#c output changed
964 ERROR: test-cases.t#b#c output changed
965 !.
965 !.
966 Failed test-cases.t#b#c: output changed
966 Failed test-cases.t#b#c: output changed
967 # Ran 4 tests, 0 skipped, 1 failed.
967 # Ran 4 tests, 0 skipped, 1 failed.
968 python hash seed: * (glob)
968 python hash seed: * (glob)
969 [1]
969 [1]
970
970
971 $ rm test-cases.t#b#c.err
971 $ rm test-cases.t#b#c.err
972 $ rm test-cases.t
972 $ rm test-cases.t
973
973
974 (reinstall)
974 (reinstall)
975 $ mv backup test-failure.t
975 $ mv backup test-failure.t
976
976
977 No Diff
977 No Diff
978 ===============
978 ===============
979
979
980 $ rt --nodiff
980 $ rt --nodiff
981 running 2 tests using 1 parallel processes
981 running 2 tests using 1 parallel processes
982 !.
982 !.
983 Failed test-failure.t: output changed
983 Failed test-failure.t: output changed
984 # Ran 2 tests, 0 skipped, 1 failed.
984 # Ran 2 tests, 0 skipped, 1 failed.
985 python hash seed: * (glob)
985 python hash seed: * (glob)
986 [1]
986 [1]
987
987
988 test --tmpdir support
988 test --tmpdir support
989 $ rt --tmpdir=$TESTTMP/keep test-success.t
989 $ rt --tmpdir=$TESTTMP/keep test-success.t
990 running 1 tests using 1 parallel processes
990 running 1 tests using 1 parallel processes
991
991
992 Keeping testtmp dir: $TESTTMP/keep/child1/test-success.t
992 Keeping testtmp dir: $TESTTMP/keep/child1/test-success.t
993 Keeping threadtmp dir: $TESTTMP/keep/child1
993 Keeping threadtmp dir: $TESTTMP/keep/child1
994 .
994 .
995 # Ran 1 tests, 0 skipped, 0 failed.
995 # Ran 1 tests, 0 skipped, 0 failed.
996
996
997 timeouts
997 timeouts
998 ========
998 ========
999 $ cat > test-timeout.t <<EOF
999 $ cat > test-timeout.t <<EOF
1000 > $ sleep 2
1000 > $ sleep 2
1001 > $ echo pass
1001 > $ echo pass
1002 > pass
1002 > pass
1003 > EOF
1003 > EOF
1004 > echo '#require slow' > test-slow-timeout.t
1004 > echo '#require slow' > test-slow-timeout.t
1005 > cat test-timeout.t >> test-slow-timeout.t
1005 > cat test-timeout.t >> test-slow-timeout.t
1006 $ rt --timeout=1 --slowtimeout=3 test-timeout.t test-slow-timeout.t
1006 $ rt --timeout=1 --slowtimeout=3 test-timeout.t test-slow-timeout.t
1007 running 2 tests using 1 parallel processes
1007 running 2 tests using 1 parallel processes
1008 st
1008 st
1009 Skipped test-slow-timeout.t: missing feature: allow slow tests (use --allow-slow-tests)
1009 Skipped test-slow-timeout.t: missing feature: allow slow tests (use --allow-slow-tests)
1010 Failed test-timeout.t: timed out
1010 Failed test-timeout.t: timed out
1011 # Ran 1 tests, 1 skipped, 1 failed.
1011 # Ran 1 tests, 1 skipped, 1 failed.
1012 python hash seed: * (glob)
1012 python hash seed: * (glob)
1013 [1]
1013 [1]
1014 $ rt --timeout=1 --slowtimeout=3 \
1014 $ rt --timeout=1 --slowtimeout=3 \
1015 > test-timeout.t test-slow-timeout.t --allow-slow-tests
1015 > test-timeout.t test-slow-timeout.t --allow-slow-tests
1016 running 2 tests using 1 parallel processes
1016 running 2 tests using 1 parallel processes
1017 .t
1017 .t
1018 Failed test-timeout.t: timed out
1018 Failed test-timeout.t: timed out
1019 # Ran 2 tests, 0 skipped, 1 failed.
1019 # Ran 2 tests, 0 skipped, 1 failed.
1020 python hash seed: * (glob)
1020 python hash seed: * (glob)
1021 [1]
1021 [1]
1022 $ rm test-timeout.t test-slow-timeout.t
1022 $ rm test-timeout.t test-slow-timeout.t
1023
1023
1024 test for --time
1024 test for --time
1025 ==================
1025 ==================
1026
1026
1027 $ rt test-success.t --time
1027 $ rt test-success.t --time
1028 running 1 tests using 1 parallel processes
1028 running 1 tests using 1 parallel processes
1029 .
1029 .
1030 # Ran 1 tests, 0 skipped, 0 failed.
1030 # Ran 1 tests, 0 skipped, 0 failed.
1031 # Producing time report
1031 # Producing time report
1032 start end cuser csys real Test
1032 start end cuser csys real Test
1033 \s*[\d\.]{5,8} \s*[\d\.]{5,8} \s*[\d\.]{5,8} \s*[\d\.]{5,8} \s*[\d\.]{5,8} test-success.t (re)
1033 \s*[\d\.]{5,8} \s*[\d\.]{5,8} \s*[\d\.]{5,8} \s*[\d\.]{5,8} \s*[\d\.]{5,8} test-success.t (re)
1034
1034
1035 test for --time with --job enabled
1035 test for --time with --job enabled
1036 ====================================
1036 ====================================
1037
1037
1038 $ rt test-success.t --time --jobs 2
1038 $ rt test-success.t --time --jobs 2
1039 running 1 tests using 1 parallel processes
1039 running 1 tests using 1 parallel processes
1040 .
1040 .
1041 # Ran 1 tests, 0 skipped, 0 failed.
1041 # Ran 1 tests, 0 skipped, 0 failed.
1042 # Producing time report
1042 # Producing time report
1043 start end cuser csys real Test
1043 start end cuser csys real Test
1044 \s*[\d\.]{5,8} \s*[\d\.]{5,8} \s*[\d\.]{5,8} \s*[\d\.]{5,8} \s*[\d\.]{5,8} test-success.t (re)
1044 \s*[\d\.]{5,8} \s*[\d\.]{5,8} \s*[\d\.]{5,8} \s*[\d\.]{5,8} \s*[\d\.]{5,8} test-success.t (re)
1045
1045
1046 Skips
1046 Skips
1047 ================
1047 ================
1048 $ cat > test-skip.t <<EOF
1048 $ cat > test-skip.t <<EOF
1049 > $ echo xyzzy
1049 > $ echo xyzzy
1050 > #if true
1050 > #if true
1051 > #require false
1051 > #require false
1052 > #end
1052 > #end
1053 > EOF
1053 > EOF
1054 $ cat > test-noskip.t <<EOF
1054 $ cat > test-noskip.t <<EOF
1055 > #if false
1055 > #if false
1056 > #require false
1056 > #require false
1057 > #endif
1057 > #endif
1058 > EOF
1058 > EOF
1059 $ rt --nodiff
1059 $ rt --nodiff
1060 running 4 tests using 1 parallel processes
1060 running 4 tests using 1 parallel processes
1061 !.s.
1061 !.s.
1062 Skipped test-skip.t: missing feature: nail clipper
1062 Skipped test-skip.t: missing feature: nail clipper
1063 Failed test-failure.t: output changed
1063 Failed test-failure.t: output changed
1064 # Ran 3 tests, 1 skipped, 1 failed.
1064 # Ran 3 tests, 1 skipped, 1 failed.
1065 python hash seed: * (glob)
1065 python hash seed: * (glob)
1066 [1]
1066 [1]
1067
1067
1068 $ rm test-noskip.t
1068 $ rm test-noskip.t
1069 $ rt --keyword xyzzy
1069 $ rt --keyword xyzzy
1070 running 3 tests using 1 parallel processes
1070 running 3 tests using 1 parallel processes
1071 .s
1071 .s
1072 Skipped test-skip.t: missing feature: nail clipper
1072 Skipped test-skip.t: missing feature: nail clipper
1073 # Ran 2 tests, 2 skipped, 0 failed.
1073 # Ran 2 tests, 2 skipped, 0 failed.
1074
1074
1075 Skips with xml
1075 Skips with xml
1076 $ rt --keyword xyzzy \
1076 $ rt --keyword xyzzy \
1077 > --xunit=xunit.xml
1077 > --xunit=xunit.xml
1078 running 3 tests using 1 parallel processes
1078 running 3 tests using 1 parallel processes
1079 .s
1079 .s
1080 Skipped test-skip.t: missing feature: nail clipper
1080 Skipped test-skip.t: missing feature: nail clipper
1081 # Ran 2 tests, 2 skipped, 0 failed.
1081 # Ran 2 tests, 2 skipped, 0 failed.
1082 $ cat xunit.xml
1082 $ cat xunit.xml
1083 <?xml version="1.0" encoding="utf-8"?>
1083 <?xml version="1.0" encoding="utf-8"?>
1084 <testsuite errors="0" failures="0" name="run-tests" skipped="2" tests="2">
1084 <testsuite errors="0" failures="0" name="run-tests" skipped="2" tests="2">
1085 <testcase name="test-success.t" time="*"/> (glob)
1085 <testcase name="test-success.t" time="*"/> (glob)
1086 <testcase name="test-skip.t">
1086 <testcase name="test-skip.t">
1087 <skipped>
1087 <skipped>
1088 <![CDATA[missing feature: nail clipper]]> </skipped>
1088 <![CDATA[missing feature: nail clipper]]> </skipped>
1089 </testcase>
1089 </testcase>
1090 </testsuite>
1090 </testsuite>
1091
1091
1092 Missing skips or blacklisted skips don't count as executed:
1092 Missing skips or blacklisted skips don't count as executed:
1093 $ echo test-failure.t > blacklist
1093 $ echo test-failure.t > blacklist
1094 $ rt --blacklist=blacklist --json\
1094 $ rt --blacklist=blacklist --json\
1095 > test-failure.t test-bogus.t
1095 > test-failure.t test-bogus.t
1096 running 2 tests using 1 parallel processes
1096 running 2 tests using 1 parallel processes
1097 ss
1097 ss
1098 Skipped test-bogus.t: Doesn't exist
1098 Skipped test-bogus.t: Doesn't exist
1099 Skipped test-failure.t: blacklisted
1099 Skipped test-failure.t: blacklisted
1100 # Ran 0 tests, 2 skipped, 0 failed.
1100 # Ran 0 tests, 2 skipped, 0 failed.
1101 $ cat report.json
1101 $ cat report.json
1102 testreport ={
1102 testreport ={
1103 "test-bogus.t": {
1103 "test-bogus.t": {
1104 "result": "skip"
1104 "result": "skip"
1105 },
1105 },
1106 "test-failure.t": {
1106 "test-failure.t": {
1107 "result": "skip"
1107 "result": "skip"
1108 }
1108 }
1109 } (no-eol)
1109 } (no-eol)
1110
1110
1111 Whitelist trumps blacklist
1111 Whitelist trumps blacklist
1112 $ echo test-failure.t > whitelist
1112 $ echo test-failure.t > whitelist
1113 $ rt --blacklist=blacklist --whitelist=whitelist --json\
1113 $ rt --blacklist=blacklist --whitelist=whitelist --json\
1114 > test-failure.t test-bogus.t
1114 > test-failure.t test-bogus.t
1115 running 2 tests using 1 parallel processes
1115 running 2 tests using 1 parallel processes
1116 s
1116 s
1117 --- $TESTTMP/test-failure.t
1117 --- $TESTTMP/test-failure.t
1118 +++ $TESTTMP/test-failure.t.err
1118 +++ $TESTTMP/test-failure.t.err
1119 @@ -1,5 +1,5 @@
1119 @@ -1,5 +1,5 @@
1120 $ echo babar
1120 $ echo babar
1121 - rataxes
1121 - rataxes
1122 + babar
1122 + babar
1123 This is a noop statement so that
1123 This is a noop statement so that
1124 this test is still more bytes than success.
1124 this test is still more bytes than success.
1125 pad pad pad pad............................................................
1125 pad pad pad pad............................................................
1126
1126
1127 ERROR: test-failure.t output changed
1127 ERROR: test-failure.t output changed
1128 !
1128 !
1129 Skipped test-bogus.t: Doesn't exist
1129 Skipped test-bogus.t: Doesn't exist
1130 Failed test-failure.t: output changed
1130 Failed test-failure.t: output changed
1131 # Ran 1 tests, 1 skipped, 1 failed.
1131 # Ran 1 tests, 1 skipped, 1 failed.
1132 python hash seed: * (glob)
1132 python hash seed: * (glob)
1133 [1]
1133 [1]
1134
1134
1135 Ensure that --test-list causes only the tests listed in that file to
1135 Ensure that --test-list causes only the tests listed in that file to
1136 be executed.
1136 be executed.
1137 $ echo test-success.t >> onlytest
1137 $ echo test-success.t >> onlytest
1138 $ rt --test-list=onlytest
1138 $ rt --test-list=onlytest
1139 running 1 tests using 1 parallel processes
1139 running 1 tests using 1 parallel processes
1140 .
1140 .
1141 # Ran 1 tests, 0 skipped, 0 failed.
1141 # Ran 1 tests, 0 skipped, 0 failed.
1142 $ echo test-bogus.t >> anothertest
1142 $ echo test-bogus.t >> anothertest
1143 $ rt --test-list=onlytest --test-list=anothertest
1143 $ rt --test-list=onlytest --test-list=anothertest
1144 running 2 tests using 1 parallel processes
1144 running 2 tests using 1 parallel processes
1145 s.
1145 s.
1146 Skipped test-bogus.t: Doesn't exist
1146 Skipped test-bogus.t: Doesn't exist
1147 # Ran 1 tests, 1 skipped, 0 failed.
1147 # Ran 1 tests, 1 skipped, 0 failed.
1148 $ rm onlytest anothertest
1148 $ rm onlytest anothertest
1149
1149
1150 test for --json
1150 test for --json
1151 ==================
1151 ==================
1152
1152
1153 $ rt --json
1153 $ rt --json
1154 running 3 tests using 1 parallel processes
1154 running 3 tests using 1 parallel processes
1155
1155
1156 --- $TESTTMP/test-failure.t
1156 --- $TESTTMP/test-failure.t
1157 +++ $TESTTMP/test-failure.t.err
1157 +++ $TESTTMP/test-failure.t.err
1158 @@ -1,5 +1,5 @@
1158 @@ -1,5 +1,5 @@
1159 $ echo babar
1159 $ echo babar
1160 - rataxes
1160 - rataxes
1161 + babar
1161 + babar
1162 This is a noop statement so that
1162 This is a noop statement so that
1163 this test is still more bytes than success.
1163 this test is still more bytes than success.
1164 pad pad pad pad............................................................
1164 pad pad pad pad............................................................
1165
1165
1166 ERROR: test-failure.t output changed
1166 ERROR: test-failure.t output changed
1167 !.s
1167 !.s
1168 Skipped test-skip.t: missing feature: nail clipper
1168 Skipped test-skip.t: missing feature: nail clipper
1169 Failed test-failure.t: output changed
1169 Failed test-failure.t: output changed
1170 # Ran 2 tests, 1 skipped, 1 failed.
1170 # Ran 2 tests, 1 skipped, 1 failed.
1171 python hash seed: * (glob)
1171 python hash seed: * (glob)
1172 [1]
1172 [1]
1173
1173
1174 $ cat report.json
1174 $ cat report.json
1175 testreport ={
1175 testreport ={
1176 "test-failure.t": [\{] (re)
1176 "test-failure.t": [\{] (re)
1177 "csys": "\s*\d+\.\d{3,4}", ? (re)
1177 "csys": "\s*\d+\.\d{3,4}", ? (re)
1178 "cuser": "\s*\d+\.\d{3,4}", ? (re)
1178 "cuser": "\s*\d+\.\d{3,4}", ? (re)
1179 "diff": "---.+\+\+\+.+", ? (re)
1179 "diff": "---.+\+\+\+.+", ? (re)
1180 "end": "\s*\d+\.\d{3,4}", ? (re)
1180 "end": "\s*\d+\.\d{3,4}", ? (re)
1181 "result": "failure", ? (re)
1181 "result": "failure", ? (re)
1182 "start": "\s*\d+\.\d{3,4}", ? (re)
1182 "start": "\s*\d+\.\d{3,4}", ? (re)
1183 "time": "\s*\d+\.\d{3,4}" (re)
1183 "time": "\s*\d+\.\d{3,4}" (re)
1184 }, ? (re)
1184 }, ? (re)
1185 "test-skip.t": {
1185 "test-skip.t": {
1186 "csys": "\s*\d+\.\d{3,4}", ? (re)
1186 "csys": "\s*\d+\.\d{3,4}", ? (re)
1187 "cuser": "\s*\d+\.\d{3,4}", ? (re)
1187 "cuser": "\s*\d+\.\d{3,4}", ? (re)
1188 "diff": "", ? (re)
1188 "diff": "", ? (re)
1189 "end": "\s*\d+\.\d{3,4}", ? (re)
1189 "end": "\s*\d+\.\d{3,4}", ? (re)
1190 "result": "skip", ? (re)
1190 "result": "skip", ? (re)
1191 "start": "\s*\d+\.\d{3,4}", ? (re)
1191 "start": "\s*\d+\.\d{3,4}", ? (re)
1192 "time": "\s*\d+\.\d{3,4}" (re)
1192 "time": "\s*\d+\.\d{3,4}" (re)
1193 }, ? (re)
1193 }, ? (re)
1194 "test-success.t": [\{] (re)
1194 "test-success.t": [\{] (re)
1195 "csys": "\s*\d+\.\d{3,4}", ? (re)
1195 "csys": "\s*\d+\.\d{3,4}", ? (re)
1196 "cuser": "\s*\d+\.\d{3,4}", ? (re)
1196 "cuser": "\s*\d+\.\d{3,4}", ? (re)
1197 "diff": "", ? (re)
1197 "diff": "", ? (re)
1198 "end": "\s*\d+\.\d{3,4}", ? (re)
1198 "end": "\s*\d+\.\d{3,4}", ? (re)
1199 "result": "success", ? (re)
1199 "result": "success", ? (re)
1200 "start": "\s*\d+\.\d{3,4}", ? (re)
1200 "start": "\s*\d+\.\d{3,4}", ? (re)
1201 "time": "\s*\d+\.\d{3,4}" (re)
1201 "time": "\s*\d+\.\d{3,4}" (re)
1202 }
1202 }
1203 } (no-eol)
1203 } (no-eol)
1204 --json with --outputdir
1204 --json with --outputdir
1205
1205
1206 $ rm report.json
1206 $ rm report.json
1207 $ rm -r output
1207 $ rm -r output
1208 $ mkdir output
1208 $ mkdir output
1209 $ rt --json --outputdir output
1209 $ rt --json --outputdir output
1210 running 3 tests using 1 parallel processes
1210 running 3 tests using 1 parallel processes
1211
1211
1212 --- $TESTTMP/test-failure.t
1212 --- $TESTTMP/test-failure.t
1213 +++ $TESTTMP/output/test-failure.t.err
1213 +++ $TESTTMP/output/test-failure.t.err
1214 @@ -1,5 +1,5 @@
1214 @@ -1,5 +1,5 @@
1215 $ echo babar
1215 $ echo babar
1216 - rataxes
1216 - rataxes
1217 + babar
1217 + babar
1218 This is a noop statement so that
1218 This is a noop statement so that
1219 this test is still more bytes than success.
1219 this test is still more bytes than success.
1220 pad pad pad pad............................................................
1220 pad pad pad pad............................................................
1221
1221
1222 ERROR: test-failure.t output changed
1222 ERROR: test-failure.t output changed
1223 !.s
1223 !.s
1224 Skipped test-skip.t: missing feature: nail clipper
1224 Skipped test-skip.t: missing feature: nail clipper
1225 Failed test-failure.t: output changed
1225 Failed test-failure.t: output changed
1226 # Ran 2 tests, 1 skipped, 1 failed.
1226 # Ran 2 tests, 1 skipped, 1 failed.
1227 python hash seed: * (glob)
1227 python hash seed: * (glob)
1228 [1]
1228 [1]
1229 $ f report.json
1229 $ f report.json
1230 report.json: file not found
1230 report.json: file not found
1231 $ cat output/report.json
1231 $ cat output/report.json
1232 testreport ={
1232 testreport ={
1233 "test-failure.t": [\{] (re)
1233 "test-failure.t": [\{] (re)
1234 "csys": "\s*\d+\.\d{3,4}", ? (re)
1234 "csys": "\s*\d+\.\d{3,4}", ? (re)
1235 "cuser": "\s*\d+\.\d{3,4}", ? (re)
1235 "cuser": "\s*\d+\.\d{3,4}", ? (re)
1236 "diff": "---.+\+\+\+.+", ? (re)
1236 "diff": "---.+\+\+\+.+", ? (re)
1237 "end": "\s*\d+\.\d{3,4}", ? (re)
1237 "end": "\s*\d+\.\d{3,4}", ? (re)
1238 "result": "failure", ? (re)
1238 "result": "failure", ? (re)
1239 "start": "\s*\d+\.\d{3,4}", ? (re)
1239 "start": "\s*\d+\.\d{3,4}", ? (re)
1240 "time": "\s*\d+\.\d{3,4}" (re)
1240 "time": "\s*\d+\.\d{3,4}" (re)
1241 }, ? (re)
1241 }, ? (re)
1242 "test-skip.t": {
1242 "test-skip.t": {
1243 "csys": "\s*\d+\.\d{3,4}", ? (re)
1243 "csys": "\s*\d+\.\d{3,4}", ? (re)
1244 "cuser": "\s*\d+\.\d{3,4}", ? (re)
1244 "cuser": "\s*\d+\.\d{3,4}", ? (re)
1245 "diff": "", ? (re)
1245 "diff": "", ? (re)
1246 "end": "\s*\d+\.\d{3,4}", ? (re)
1246 "end": "\s*\d+\.\d{3,4}", ? (re)
1247 "result": "skip", ? (re)
1247 "result": "skip", ? (re)
1248 "start": "\s*\d+\.\d{3,4}", ? (re)
1248 "start": "\s*\d+\.\d{3,4}", ? (re)
1249 "time": "\s*\d+\.\d{3,4}" (re)
1249 "time": "\s*\d+\.\d{3,4}" (re)
1250 }, ? (re)
1250 }, ? (re)
1251 "test-success.t": [\{] (re)
1251 "test-success.t": [\{] (re)
1252 "csys": "\s*\d+\.\d{3,4}", ? (re)
1252 "csys": "\s*\d+\.\d{3,4}", ? (re)
1253 "cuser": "\s*\d+\.\d{3,4}", ? (re)
1253 "cuser": "\s*\d+\.\d{3,4}", ? (re)
1254 "diff": "", ? (re)
1254 "diff": "", ? (re)
1255 "end": "\s*\d+\.\d{3,4}", ? (re)
1255 "end": "\s*\d+\.\d{3,4}", ? (re)
1256 "result": "success", ? (re)
1256 "result": "success", ? (re)
1257 "start": "\s*\d+\.\d{3,4}", ? (re)
1257 "start": "\s*\d+\.\d{3,4}", ? (re)
1258 "time": "\s*\d+\.\d{3,4}" (re)
1258 "time": "\s*\d+\.\d{3,4}" (re)
1259 }
1259 }
1260 } (no-eol)
1260 } (no-eol)
1261 $ ls -a output
1261 $ ls -a output
1262 .
1262 .
1263 ..
1263 ..
1264 .testtimes
1264 .testtimes
1265 report.json
1265 report.json
1266 test-failure.t.err
1266 test-failure.t.err
1267
1267
1268 Test that failed test accepted through interactive are properly reported:
1268 Test that failed test accepted through interactive are properly reported:
1269
1269
1270 $ cp test-failure.t backup
1270 $ cp test-failure.t backup
1271 $ echo y | rt --json -i
1271 $ echo y | rt --json -i
1272 running 3 tests using 1 parallel processes
1272 running 3 tests using 1 parallel processes
1273
1273
1274 --- $TESTTMP/test-failure.t
1274 --- $TESTTMP/test-failure.t
1275 +++ $TESTTMP/test-failure.t.err
1275 +++ $TESTTMP/test-failure.t.err
1276 @@ -1,5 +1,5 @@
1276 @@ -1,5 +1,5 @@
1277 $ echo babar
1277 $ echo babar
1278 - rataxes
1278 - rataxes
1279 + babar
1279 + babar
1280 This is a noop statement so that
1280 This is a noop statement so that
1281 this test is still more bytes than success.
1281 this test is still more bytes than success.
1282 pad pad pad pad............................................................
1282 pad pad pad pad............................................................
1283 Accept this change? [n] ..s
1283 Accept this change? [n] ..s
1284 Skipped test-skip.t: missing feature: nail clipper
1284 Skipped test-skip.t: missing feature: nail clipper
1285 # Ran 2 tests, 1 skipped, 0 failed.
1285 # Ran 2 tests, 1 skipped, 0 failed.
1286
1286
1287 $ cat report.json
1287 $ cat report.json
1288 testreport ={
1288 testreport ={
1289 "test-failure.t": [\{] (re)
1289 "test-failure.t": [\{] (re)
1290 "csys": "\s*\d+\.\d{3,4}", ? (re)
1290 "csys": "\s*\d+\.\d{3,4}", ? (re)
1291 "cuser": "\s*\d+\.\d{3,4}", ? (re)
1291 "cuser": "\s*\d+\.\d{3,4}", ? (re)
1292 "diff": "", ? (re)
1292 "diff": "", ? (re)
1293 "end": "\s*\d+\.\d{3,4}", ? (re)
1293 "end": "\s*\d+\.\d{3,4}", ? (re)
1294 "result": "success", ? (re)
1294 "result": "success", ? (re)
1295 "start": "\s*\d+\.\d{3,4}", ? (re)
1295 "start": "\s*\d+\.\d{3,4}", ? (re)
1296 "time": "\s*\d+\.\d{3,4}" (re)
1296 "time": "\s*\d+\.\d{3,4}" (re)
1297 }, ? (re)
1297 }, ? (re)
1298 "test-skip.t": {
1298 "test-skip.t": {
1299 "csys": "\s*\d+\.\d{3,4}", ? (re)
1299 "csys": "\s*\d+\.\d{3,4}", ? (re)
1300 "cuser": "\s*\d+\.\d{3,4}", ? (re)
1300 "cuser": "\s*\d+\.\d{3,4}", ? (re)
1301 "diff": "", ? (re)
1301 "diff": "", ? (re)
1302 "end": "\s*\d+\.\d{3,4}", ? (re)
1302 "end": "\s*\d+\.\d{3,4}", ? (re)
1303 "result": "skip", ? (re)
1303 "result": "skip", ? (re)
1304 "start": "\s*\d+\.\d{3,4}", ? (re)
1304 "start": "\s*\d+\.\d{3,4}", ? (re)
1305 "time": "\s*\d+\.\d{3,4}" (re)
1305 "time": "\s*\d+\.\d{3,4}" (re)
1306 }, ? (re)
1306 }, ? (re)
1307 "test-success.t": [\{] (re)
1307 "test-success.t": [\{] (re)
1308 "csys": "\s*\d+\.\d{3,4}", ? (re)
1308 "csys": "\s*\d+\.\d{3,4}", ? (re)
1309 "cuser": "\s*\d+\.\d{3,4}", ? (re)
1309 "cuser": "\s*\d+\.\d{3,4}", ? (re)
1310 "diff": "", ? (re)
1310 "diff": "", ? (re)
1311 "end": "\s*\d+\.\d{3,4}", ? (re)
1311 "end": "\s*\d+\.\d{3,4}", ? (re)
1312 "result": "success", ? (re)
1312 "result": "success", ? (re)
1313 "start": "\s*\d+\.\d{3,4}", ? (re)
1313 "start": "\s*\d+\.\d{3,4}", ? (re)
1314 "time": "\s*\d+\.\d{3,4}" (re)
1314 "time": "\s*\d+\.\d{3,4}" (re)
1315 }
1315 }
1316 } (no-eol)
1316 } (no-eol)
1317 $ mv backup test-failure.t
1317 $ mv backup test-failure.t
1318
1318
1319 backslash on end of line with glob matching is handled properly
1319 backslash on end of line with glob matching is handled properly
1320
1320
1321 $ cat > test-glob-backslash.t << EOF
1321 $ cat > test-glob-backslash.t << EOF
1322 > $ echo 'foo bar \\'
1322 > $ echo 'foo bar \\'
1323 > foo * \ (glob)
1323 > foo * \ (glob)
1324 > EOF
1324 > EOF
1325
1325
1326 $ rt test-glob-backslash.t
1326 $ rt test-glob-backslash.t
1327 running 1 tests using 1 parallel processes
1327 running 1 tests using 1 parallel processes
1328 .
1328 .
1329 # Ran 1 tests, 0 skipped, 0 failed.
1329 # Ran 1 tests, 0 skipped, 0 failed.
1330
1330
1331 $ rm -f test-glob-backslash.t
1331 $ rm -f test-glob-backslash.t
1332
1332
1333 Test globbing of local IP addresses
1333 Test globbing of local IP addresses
1334 $ echo 172.16.18.1
1334 $ echo 172.16.18.1
1335 $LOCALIP (glob)
1335 $LOCALIP (glob)
1336 $ echo dead:beef::1
1336 $ echo dead:beef::1
1337 $LOCALIP (glob)
1337 $LOCALIP (glob)
1338
1338
1339 Add support for external test formatter
1339 Add support for external test formatter
1340 =======================================
1340 =======================================
1341
1341
1342 $ CUSTOM_TEST_RESULT=basic_test_result "$PYTHON" $TESTDIR/run-tests.py --with-hg=`which hg` -j1 "$@" test-success.t test-failure.t
1342 $ CUSTOM_TEST_RESULT=basic_test_result "$PYTHON" $TESTDIR/run-tests.py --with-hg=`which hg` -j1 "$@" test-success.t test-failure.t
1343 running 2 tests using 1 parallel processes
1343 running 2 tests using 1 parallel processes
1344
1344
1345 # Ran 2 tests, 0 skipped, 0 failed.
1345 # Ran 2 tests, 0 skipped, 0 failed.
1346 ON_START! <__main__.TestSuite tests=[<__main__.TTest testMethod=test-failure.t>, <__main__.TTest testMethod=test-success.t>]>
1346 ON_START! <__main__.TestSuite tests=[<__main__.TTest testMethod=test-failure.t>, <__main__.TTest testMethod=test-success.t>]>
1347 FAILURE! test-failure.t output changed
1347 FAILURE! test-failure.t output changed
1348 SUCCESS! test-success.t
1348 SUCCESS! test-success.t
1349 ON_END!
1349 ON_END!
1350
1350
1351 Test reusability for third party tools
1351 Test reusability for third party tools
1352 ======================================
1352 ======================================
1353
1353
1354 $ mkdir "$TESTTMP"/anothertests
1354 $ mkdir "$TESTTMP"/anothertests
1355 $ cd "$TESTTMP"/anothertests
1355 $ cd "$TESTTMP"/anothertests
1356
1356
1357 test that `run-tests.py` can execute hghave, even if it runs not in
1357 test that `run-tests.py` can execute hghave, even if it runs not in
1358 Mercurial source tree.
1358 Mercurial source tree.
1359
1359
1360 $ cat > test-hghave.t <<EOF
1360 $ cat > test-hghave.t <<EOF
1361 > #require true
1361 > #require true
1362 > $ echo foo
1362 > $ echo foo
1363 > foo
1363 > foo
1364 > EOF
1364 > EOF
1365 $ rt test-hghave.t
1365 $ rt test-hghave.t
1366 running 1 tests using 1 parallel processes
1366 running 1 tests using 1 parallel processes
1367 .
1367 .
1368 # Ran 1 tests, 0 skipped, 0 failed.
1368 # Ran 1 tests, 0 skipped, 0 failed.
1369
1369
1370 test that RUNTESTDIR refers the directory, in which `run-tests.py` now
1370 test that RUNTESTDIR refers the directory, in which `run-tests.py` now
1371 running is placed.
1371 running is placed.
1372
1372
1373 $ cat > test-runtestdir.t <<EOF
1373 $ cat > test-runtestdir.t <<EOF
1374 > - $TESTDIR, in which test-run-tests.t is placed
1374 > - $TESTDIR, in which test-run-tests.t is placed
1375 > - \$TESTDIR, in which test-runtestdir.t is placed (expanded at runtime)
1375 > - \$TESTDIR, in which test-runtestdir.t is placed (expanded at runtime)
1376 > - \$RUNTESTDIR, in which run-tests.py is placed (expanded at runtime)
1376 > - \$RUNTESTDIR, in which run-tests.py is placed (expanded at runtime)
1377 >
1377 >
1378 > #if windows
1378 > #if windows
1379 > $ test "\$TESTDIR" = "$TESTTMP\anothertests"
1379 > $ test "\$TESTDIR" = "$TESTTMP\anothertests"
1380 > #else
1380 > #else
1381 > $ test "\$TESTDIR" = "$TESTTMP"/anothertests
1381 > $ test "\$TESTDIR" = "$TESTTMP"/anothertests
1382 > #endif
1382 > #endif
1383 > If this prints a path, that means RUNTESTDIR didn't equal
1383 > If this prints a path, that means RUNTESTDIR didn't equal
1384 > TESTDIR as it should have.
1384 > TESTDIR as it should have.
1385 > $ test "\$RUNTESTDIR" = "$TESTDIR" || echo "\$RUNTESTDIR"
1385 > $ test "\$RUNTESTDIR" = "$TESTDIR" || echo "\$RUNTESTDIR"
1386 > This should print the start of check-code. If this passes but the
1386 > This should print the start of check-code. If this passes but the
1387 > previous check failed, that means we found a copy of check-code at whatever
1387 > previous check failed, that means we found a copy of check-code at whatever
1388 > RUNTESTSDIR ended up containing, even though it doesn't match TESTDIR.
1388 > RUNTESTSDIR ended up containing, even though it doesn't match TESTDIR.
1389 > $ head -n 3 "\$RUNTESTDIR"/../contrib/check-code.py | sed 's@.!.*python@#!USRBINENVPY@'
1389 > $ head -n 3 "\$RUNTESTDIR"/../contrib/check-code.py | sed 's@.!.*python@#!USRBINENVPY@'
1390 > #!USRBINENVPY
1390 > #!USRBINENVPY
1391 > #
1391 > #
1392 > # check-code - a style and portability checker for Mercurial
1392 > # check-code - a style and portability checker for Mercurial
1393 > EOF
1393 > EOF
1394 $ rt test-runtestdir.t
1394 $ rt test-runtestdir.t
1395 running 1 tests using 1 parallel processes
1395 running 1 tests using 1 parallel processes
1396 .
1396 .
1397 # Ran 1 tests, 0 skipped, 0 failed.
1397 # Ran 1 tests, 0 skipped, 0 failed.
1398
1398
1399 #if execbit
1399 #if execbit
1400
1400
1401 test that TESTDIR is referred in PATH
1401 test that TESTDIR is referred in PATH
1402
1402
1403 $ cat > custom-command.sh <<EOF
1403 $ cat > custom-command.sh <<EOF
1404 > #!/bin/sh
1404 > #!/bin/sh
1405 > echo "hello world"
1405 > echo "hello world"
1406 > EOF
1406 > EOF
1407 $ chmod +x custom-command.sh
1407 $ chmod +x custom-command.sh
1408 $ cat > test-testdir-path.t <<EOF
1408 $ cat > test-testdir-path.t <<EOF
1409 > $ custom-command.sh
1409 > $ custom-command.sh
1410 > hello world
1410 > hello world
1411 > EOF
1411 > EOF
1412 $ rt test-testdir-path.t
1412 $ rt test-testdir-path.t
1413 running 1 tests using 1 parallel processes
1413 running 1 tests using 1 parallel processes
1414 .
1414 .
1415 # Ran 1 tests, 0 skipped, 0 failed.
1415 # Ran 1 tests, 0 skipped, 0 failed.
1416
1416
1417 #endif
1417 #endif
1418
1418
1419 test support for --allow-slow-tests
1419 test support for --allow-slow-tests
1420 $ cat > test-very-slow-test.t <<EOF
1420 $ cat > test-very-slow-test.t <<EOF
1421 > #require slow
1421 > #require slow
1422 > $ echo pass
1422 > $ echo pass
1423 > pass
1423 > pass
1424 > EOF
1424 > EOF
1425 $ rt test-very-slow-test.t
1425 $ rt test-very-slow-test.t
1426 running 1 tests using 1 parallel processes
1426 running 1 tests using 1 parallel processes
1427 s
1427 s
1428 Skipped test-very-slow-test.t: missing feature: allow slow tests (use --allow-slow-tests)
1428 Skipped test-very-slow-test.t: missing feature: allow slow tests (use --allow-slow-tests)
1429 # Ran 0 tests, 1 skipped, 0 failed.
1429 # Ran 0 tests, 1 skipped, 0 failed.
1430 $ rt $HGTEST_RUN_TESTS_PURE --allow-slow-tests test-very-slow-test.t
1430 $ rt $HGTEST_RUN_TESTS_PURE --allow-slow-tests test-very-slow-test.t
1431 running 1 tests using 1 parallel processes
1431 running 1 tests using 1 parallel processes
1432 .
1432 .
1433 # Ran 1 tests, 0 skipped, 0 failed.
1433 # Ran 1 tests, 0 skipped, 0 failed.
1434
1434
1435 support for running a test outside the current directory
1435 support for running a test outside the current directory
1436 $ mkdir nonlocal
1436 $ mkdir nonlocal
1437 $ cat > nonlocal/test-is-not-here.t << EOF
1437 $ cat > nonlocal/test-is-not-here.t << EOF
1438 > $ echo pass
1438 > $ echo pass
1439 > pass
1439 > pass
1440 > EOF
1440 > EOF
1441 $ rt nonlocal/test-is-not-here.t
1441 $ rt nonlocal/test-is-not-here.t
1442 running 1 tests using 1 parallel processes
1442 running 1 tests using 1 parallel processes
1443 .
1443 .
1444 # Ran 1 tests, 0 skipped, 0 failed.
1444 # Ran 1 tests, 0 skipped, 0 failed.
1445
1445
1446 support for automatically discovering test if arg is a folder
1446 support for automatically discovering test if arg is a folder
1447 $ mkdir tmp && cd tmp
1447 $ mkdir tmp && cd tmp
1448
1448
1449 $ cat > test-uno.t << EOF
1449 $ cat > test-uno.t << EOF
1450 > $ echo line
1450 > $ echo line
1451 > line
1451 > line
1452 > EOF
1452 > EOF
1453
1453
1454 $ cp test-uno.t test-dos.t
1454 $ cp test-uno.t test-dos.t
1455 $ cd ..
1455 $ cd ..
1456 $ cp -R tmp tmpp
1456 $ cp -R tmp tmpp
1457 $ cp tmp/test-uno.t test-solo.t
1457 $ cp tmp/test-uno.t test-solo.t
1458
1458
1459 $ rt tmp/ test-solo.t tmpp
1459 $ rt tmp/ test-solo.t tmpp
1460 running 5 tests using 1 parallel processes
1460 running 5 tests using 1 parallel processes
1461 .....
1461 .....
1462 # Ran 5 tests, 0 skipped, 0 failed.
1462 # Ran 5 tests, 0 skipped, 0 failed.
1463 $ rm -rf tmp tmpp
1463 $ rm -rf tmp tmpp
1464
1464
1465 support for running run-tests.py from another directory
1465 support for running run-tests.py from another directory
1466 $ mkdir tmp && cd tmp
1466 $ mkdir tmp && cd tmp
1467
1467
1468 $ cat > useful-file.sh << EOF
1468 $ cat > useful-file.sh << EOF
1469 > important command
1469 > important command
1470 > EOF
1470 > EOF
1471
1471
1472 $ cat > test-folder.t << EOF
1472 $ cat > test-folder.t << EOF
1473 > $ cat \$TESTDIR/useful-file.sh
1473 > $ cat \$TESTDIR/useful-file.sh
1474 > important command
1474 > important command
1475 > EOF
1475 > EOF
1476
1476
1477 $ cat > test-folder-fail.t << EOF
1477 $ cat > test-folder-fail.t << EOF
1478 > $ cat \$TESTDIR/useful-file.sh
1478 > $ cat \$TESTDIR/useful-file.sh
1479 > important commando
1479 > important commando
1480 > EOF
1480 > EOF
1481
1481
1482 $ cd ..
1482 $ cd ..
1483 $ rt tmp/test-*.t
1483 $ rt tmp/test-*.t
1484 running 2 tests using 1 parallel processes
1484 running 2 tests using 1 parallel processes
1485
1485
1486 --- $TESTTMP/anothertests/tmp/test-folder-fail.t
1486 --- $TESTTMP/anothertests/tmp/test-folder-fail.t
1487 +++ $TESTTMP/anothertests/tmp/test-folder-fail.t.err
1487 +++ $TESTTMP/anothertests/tmp/test-folder-fail.t.err
1488 @@ -1,2 +1,2 @@
1488 @@ -1,2 +1,2 @@
1489 $ cat $TESTDIR/useful-file.sh
1489 $ cat $TESTDIR/useful-file.sh
1490 - important commando
1490 - important commando
1491 + important command
1491 + important command
1492
1492
1493 ERROR: test-folder-fail.t output changed
1493 ERROR: test-folder-fail.t output changed
1494 !.
1494 !.
1495 Failed test-folder-fail.t: output changed
1495 Failed test-folder-fail.t: output changed
1496 # Ran 2 tests, 0 skipped, 1 failed.
1496 # Ran 2 tests, 0 skipped, 1 failed.
1497 python hash seed: * (glob)
1497 python hash seed: * (glob)
1498 [1]
1498 [1]
1499
1499
1500 support for bisecting failed tests automatically
1500 support for bisecting failed tests automatically
1501 $ hg init bisect
1501 $ hg init bisect
1502 $ cd bisect
1502 $ cd bisect
1503 $ cat >> test-bisect.t <<EOF
1503 $ cat >> test-bisect.t <<EOF
1504 > $ echo pass
1504 > $ echo pass
1505 > pass
1505 > pass
1506 > EOF
1506 > EOF
1507 $ hg add test-bisect.t
1507 $ hg add test-bisect.t
1508 $ hg ci -m 'good'
1508 $ hg ci -m 'good'
1509 $ cat >> test-bisect.t <<EOF
1509 $ cat >> test-bisect.t <<EOF
1510 > $ echo pass
1510 > $ echo pass
1511 > fail
1511 > fail
1512 > EOF
1512 > EOF
1513 $ hg ci -m 'bad'
1513 $ hg ci -m 'bad'
1514 $ rt --known-good-rev=0 test-bisect.t
1514 $ rt --known-good-rev=0 test-bisect.t
1515 running 1 tests using 1 parallel processes
1515 running 1 tests using 1 parallel processes
1516
1516
1517 --- $TESTTMP/anothertests/bisect/test-bisect.t
1517 --- $TESTTMP/anothertests/bisect/test-bisect.t
1518 +++ $TESTTMP/anothertests/bisect/test-bisect.t.err
1518 +++ $TESTTMP/anothertests/bisect/test-bisect.t.err
1519 @@ -1,4 +1,4 @@
1519 @@ -1,4 +1,4 @@
1520 $ echo pass
1520 $ echo pass
1521 pass
1521 pass
1522 $ echo pass
1522 $ echo pass
1523 - fail
1523 - fail
1524 + pass
1524 + pass
1525
1525
1526 ERROR: test-bisect.t output changed
1526 ERROR: test-bisect.t output changed
1527 !
1527 !
1528 Failed test-bisect.t: output changed
1528 Failed test-bisect.t: output changed
1529 test-bisect.t broken by 72cbf122d116 (bad)
1529 test-bisect.t broken by 72cbf122d116 (bad)
1530 # Ran 1 tests, 0 skipped, 1 failed.
1530 # Ran 1 tests, 0 skipped, 1 failed.
1531 python hash seed: * (glob)
1531 python hash seed: * (glob)
1532 [1]
1532 [1]
1533
1533
1534 $ cd ..
1534 $ cd ..
1535
1535
1536 support bisecting a separate repo
1536 support bisecting a separate repo
1537
1537
1538 $ hg init bisect-dependent
1538 $ hg init bisect-dependent
1539 $ cd bisect-dependent
1539 $ cd bisect-dependent
1540 $ cat > test-bisect-dependent.t <<EOF
1540 $ cat > test-bisect-dependent.t <<EOF
1541 > $ tail -1 \$TESTDIR/../bisect/test-bisect.t
1541 > $ tail -1 \$TESTDIR/../bisect/test-bisect.t
1542 > pass
1542 > pass
1543 > EOF
1543 > EOF
1544 $ hg commit -Am dependent test-bisect-dependent.t
1544 $ hg commit -Am dependent test-bisect-dependent.t
1545
1545
1546 $ rt --known-good-rev=0 test-bisect-dependent.t
1546 $ rt --known-good-rev=0 test-bisect-dependent.t
1547 running 1 tests using 1 parallel processes
1547 running 1 tests using 1 parallel processes
1548
1548
1549 --- $TESTTMP/anothertests/bisect-dependent/test-bisect-dependent.t
1549 --- $TESTTMP/anothertests/bisect-dependent/test-bisect-dependent.t
1550 +++ $TESTTMP/anothertests/bisect-dependent/test-bisect-dependent.t.err
1550 +++ $TESTTMP/anothertests/bisect-dependent/test-bisect-dependent.t.err
1551 @@ -1,2 +1,2 @@
1551 @@ -1,2 +1,2 @@
1552 $ tail -1 $TESTDIR/../bisect/test-bisect.t
1552 $ tail -1 $TESTDIR/../bisect/test-bisect.t
1553 - pass
1553 - pass
1554 + fail
1554 + fail
1555
1555
1556 ERROR: test-bisect-dependent.t output changed
1556 ERROR: test-bisect-dependent.t output changed
1557 !
1557 !
1558 Failed test-bisect-dependent.t: output changed
1558 Failed test-bisect-dependent.t: output changed
1559 Failed to identify failure point for test-bisect-dependent.t
1559 Failed to identify failure point for test-bisect-dependent.t
1560 # Ran 1 tests, 0 skipped, 1 failed.
1560 # Ran 1 tests, 0 skipped, 1 failed.
1561 python hash seed: * (glob)
1561 python hash seed: * (glob)
1562 [1]
1562 [1]
1563
1563
1564 $ rt --bisect-repo=../test-bisect test-bisect-dependent.t
1564 $ rt --bisect-repo=../test-bisect test-bisect-dependent.t
1565 usage: run-tests.py [options] [tests]
1565 usage: run-tests.py [options] [tests]
1566 run-tests.py: error: --bisect-repo cannot be used without --known-good-rev
1566 run-tests.py: error: --bisect-repo cannot be used without --known-good-rev
1567 [2]
1567 [2]
1568
1568
1569 $ rt --known-good-rev=0 --bisect-repo=../bisect test-bisect-dependent.t
1569 $ rt --known-good-rev=0 --bisect-repo=../bisect test-bisect-dependent.t
1570 running 1 tests using 1 parallel processes
1570 running 1 tests using 1 parallel processes
1571
1571
1572 --- $TESTTMP/anothertests/bisect-dependent/test-bisect-dependent.t
1572 --- $TESTTMP/anothertests/bisect-dependent/test-bisect-dependent.t
1573 +++ $TESTTMP/anothertests/bisect-dependent/test-bisect-dependent.t.err
1573 +++ $TESTTMP/anothertests/bisect-dependent/test-bisect-dependent.t.err
1574 @@ -1,2 +1,2 @@
1574 @@ -1,2 +1,2 @@
1575 $ tail -1 $TESTDIR/../bisect/test-bisect.t
1575 $ tail -1 $TESTDIR/../bisect/test-bisect.t
1576 - pass
1576 - pass
1577 + fail
1577 + fail
1578
1578
1579 ERROR: test-bisect-dependent.t output changed
1579 ERROR: test-bisect-dependent.t output changed
1580 !
1580 !
1581 Failed test-bisect-dependent.t: output changed
1581 Failed test-bisect-dependent.t: output changed
1582 test-bisect-dependent.t broken by 72cbf122d116 (bad)
1582 test-bisect-dependent.t broken by 72cbf122d116 (bad)
1583 # Ran 1 tests, 0 skipped, 1 failed.
1583 # Ran 1 tests, 0 skipped, 1 failed.
1584 python hash seed: * (glob)
1584 python hash seed: * (glob)
1585 [1]
1585 [1]
1586
1586
1587 $ cd ..
1587 $ cd ..
1588
1588
1589 Test a broken #if statement doesn't break run-tests threading.
1589 Test a broken #if statement doesn't break run-tests threading.
1590 ==============================================================
1590 ==============================================================
1591 $ mkdir broken
1591 $ mkdir broken
1592 $ cd broken
1592 $ cd broken
1593 $ cat > test-broken.t <<EOF
1593 $ cat > test-broken.t <<EOF
1594 > true
1594 > true
1595 > #if notarealhghavefeature
1595 > #if notarealhghavefeature
1596 > $ false
1596 > $ false
1597 > #endif
1597 > #endif
1598 > EOF
1598 > EOF
1599 $ for f in 1 2 3 4 ; do
1599 $ for f in 1 2 3 4 ; do
1600 > cat > test-works-$f.t <<EOF
1600 > cat > test-works-$f.t <<EOF
1601 > This is test case $f
1601 > This is test case $f
1602 > $ sleep 1
1602 > $ sleep 1
1603 > EOF
1603 > EOF
1604 > done
1604 > done
1605 $ rt -j 2
1605 $ rt -j 2
1606 running 5 tests using 2 parallel processes
1606 running 5 tests using 2 parallel processes
1607 ....
1607 ....
1608 # Ran 5 tests, 0 skipped, 0 failed.
1608 # Ran 5 tests, 0 skipped, 0 failed.
1609 skipped: unknown feature: notarealhghavefeature
1609 skipped: unknown feature: notarealhghavefeature
1610
1610
1611 $ cd ..
1611 $ cd ..
1612 $ rm -rf broken
1612 $ rm -rf broken
1613
1613
1614 Test cases in .t files
1614 Test cases in .t files
1615 ======================
1615 ======================
1616 $ mkdir cases
1616 $ mkdir cases
1617 $ cd cases
1617 $ cd cases
1618 $ cat > test-cases-abc.t <<'EOF'
1618 $ cat > test-cases-abc.t <<'EOF'
1619 > #testcases A B C
1619 > #testcases A B C
1620 > $ V=B
1620 > $ V=B
1621 > #if A
1621 > #if A
1622 > $ V=A
1622 > $ V=A
1623 > #endif
1623 > #endif
1624 > #if C
1624 > #if C
1625 > $ V=C
1625 > $ V=C
1626 > #endif
1626 > #endif
1627 > $ echo $V | sed 's/A/C/'
1627 > $ echo $V | sed 's/A/C/'
1628 > C
1628 > C
1629 > #if C
1629 > #if C
1630 > $ [ $V = C ]
1630 > $ [ $V = C ]
1631 > #endif
1631 > #endif
1632 > #if A
1632 > #if A
1633 > $ [ $V = C ]
1633 > $ [ $V = C ]
1634 > [1]
1634 > [1]
1635 > #endif
1635 > #endif
1636 > #if no-C
1636 > #if no-C
1637 > $ [ $V = C ]
1637 > $ [ $V = C ]
1638 > [1]
1638 > [1]
1639 > #endif
1639 > #endif
1640 > $ [ $V = D ]
1640 > $ [ $V = D ]
1641 > [1]
1641 > [1]
1642 > EOF
1642 > EOF
1643 $ rt
1643 $ rt
1644 running 3 tests using 1 parallel processes
1644 running 3 tests using 1 parallel processes
1645 .
1645 .
1646 --- $TESTTMP/anothertests/cases/test-cases-abc.t
1646 --- $TESTTMP/anothertests/cases/test-cases-abc.t
1647 +++ $TESTTMP/anothertests/cases/test-cases-abc.t#B.err
1647 +++ $TESTTMP/anothertests/cases/test-cases-abc.t#B.err
1648 @@ -7,7 +7,7 @@
1648 @@ -7,7 +7,7 @@
1649 $ V=C
1649 $ V=C
1650 #endif
1650 #endif
1651 $ echo $V | sed 's/A/C/'
1651 $ echo $V | sed 's/A/C/'
1652 - C
1652 - C
1653 + B
1653 + B
1654 #if C
1654 #if C
1655 $ [ $V = C ]
1655 $ [ $V = C ]
1656 #endif
1656 #endif
1657
1657
1658 ERROR: test-cases-abc.t#B output changed
1658 ERROR: test-cases-abc.t#B output changed
1659 !.
1659 !.
1660 Failed test-cases-abc.t#B: output changed
1660 Failed test-cases-abc.t#B: output changed
1661 # Ran 3 tests, 0 skipped, 1 failed.
1661 # Ran 3 tests, 0 skipped, 1 failed.
1662 python hash seed: * (glob)
1662 python hash seed: * (glob)
1663 [1]
1663 [1]
1664
1664
1665 --restart works
1665 --restart works
1666
1666
1667 $ rt --restart
1667 $ rt --restart
1668 running 2 tests using 1 parallel processes
1668 running 2 tests using 1 parallel processes
1669
1669
1670 --- $TESTTMP/anothertests/cases/test-cases-abc.t
1670 --- $TESTTMP/anothertests/cases/test-cases-abc.t
1671 +++ $TESTTMP/anothertests/cases/test-cases-abc.t#B.err
1671 +++ $TESTTMP/anothertests/cases/test-cases-abc.t#B.err
1672 @@ -7,7 +7,7 @@
1672 @@ -7,7 +7,7 @@
1673 $ V=C
1673 $ V=C
1674 #endif
1674 #endif
1675 $ echo $V | sed 's/A/C/'
1675 $ echo $V | sed 's/A/C/'
1676 - C
1676 - C
1677 + B
1677 + B
1678 #if C
1678 #if C
1679 $ [ $V = C ]
1679 $ [ $V = C ]
1680 #endif
1680 #endif
1681
1681
1682 ERROR: test-cases-abc.t#B output changed
1682 ERROR: test-cases-abc.t#B output changed
1683 !.
1683 !.
1684 Failed test-cases-abc.t#B: output changed
1684 Failed test-cases-abc.t#B: output changed
1685 # Ran 2 tests, 0 skipped, 1 failed.
1685 # Ran 2 tests, 0 skipped, 1 failed.
1686 python hash seed: * (glob)
1686 python hash seed: * (glob)
1687 [1]
1687 [1]
1688
1688
1689 --restart works with outputdir
1689 --restart works with outputdir
1690
1690
1691 $ mkdir output
1691 $ mkdir output
1692 $ mv test-cases-abc.t#B.err output
1692 $ mv test-cases-abc.t#B.err output
1693 $ rt --restart --outputdir output
1693 $ rt --restart --outputdir output
1694 running 2 tests using 1 parallel processes
1694 running 2 tests using 1 parallel processes
1695
1695
1696 --- $TESTTMP/anothertests/cases/test-cases-abc.t
1696 --- $TESTTMP/anothertests/cases/test-cases-abc.t
1697 +++ $TESTTMP/anothertests/cases/output/test-cases-abc.t#B.err
1697 +++ $TESTTMP/anothertests/cases/output/test-cases-abc.t#B.err
1698 @@ -7,7 +7,7 @@
1698 @@ -7,7 +7,7 @@
1699 $ V=C
1699 $ V=C
1700 #endif
1700 #endif
1701 $ echo $V | sed 's/A/C/'
1701 $ echo $V | sed 's/A/C/'
1702 - C
1702 - C
1703 + B
1703 + B
1704 #if C
1704 #if C
1705 $ [ $V = C ]
1705 $ [ $V = C ]
1706 #endif
1706 #endif
1707
1707
1708 ERROR: test-cases-abc.t#B output changed
1708 ERROR: test-cases-abc.t#B output changed
1709 !.
1709 !.
1710 Failed test-cases-abc.t#B: output changed
1710 Failed test-cases-abc.t#B: output changed
1711 # Ran 2 tests, 0 skipped, 1 failed.
1711 # Ran 2 tests, 0 skipped, 1 failed.
1712 python hash seed: * (glob)
1712 python hash seed: * (glob)
1713 [1]
1713 [1]
1714
1714
1715 Test TESTCASE variable
1715 Test TESTCASE variable
1716
1716
1717 $ cat > test-cases-ab.t <<'EOF'
1717 $ cat > test-cases-ab.t <<'EOF'
1718 > $ dostuff() {
1718 > $ dostuff() {
1719 > > echo "In case $TESTCASE"
1719 > > echo "In case $TESTCASE"
1720 > > }
1720 > > }
1721 > #testcases A B
1721 > #testcases A B
1722 > #if A
1722 > #if A
1723 > $ dostuff
1723 > $ dostuff
1724 > In case A
1724 > In case A
1725 > #endif
1725 > #endif
1726 > #if B
1726 > #if B
1727 > $ dostuff
1727 > $ dostuff
1728 > In case B
1728 > In case B
1729 > #endif
1729 > #endif
1730 > EOF
1730 > EOF
1731 $ rt test-cases-ab.t
1731 $ rt test-cases-ab.t
1732 running 2 tests using 1 parallel processes
1732 running 2 tests using 1 parallel processes
1733 ..
1733 ..
1734 # Ran 2 tests, 0 skipped, 0 failed.
1734 # Ran 2 tests, 0 skipped, 0 failed.
1735
1735
1736 Support running a specific test case
1736 Support running a specific test case
1737
1737
1738 $ rt "test-cases-abc.t#B"
1738 $ rt "test-cases-abc.t#B"
1739 running 1 tests using 1 parallel processes
1739 running 1 tests using 1 parallel processes
1740
1740
1741 --- $TESTTMP/anothertests/cases/test-cases-abc.t
1741 --- $TESTTMP/anothertests/cases/test-cases-abc.t
1742 +++ $TESTTMP/anothertests/cases/test-cases-abc.t#B.err
1742 +++ $TESTTMP/anothertests/cases/test-cases-abc.t#B.err
1743 @@ -7,7 +7,7 @@
1743 @@ -7,7 +7,7 @@
1744 $ V=C
1744 $ V=C
1745 #endif
1745 #endif
1746 $ echo $V | sed 's/A/C/'
1746 $ echo $V | sed 's/A/C/'
1747 - C
1747 - C
1748 + B
1748 + B
1749 #if C
1749 #if C
1750 $ [ $V = C ]
1750 $ [ $V = C ]
1751 #endif
1751 #endif
1752
1752
1753 ERROR: test-cases-abc.t#B output changed
1753 ERROR: test-cases-abc.t#B output changed
1754 !
1754 !
1755 Failed test-cases-abc.t#B: output changed
1755 Failed test-cases-abc.t#B: output changed
1756 # Ran 1 tests, 0 skipped, 1 failed.
1756 # Ran 1 tests, 0 skipped, 1 failed.
1757 python hash seed: * (glob)
1757 python hash seed: * (glob)
1758 [1]
1758 [1]
1759
1759
1760 Support running multiple test cases in the same file
1760 Support running multiple test cases in the same file
1761
1761
1762 $ rt test-cases-abc.t#B test-cases-abc.t#C
1762 $ rt test-cases-abc.t#B test-cases-abc.t#C
1763 running 2 tests using 1 parallel processes
1763 running 2 tests using 1 parallel processes
1764
1764
1765 --- $TESTTMP/anothertests/cases/test-cases-abc.t
1765 --- $TESTTMP/anothertests/cases/test-cases-abc.t
1766 +++ $TESTTMP/anothertests/cases/test-cases-abc.t#B.err
1766 +++ $TESTTMP/anothertests/cases/test-cases-abc.t#B.err
1767 @@ -7,7 +7,7 @@
1767 @@ -7,7 +7,7 @@
1768 $ V=C
1768 $ V=C
1769 #endif
1769 #endif
1770 $ echo $V | sed 's/A/C/'
1770 $ echo $V | sed 's/A/C/'
1771 - C
1771 - C
1772 + B
1772 + B
1773 #if C
1773 #if C
1774 $ [ $V = C ]
1774 $ [ $V = C ]
1775 #endif
1775 #endif
1776
1776
1777 ERROR: test-cases-abc.t#B output changed
1777 ERROR: test-cases-abc.t#B output changed
1778 !.
1778 !.
1779 Failed test-cases-abc.t#B: output changed
1779 Failed test-cases-abc.t#B: output changed
1780 # Ran 2 tests, 0 skipped, 1 failed.
1780 # Ran 2 tests, 0 skipped, 1 failed.
1781 python hash seed: * (glob)
1781 python hash seed: * (glob)
1782 [1]
1782 [1]
1783
1783
1784 Support ignoring invalid test cases
1784 Support ignoring invalid test cases
1785
1785
1786 $ rt test-cases-abc.t#B test-cases-abc.t#D
1786 $ rt test-cases-abc.t#B test-cases-abc.t#D
1787 running 1 tests using 1 parallel processes
1787 running 1 tests using 1 parallel processes
1788
1788
1789 --- $TESTTMP/anothertests/cases/test-cases-abc.t
1789 --- $TESTTMP/anothertests/cases/test-cases-abc.t
1790 +++ $TESTTMP/anothertests/cases/test-cases-abc.t#B.err
1790 +++ $TESTTMP/anothertests/cases/test-cases-abc.t#B.err
1791 @@ -7,7 +7,7 @@
1791 @@ -7,7 +7,7 @@
1792 $ V=C
1792 $ V=C
1793 #endif
1793 #endif
1794 $ echo $V | sed 's/A/C/'
1794 $ echo $V | sed 's/A/C/'
1795 - C
1795 - C
1796 + B
1796 + B
1797 #if C
1797 #if C
1798 $ [ $V = C ]
1798 $ [ $V = C ]
1799 #endif
1799 #endif
1800
1800
1801 ERROR: test-cases-abc.t#B output changed
1801 ERROR: test-cases-abc.t#B output changed
1802 !
1802 !
1803 Failed test-cases-abc.t#B: output changed
1803 Failed test-cases-abc.t#B: output changed
1804 # Ran 1 tests, 0 skipped, 1 failed.
1804 # Ran 1 tests, 0 skipped, 1 failed.
1805 python hash seed: * (glob)
1805 python hash seed: * (glob)
1806 [1]
1806 [1]
1807
1807
1808 Support running complex test cases names
1808 Support running complex test cases names
1809
1809
1810 $ cat > test-cases-advanced-cases.t <<'EOF'
1810 $ cat > test-cases-advanced-cases.t <<'EOF'
1811 > #testcases simple case-with-dashes casewith_-.chars
1811 > #testcases simple case-with-dashes casewith_-.chars
1812 > $ echo $TESTCASE
1812 > $ echo $TESTCASE
1813 > simple
1813 > simple
1814 > EOF
1814 > EOF
1815
1815
1816 $ cat test-cases-advanced-cases.t
1816 $ cat test-cases-advanced-cases.t
1817 #testcases simple case-with-dashes casewith_-.chars
1817 #testcases simple case-with-dashes casewith_-.chars
1818 $ echo $TESTCASE
1818 $ echo $TESTCASE
1819 simple
1819 simple
1820
1820
1821 $ rt test-cases-advanced-cases.t
1821 $ rt test-cases-advanced-cases.t
1822 running 3 tests using 1 parallel processes
1822 running 3 tests using 1 parallel processes
1823
1823
1824 --- $TESTTMP/anothertests/cases/test-cases-advanced-cases.t
1824 --- $TESTTMP/anothertests/cases/test-cases-advanced-cases.t
1825 +++ $TESTTMP/anothertests/cases/test-cases-advanced-cases.t#case-with-dashes.err
1825 +++ $TESTTMP/anothertests/cases/test-cases-advanced-cases.t#case-with-dashes.err
1826 @@ -1,3 +1,3 @@
1826 @@ -1,3 +1,3 @@
1827 #testcases simple case-with-dashes casewith_-.chars
1827 #testcases simple case-with-dashes casewith_-.chars
1828 $ echo $TESTCASE
1828 $ echo $TESTCASE
1829 - simple
1829 - simple
1830 + case-with-dashes
1830 + case-with-dashes
1831
1831
1832 ERROR: test-cases-advanced-cases.t#case-with-dashes output changed
1832 ERROR: test-cases-advanced-cases.t#case-with-dashes output changed
1833 !
1833 !
1834 --- $TESTTMP/anothertests/cases/test-cases-advanced-cases.t
1834 --- $TESTTMP/anothertests/cases/test-cases-advanced-cases.t
1835 +++ $TESTTMP/anothertests/cases/test-cases-advanced-cases.t#casewith_-.chars.err
1835 +++ $TESTTMP/anothertests/cases/test-cases-advanced-cases.t#casewith_-.chars.err
1836 @@ -1,3 +1,3 @@
1836 @@ -1,3 +1,3 @@
1837 #testcases simple case-with-dashes casewith_-.chars
1837 #testcases simple case-with-dashes casewith_-.chars
1838 $ echo $TESTCASE
1838 $ echo $TESTCASE
1839 - simple
1839 - simple
1840 + casewith_-.chars
1840 + casewith_-.chars
1841
1841
1842 ERROR: test-cases-advanced-cases.t#casewith_-.chars output changed
1842 ERROR: test-cases-advanced-cases.t#casewith_-.chars output changed
1843 !.
1843 !.
1844 Failed test-cases-advanced-cases.t#case-with-dashes: output changed
1844 Failed test-cases-advanced-cases.t#case-with-dashes: output changed
1845 Failed test-cases-advanced-cases.t#casewith_-.chars: output changed
1845 Failed test-cases-advanced-cases.t#casewith_-.chars: output changed
1846 # Ran 3 tests, 0 skipped, 2 failed.
1846 # Ran 3 tests, 0 skipped, 2 failed.
1847 python hash seed: * (glob)
1847 python hash seed: * (glob)
1848 [1]
1848 [1]
1849
1849
1850 $ rt "test-cases-advanced-cases.t#case-with-dashes"
1850 $ rt "test-cases-advanced-cases.t#case-with-dashes"
1851 running 1 tests using 1 parallel processes
1851 running 1 tests using 1 parallel processes
1852
1852
1853 --- $TESTTMP/anothertests/cases/test-cases-advanced-cases.t
1853 --- $TESTTMP/anothertests/cases/test-cases-advanced-cases.t
1854 +++ $TESTTMP/anothertests/cases/test-cases-advanced-cases.t#case-with-dashes.err
1854 +++ $TESTTMP/anothertests/cases/test-cases-advanced-cases.t#case-with-dashes.err
1855 @@ -1,3 +1,3 @@
1855 @@ -1,3 +1,3 @@
1856 #testcases simple case-with-dashes casewith_-.chars
1856 #testcases simple case-with-dashes casewith_-.chars
1857 $ echo $TESTCASE
1857 $ echo $TESTCASE
1858 - simple
1858 - simple
1859 + case-with-dashes
1859 + case-with-dashes
1860
1860
1861 ERROR: test-cases-advanced-cases.t#case-with-dashes output changed
1861 ERROR: test-cases-advanced-cases.t#case-with-dashes output changed
1862 !
1862 !
1863 Failed test-cases-advanced-cases.t#case-with-dashes: output changed
1863 Failed test-cases-advanced-cases.t#case-with-dashes: output changed
1864 # Ran 1 tests, 0 skipped, 1 failed.
1864 # Ran 1 tests, 0 skipped, 1 failed.
1865 python hash seed: * (glob)
1865 python hash seed: * (glob)
1866 [1]
1866 [1]
1867
1867
1868 $ rt "test-cases-advanced-cases.t#casewith_-.chars"
1868 $ rt "test-cases-advanced-cases.t#casewith_-.chars"
1869 running 1 tests using 1 parallel processes
1869 running 1 tests using 1 parallel processes
1870
1870
1871 --- $TESTTMP/anothertests/cases/test-cases-advanced-cases.t
1871 --- $TESTTMP/anothertests/cases/test-cases-advanced-cases.t
1872 +++ $TESTTMP/anothertests/cases/test-cases-advanced-cases.t#casewith_-.chars.err
1872 +++ $TESTTMP/anothertests/cases/test-cases-advanced-cases.t#casewith_-.chars.err
1873 @@ -1,3 +1,3 @@
1873 @@ -1,3 +1,3 @@
1874 #testcases simple case-with-dashes casewith_-.chars
1874 #testcases simple case-with-dashes casewith_-.chars
1875 $ echo $TESTCASE
1875 $ echo $TESTCASE
1876 - simple
1876 - simple
1877 + casewith_-.chars
1877 + casewith_-.chars
1878
1878
1879 ERROR: test-cases-advanced-cases.t#casewith_-.chars output changed
1879 ERROR: test-cases-advanced-cases.t#casewith_-.chars output changed
1880 !
1880 !
1881 Failed test-cases-advanced-cases.t#casewith_-.chars: output changed
1881 Failed test-cases-advanced-cases.t#casewith_-.chars: output changed
1882 # Ran 1 tests, 0 skipped, 1 failed.
1882 # Ran 1 tests, 0 skipped, 1 failed.
1883 python hash seed: * (glob)
1883 python hash seed: * (glob)
1884 [1]
1884 [1]
1885
1885
1886 Test automatic pattern replacement
1886 Test automatic pattern replacement
1887 ==================================
1887 ==================================
1888
1888
1889 $ cat << EOF >> common-pattern.py
1889 $ cat << EOF >> common-pattern.py
1890 > substitutions = [
1890 > substitutions = [
1891 > (br'foo-(.*)\\b',
1891 > (br'foo-(.*)\\b',
1892 > br'\$XXX=\\1\$'),
1892 > br'\$XXX=\\1\$'),
1893 > (br'bar\\n',
1893 > (br'bar\\n',
1894 > br'\$YYY$\\n'),
1894 > br'\$YYY$\\n'),
1895 > ]
1895 > ]
1896 > EOF
1896 > EOF
1897
1897
1898 $ cat << EOF >> test-substitution.t
1898 $ cat << EOF >> test-substitution.t
1899 > $ echo foo-12
1899 > $ echo foo-12
1900 > \$XXX=12$
1900 > \$XXX=12$
1901 > $ echo foo-42
1901 > $ echo foo-42
1902 > \$XXX=42$
1902 > \$XXX=42$
1903 > $ echo bar prior
1903 > $ echo bar prior
1904 > bar prior
1904 > bar prior
1905 > $ echo lastbar
1905 > $ echo lastbar
1906 > last\$YYY$
1906 > last\$YYY$
1907 > $ echo foo-bar foo-baz
1907 > $ echo foo-bar foo-baz
1908 > EOF
1908 > EOF
1909
1909
1910 $ rt test-substitution.t
1910 $ rt test-substitution.t
1911 running 1 tests using 1 parallel processes
1911 running 1 tests using 1 parallel processes
1912
1912
1913 --- $TESTTMP/anothertests/cases/test-substitution.t
1913 --- $TESTTMP/anothertests/cases/test-substitution.t
1914 +++ $TESTTMP/anothertests/cases/test-substitution.t.err
1914 +++ $TESTTMP/anothertests/cases/test-substitution.t.err
1915 @@ -7,3 +7,4 @@
1915 @@ -7,3 +7,4 @@
1916 $ echo lastbar
1916 $ echo lastbar
1917 last$YYY$
1917 last$YYY$
1918 $ echo foo-bar foo-baz
1918 $ echo foo-bar foo-baz
1919 + $XXX=bar foo-baz$
1919 + $XXX=bar foo-baz$
1920
1920
1921 ERROR: test-substitution.t output changed
1921 ERROR: test-substitution.t output changed
1922 !
1922 !
1923 Failed test-substitution.t: output changed
1923 Failed test-substitution.t: output changed
1924 # Ran 1 tests, 0 skipped, 1 failed.
1924 # Ran 1 tests, 0 skipped, 1 failed.
1925 python hash seed: * (glob)
1925 python hash seed: * (glob)
1926 [1]
1926 [1]
1927
1927
1928 --extra-config-opt works
1928 --extra-config-opt works
1929
1929
1930 $ cat << EOF >> test-config-opt.t
1930 $ cat << EOF >> test-config-opt.t
1931 > $ hg init test-config-opt
1931 > $ hg init test-config-opt
1932 > $ hg -R test-config-opt purge
1932 > $ hg -R test-config-opt purge
1933 > EOF
1933 > EOF
1934
1934
1935 $ rt --extra-config-opt extensions.purge= test-config-opt.t
1935 $ rt --extra-config-opt extensions.purge= test-config-opt.t
1936 running 1 tests using 1 parallel processes
1936 running 1 tests using 1 parallel processes
1937 .
1937 .
1938 # Ran 1 tests, 0 skipped, 0 failed.
1938 # Ran 1 tests, 0 skipped, 0 failed.
1939
1939
1940 Test conditional output matching
1940 Test conditional output matching
1941 ================================
1941 ================================
1942
1942
1943 $ cat << EOF >> test-conditional-matching.t
1943 $ cat << EOF >> test-conditional-matching.t
1944 > #testcases foo bar
1944 > #testcases foo bar
1945 > $ echo richtig
1945 > $ echo richtig
1946 > richtig (true !)
1946 > richtig (true !)
1947 > $ echo falsch
1947 > $ echo falsch
1948 > falsch (false !)
1948 > falsch (false !)
1949 > #if foo
1949 > #if foo
1950 > $ echo arthur
1950 > $ echo arthur
1951 > arthur (bar !)
1951 > arthur (bar !)
1952 > #endif
1952 > #endif
1953 > $ echo celeste
1953 > $ echo celeste
1954 > celeste (foo !)
1954 > celeste (foo !)
1955 > $ echo zephir
1955 > $ echo zephir
1956 > zephir (bar !)
1956 > zephir (bar !)
1957 > EOF
1957 > EOF
1958
1958
1959 $ rt test-conditional-matching.t
1959 $ rt test-conditional-matching.t
1960 running 2 tests using 1 parallel processes
1960 running 2 tests using 1 parallel processes
1961
1961
1962 --- $TESTTMP/anothertests/cases/test-conditional-matching.t
1962 --- $TESTTMP/anothertests/cases/test-conditional-matching.t
1963 +++ $TESTTMP/anothertests/cases/test-conditional-matching.t#bar.err
1963 +++ $TESTTMP/anothertests/cases/test-conditional-matching.t#bar.err
1964 @@ -3,11 +3,13 @@
1964 @@ -3,11 +3,13 @@
1965 richtig (true !)
1965 richtig (true !)
1966 $ echo falsch
1966 $ echo falsch
1967 falsch (false !)
1967 falsch (false !)
1968 + falsch
1968 + falsch
1969 #if foo
1969 #if foo
1970 $ echo arthur
1970 $ echo arthur
1971 arthur \(bar !\) (re)
1971 arthur \(bar !\) (re)
1972 #endif
1972 #endif
1973 $ echo celeste
1973 $ echo celeste
1974 celeste \(foo !\) (re)
1974 celeste \(foo !\) (re)
1975 + celeste
1975 + celeste
1976 $ echo zephir
1976 $ echo zephir
1977 zephir \(bar !\) (re)
1977 zephir \(bar !\) (re)
1978
1978
1979 ERROR: test-conditional-matching.t#bar output changed
1979 ERROR: test-conditional-matching.t#bar output changed
1980 !
1980 !
1981 --- $TESTTMP/anothertests/cases/test-conditional-matching.t
1981 --- $TESTTMP/anothertests/cases/test-conditional-matching.t
1982 +++ $TESTTMP/anothertests/cases/test-conditional-matching.t#foo.err
1982 +++ $TESTTMP/anothertests/cases/test-conditional-matching.t#foo.err
1983 @@ -3,11 +3,14 @@
1983 @@ -3,11 +3,14 @@
1984 richtig (true !)
1984 richtig (true !)
1985 $ echo falsch
1985 $ echo falsch
1986 falsch (false !)
1986 falsch (false !)
1987 + falsch
1987 + falsch
1988 #if foo
1988 #if foo
1989 $ echo arthur
1989 $ echo arthur
1990 arthur \(bar !\) (re)
1990 arthur \(bar !\) (re)
1991 + arthur
1991 + arthur
1992 #endif
1992 #endif
1993 $ echo celeste
1993 $ echo celeste
1994 celeste \(foo !\) (re)
1994 celeste \(foo !\) (re)
1995 $ echo zephir
1995 $ echo zephir
1996 zephir \(bar !\) (re)
1996 zephir \(bar !\) (re)
1997 + zephir
1997 + zephir
1998
1998
1999 ERROR: test-conditional-matching.t#foo output changed
1999 ERROR: test-conditional-matching.t#foo output changed
2000 !
2000 !
2001 Failed test-conditional-matching.t#bar: output changed
2001 Failed test-conditional-matching.t#bar: output changed
2002 Failed test-conditional-matching.t#foo: output changed
2002 Failed test-conditional-matching.t#foo: output changed
2003 # Ran 2 tests, 0 skipped, 2 failed.
2003 # Ran 2 tests, 0 skipped, 2 failed.
2004 python hash seed: * (glob)
2004 python hash seed: * (glob)
2005 [1]
2005 [1]
General Comments 0
You need to be logged in to leave comments. Login now