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