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