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