##// END OF EJS Templates
run-tests: follow-up on the test-case format...
run-tests: follow-up on the test-case format It turns out the original regex doesn't support real test cases names like the one Mercurial is using. Update the regex to being able to precisely select them on the command line. Differential Revision: https://phab.mercurial-scm.org/D3699

File last commit:

r38263:f2e3196a @32 default
r38263:f2e3196a @32 default
Show More
test-run-tests.t
1768 lines | 43.6 KiB | text/troff | Tads3Lexer
Pierre-Yves David
test: introduce test-run-tests.t...
r21732 This file tests the behavior of run-tests.py itself.
Pierre-Yves David
test-run-test: unset run-test specific environment variables...
r24960 Avoid interference from actual test env:
timeless
tests: refactor run-tests helpers...
r29220 $ . "$TESTDIR/helper-runtests.sh"
Pierre-Yves David
test-run-test: unset run-test specific environment variables...
r24960
Matt Mackall
tests: avoid duplicate install steps in test-run-tests...
r27395 Smoke test with install
Pierre-Yves David
test: introduce test-run-tests.t...
r21732 ============
Augie Fackler
tests: make sure test-run-tests.t actually runs run-tests.py under Python 3...
r37758 $ $PYTHON $TESTDIR/run-tests.py $HGTEST_RUN_TESTS_PURE -l
Pierre-Yves David
test: introduce test-run-tests.t...
r21732
Gregory Szorc
tests: remove support for warned tests...
r32942 # Ran 0 tests, 0 skipped, 0 failed.
Pierre-Yves David
test-run-tests.t: test running a passing test
r21734
Matt Mackall
tests: avoid duplicate install steps in test-run-tests...
r27395 Define a helper to avoid the install step
=============
$ rt()
> {
Augie Fackler
tests: make sure test-run-tests.t actually runs run-tests.py under Python 3...
r37758 > $PYTHON $TESTDIR/run-tests.py --with-hg=`which hg` "$@"
Matt Mackall
tests: avoid duplicate install steps in test-run-tests...
r27395 > }
timeless
run-tests: warn about symlinks to non hg scripts...
r28037 error paths
#if symlink
$ ln -s `which true` hg
Augie Fackler
tests: make sure test-run-tests.t actually runs run-tests.py under Python 3...
r37758 $ $PYTHON $TESTDIR/run-tests.py --with-hg=./hg
timeless
run-tests: warn about symlinks to non hg scripts...
r28037 warning: --with-hg should specify an hg script
Gregory Szorc
tests: remove support for warned tests...
r32942 # Ran 0 tests, 0 skipped, 0 failed.
timeless
run-tests: warn about symlinks to non hg scripts...
r28037 $ rm hg
#endif
#if execbit
$ touch hg
Augie Fackler
tests: make sure test-run-tests.t actually runs run-tests.py under Python 3...
r37758 $ $PYTHON $TESTDIR/run-tests.py --with-hg=./hg
Gregory Szorc
run-tests: convert to argparse...
r35188 usage: run-tests.py [options] [tests]
timeless
run-tests: warn about symlinks to non hg scripts...
r28037 run-tests.py: error: --with-hg must specify an executable hg script
[2]
$ rm hg
#endif
Matt Harbison
run-tests: support per-line conditional output in tests...
r31829 Features for testing optional lines
===================================
$ cat > hghaveaddon.py <<EOF
> import hghave
> @hghave.check("custom", "custom hghave feature")
> def has_custom():
> return True
> @hghave.check("missing", "missing hghave feature")
> def has_missing():
> return False
> EOF
timeless
run-tests: handle empty tests
r28812 an empty test
=======================
$ touch test-empty.t
$ rt
.
Gregory Szorc
tests: remove support for warned tests...
r32942 # Ran 1 tests, 0 skipped, 0 failed.
timeless
run-tests: handle empty tests
r28812 $ rm test-empty.t
Pierre-Yves David
test-run-tests.t: test running a passing test
r21734 a succesful test
=======================
$ cat > test-success.t << EOF
> $ echo babar
> babar
Augie Fackler
test-run-tests.t: add extra data to tests for keyword tests...
r21995 > $ echo xyzzy
Matt Harbison
run-tests: prevent a (glob) declaration from reordering (?) lines...
r31827 > dont_print (?)
> nothing[42]line (re) (?)
timeless
run-tests: make _processoutput picky about optional globs...
r28701 > never*happens (glob) (?)
Matt Harbison
run-tests: prevent a (glob) declaration from reordering (?) lines...
r31827 > more_nothing (?)
Augie Fackler
test-run-tests.t: add extra data to tests for keyword tests...
r21995 > xyzzy
Matt Mackall
tests: add (?) flag for optional lines...
r25388 > nor this (?)
Matt Harbison
run-tests: defer leftover (?) cleanup until after all output is exhausted...
r28317 > $ printf 'abc\ndef\nxyz\n'
> 123 (?)
> abc
> def (?)
> 456 (?)
> xyz
Matt Harbison
run-tests: support per-line conditional output in tests...
r31829 > $ printf 'zyx\nwvu\ntsr\n'
> abc (?)
> zyx (custom !)
> wvu
> no_print (no-custom !)
> tsr (no-missing !)
> missing (missing !)
Pierre-Yves David
test-run-tests.t: test running a passing test
r21734 > EOF
Matt Mackall
tests: avoid duplicate install steps in test-run-tests...
r27395 $ rt
Pierre-Yves David
test-run-tests.t: test running a passing test
r21734 .
Gregory Szorc
tests: remove support for warned tests...
r32942 # Ran 1 tests, 0 skipped, 0 failed.
Pierre-Yves David
test-run-tests.t: test running a failing test
r21738
failing test
==================
timeless
tests: ensure run-tests handles multiple lines of churn...
r28619 test churn with globs
$ cat > test-failure.t <<EOF
Martin von Zweigbergk
run-tests: make "| foo (re)" not match everything...
r35156 > $ echo "bar-baz"; echo "bar-bad"; echo foo
timeless
tests: ensure run-tests handles multiple lines of churn...
r28619 > bar*bad (glob)
> bar*baz (glob)
Martin von Zweigbergk
run-tests: make "| foo (re)" not match everything...
r35156 > | fo (re)
timeless
tests: ensure run-tests handles multiple lines of churn...
r28619 > EOF
$ rt test-failure.t
--- $TESTTMP/test-failure.t
+++ $TESTTMP/test-failure.t.err
Martin von Zweigbergk
run-tests: make "| foo (re)" not match everything...
r35156 @@ -1,4 +1,4 @@
$ echo "bar-baz"; echo "bar-bad"; echo foo
timeless
tests: ensure run-tests handles multiple lines of churn...
r28619 + bar*baz (glob)
bar*bad (glob)
- bar*baz (glob)
Martin von Zweigbergk
run-tests: make "| foo (re)" not match everything...
r35156 - | fo (re)
+ foo
timeless
tests: ensure run-tests handles multiple lines of churn...
r28619
ERROR: test-failure.t output changed
!
Failed test-failure.t: output changed
Gregory Szorc
tests: remove support for warned tests...
r32942 # Ran 1 tests, 0 skipped, 1 failed.
timeless
tests: ensure run-tests handles multiple lines of churn...
r28619 python hash seed: * (glob)
[1]
Matthieu Laneuville
run-tests: add color to output if pygments is available...
r33420 test diff colorisation
Pulkit Goyal
run-tests: make sure to check if pygments is installed before using it...
r33552 #if no-windows pygments
Matthieu Laneuville
run-tests: add color to output if pygments is available...
r33420 $ rt test-failure.t --color always
\x1b[38;5;124m--- $TESTTMP/test-failure.t\x1b[39m (esc)
\x1b[38;5;34m+++ $TESTTMP/test-failure.t.err\x1b[39m (esc)
Martin von Zweigbergk
run-tests: make "| foo (re)" not match everything...
r35156 \x1b[38;5;90;01m@@ -1,4 +1,4 @@\x1b[39;00m (esc)
$ echo "bar-baz"; echo "bar-bad"; echo foo
Matthieu Laneuville
run-tests: add color to output if pygments is available...
r33420 \x1b[38;5;34m+ bar*baz (glob)\x1b[39m (esc)
bar*bad (glob)
\x1b[38;5;124m- bar*baz (glob)\x1b[39m (esc)
Martin von Zweigbergk
run-tests: make "| foo (re)" not match everything...
r35156 \x1b[38;5;124m- | fo (re)\x1b[39m (esc)
\x1b[38;5;34m+ foo\x1b[39m (esc)
Martin von Zweigbergk
run-tests: move newline out of colorized message...
r34843
Matthieu Laneuville
run-tests: also color the summary messages (skipped, failed...)
r33813 \x1b[38;5;88mERROR: \x1b[39m\x1b[38;5;9mtest-failure.t\x1b[39m\x1b[38;5;88m output changed\x1b[39m (esc)
Matthieu Laneuville
run-tests: add color to output if pygments is available...
r33420 !
Matthieu Laneuville
run-tests: also color the summary messages (skipped, failed...)
r33813 \x1b[38;5;88mFailed \x1b[39m\x1b[38;5;9mtest-failure.t\x1b[39m\x1b[38;5;88m: output changed\x1b[39m (esc)
Matthieu Laneuville
run-tests: add color to output if pygments is available...
r33420 # Ran 1 tests, 0 skipped, 1 failed.
python hash seed: * (glob)
[1]
$ rt test-failure.t 2> tmp.log
[1]
$ cat tmp.log
--- $TESTTMP/test-failure.t
+++ $TESTTMP/test-failure.t.err
Martin von Zweigbergk
run-tests: make "| foo (re)" not match everything...
r35156 @@ -1,4 +1,4 @@
$ echo "bar-baz"; echo "bar-bad"; echo foo
Matthieu Laneuville
run-tests: add color to output if pygments is available...
r33420 + bar*baz (glob)
bar*bad (glob)
- bar*baz (glob)
Martin von Zweigbergk
run-tests: make "| foo (re)" not match everything...
r35156 - | fo (re)
+ foo
Matthieu Laneuville
run-tests: add color to output if pygments is available...
r33420
ERROR: test-failure.t output changed
!
Failed test-failure.t: output changed
# Ran 1 tests, 0 skipped, 1 failed.
python hash seed: * (glob)
Matt Harbison
run-tests: disable color on Windows...
r33500 #endif
Matthieu Laneuville
run-tests: add color to output if pygments is available...
r33420
Matt Harbison
run-tests: drop required (feature !) style lines when the output is missing...
r33658 $ cat > test-failure.t << EOF
> $ true
> should go away (true !)
> $ true
> should stay (false !)
>
> Should remove first line, not second or third
> $ echo 'testing'
> baz*foo (glob) (true !)
> foobar*foo (glob) (false !)
> te*ting (glob) (true !)
>
> Should keep first two lines, remove third and last
> $ echo 'testing'
> test.ng (re) (true !)
> foo.ar (re) (false !)
> b.r (re) (true !)
> missing (?)
> awol (true !)
Matt Harbison
run-tests: don't drop optional lines after a missing unconditional line...
r33659 >
> The "missing" line should stay, even though awol is dropped
> $ echo 'testing'
> test.ng (re) (true !)
> foo.ar (?)
> awol
> missing (?)
Matt Harbison
run-tests: drop required (feature !) style lines when the output is missing...
r33658 > EOF
$ rt test-failure.t
--- $TESTTMP/test-failure.t
+++ $TESTTMP/test-failure.t.err
@@ -1,11 +1,9 @@
$ true
- should go away (true !)
$ true
should stay (false !)
Should remove first line, not second or third
$ echo 'testing'
- baz*foo (glob) (true !)
foobar*foo (glob) (false !)
te*ting (glob) (true !)
Matt Harbison
run-tests: don't drop optional lines after a missing unconditional line...
r33659 foo.ar (re) (false !)
missing (?)
@@ -13,13 +11,10 @@
Matt Harbison
run-tests: drop required (feature !) style lines when the output is missing...
r33658 $ echo 'testing'
test.ng (re) (true !)
foo.ar (re) (false !)
- b.r (re) (true !)
missing (?)
- awol (true !)
Matt Harbison
run-tests: don't drop optional lines after a missing unconditional line...
r33659
The "missing" line should stay, even though awol is dropped
$ echo 'testing'
test.ng (re) (true !)
foo.ar (?)
- awol
missing (?)
Matt Harbison
run-tests: drop required (feature !) style lines when the output is missing...
r33658
ERROR: test-failure.t output changed
!
Failed test-failure.t: output changed
# Ran 1 tests, 0 skipped, 1 failed.
python hash seed: * (glob)
[1]
timeless
tests: ensure run-tests handles multiple lines of churn...
r28619 basic failing test
Pierre-Yves David
test-run-tests.t: test running a failing test
r21738 $ cat > test-failure.t << EOF
> $ echo babar
> rataxes
Augie Fackler
test-run-tests.t: add extra data to tests for keyword tests...
r21995 > This is a noop statement so that
> this test is still more bytes than success.
Matt Harbison
test-run-tests: pad the failure test to preserve the run order...
r28316 > pad pad pad pad............................................................
> pad pad pad pad............................................................
Matt Harbison
test-run-tests: pad the failure test to preserve the run order...
r31828 > pad pad pad pad............................................................
> pad pad pad pad............................................................
> pad pad pad pad............................................................
> pad pad pad pad............................................................
Pierre-Yves David
test-run-tests.t: test running a failing test
r21738 > EOF
Gregory Szorc
run-tests: explicitly handle unicode when writing xunit file...
r24500 >>> fh = open('test-failure-unicode.t', 'wb')
Augie Fackler
test-run-tests.t: work around file.write() returning an int...
r25054 >>> fh.write(u' $ echo babar\u03b1\n'.encode('utf-8')) and None
>>> fh.write(u' l\u03b5\u03b5t\n'.encode('utf-8')) and None
Gregory Szorc
run-tests: explicitly handle unicode when writing xunit file...
r24500
Matt Mackall
tests: avoid duplicate install steps in test-run-tests...
r27395 $ rt
Pierre-Yves David
test-run-tests.t: test running a failing test
r21738
Matt Harbison
tests: fix globs for Windows...
r23348 --- $TESTTMP/test-failure.t
+++ $TESTTMP/test-failure.t.err
Matt Harbison
test-run-tests: pad the failure test to preserve the run order...
r28316 @@ -1,5 +1,5 @@
Pierre-Yves David
test-run-tests.t: test running a failing test
r21738 $ echo babar
- rataxes
+ babar
Augie Fackler
test-run-tests.t: add extra data to tests for keyword tests...
r21995 This is a noop statement so that
this test is still more bytes than success.
Matt Harbison
test-run-tests: pad the failure test to preserve the run order...
r28316 pad pad pad pad............................................................
Pierre-Yves David
test-run-tests.t: test running a failing test
r21738
ERROR: test-failure.t output changed
!.
Gregory Szorc
run-tests: explicitly handle unicode when writing xunit file...
r24500 --- $TESTTMP/test-failure-unicode.t
+++ $TESTTMP/test-failure-unicode.t.err
@@ -1,2 +1,2 @@
$ echo babar\xce\xb1 (esc)
- l\xce\xb5\xce\xb5t (esc)
+ babar\xce\xb1 (esc)
ERROR: test-failure-unicode.t output changed
!
Pierre-Yves David
test-run-tests.t: test running a failing test
r21738 Failed test-failure.t: output changed
Gregory Szorc
run-tests: explicitly handle unicode when writing xunit file...
r24500 Failed test-failure-unicode.t: output changed
Gregory Szorc
tests: remove support for warned tests...
r32942 # Ran 3 tests, 0 skipped, 2 failed.
Pierre-Yves David
test-run-tests.t: test running a failing test
r21738 python hash seed: * (glob)
[1]
Gregory Szorc
run-tests: explicitly handle unicode when writing xunit file...
r24500
Siddharth Agarwal
run-tests: allow specifying an output dir to write .errs to...
r32716 test --outputdir
$ mkdir output
$ rt --outputdir output
--- $TESTTMP/test-failure.t
+++ $TESTTMP/output/test-failure.t.err
@@ -1,5 +1,5 @@
$ echo babar
- rataxes
+ babar
This is a noop statement so that
this test is still more bytes than success.
pad pad pad pad............................................................
ERROR: test-failure.t output changed
!.
--- $TESTTMP/test-failure-unicode.t
+++ $TESTTMP/output/test-failure-unicode.t.err
@@ -1,2 +1,2 @@
$ echo babar\xce\xb1 (esc)
- l\xce\xb5\xce\xb5t (esc)
+ babar\xce\xb1 (esc)
ERROR: test-failure-unicode.t output changed
!
Failed test-failure.t: output changed
Failed test-failure-unicode.t: output changed
Gregory Szorc
tests: remove support for warned tests...
r32942 # Ran 3 tests, 0 skipped, 2 failed.
Siddharth Agarwal
run-tests: allow specifying an output dir to write .errs to...
r32716 python hash seed: * (glob)
[1]
$ ls -a output
.
..
Siddharth Agarwal
run-tests: write test times to output dir
r32717 .testtimes
Siddharth Agarwal
run-tests: allow specifying an output dir to write .errs to...
r32716 test-failure-unicode.t.err
test-failure.t.err
Augie Fackler
run-tests: add support for xunit test reports...
r22044 test --xunit support
Matt Mackall
tests: avoid duplicate install steps in test-run-tests...
r27395 $ rt --xunit=xunit.xml
Augie Fackler
run-tests: add support for xunit test reports...
r22044
--- $TESTTMP/test-failure.t
+++ $TESTTMP/test-failure.t.err
Matt Harbison
test-run-tests: pad the failure test to preserve the run order...
r28316 @@ -1,5 +1,5 @@
Augie Fackler
run-tests: add support for xunit test reports...
r22044 $ echo babar
- rataxes
+ babar
This is a noop statement so that
this test is still more bytes than success.
Matt Harbison
test-run-tests: pad the failure test to preserve the run order...
r28316 pad pad pad pad............................................................
Augie Fackler
run-tests: add support for xunit test reports...
r22044
ERROR: test-failure.t output changed
!.
Gregory Szorc
run-tests: explicitly handle unicode when writing xunit file...
r24500 --- $TESTTMP/test-failure-unicode.t
+++ $TESTTMP/test-failure-unicode.t.err
@@ -1,2 +1,2 @@
$ echo babar\xce\xb1 (esc)
- l\xce\xb5\xce\xb5t (esc)
+ babar\xce\xb1 (esc)
ERROR: test-failure-unicode.t output changed
!
Augie Fackler
run-tests: add support for xunit test reports...
r22044 Failed test-failure.t: output changed
Gregory Szorc
run-tests: explicitly handle unicode when writing xunit file...
r24500 Failed test-failure-unicode.t: output changed
Gregory Szorc
tests: remove support for warned tests...
r32942 # Ran 3 tests, 0 skipped, 2 failed.
Augie Fackler
run-tests: add support for xunit test reports...
r22044 python hash seed: * (glob)
[1]
$ cat xunit.xml
<?xml version="1.0" encoding="utf-8"?>
Gregory Szorc
run-tests: explicitly handle unicode when writing xunit file...
r24500 <testsuite errors="0" failures="2" name="run-tests" skipped="0" tests="3">
Augie Fackler
run-tests: add support for xunit test reports...
r22044 <testcase name="test-success.t" time="*"/> (glob)
Gregory Szorc
run-tests: explicitly handle unicode when writing xunit file...
r24500 <testcase name="test-failure-unicode.t" time="*"> (glob)
Siddharth Agarwal
run-tests: wrap failures in an XUnit 'failure' element...
r32714 <failure message="output changed" type="output-mismatch">
Gregory Szorc
run-tests: explicitly handle unicode when writing xunit file...
r24500 <![CDATA[--- $TESTTMP/test-failure-unicode.t
+++ $TESTTMP/test-failure-unicode.t.err
@@ -1,2 +1,2 @@
$ echo babar\xce\xb1 (esc)
- l\xce\xb5\xce\xb5t (esc)
+ babar\xce\xb1 (esc)
Siddharth Agarwal
run-tests: wrap failures in an XUnit 'failure' element...
r32714 ]]> </failure>
</testcase>
Augie Fackler
run-tests: add support for xunit test reports...
r22044 <testcase name="test-failure.t" time="*"> (glob)
Siddharth Agarwal
run-tests: wrap failures in an XUnit 'failure' element...
r32714 <failure message="output changed" type="output-mismatch">
Augie Fackler
run-tests: add support for xunit test reports...
r22044 <![CDATA[--- $TESTTMP/test-failure.t
+++ $TESTTMP/test-failure.t.err
Matt Harbison
test-run-tests: pad the failure test to preserve the run order...
r28316 @@ -1,5 +1,5 @@
Augie Fackler
run-tests: add support for xunit test reports...
r22044 $ echo babar
- rataxes
+ babar
This is a noop statement so that
this test is still more bytes than success.
Matt Harbison
test-run-tests: pad the failure test to preserve the run order...
r28316 pad pad pad pad............................................................
Siddharth Agarwal
run-tests: wrap failures in an XUnit 'failure' element...
r32714 ]]> </failure>
</testcase>
Augie Fackler
run-tests: add support for xunit test reports...
r22044 </testsuite>
Pierre-Yves David
test-run-tests.t: tests the --retest option
r21741
timeless
tests: add run-test .testtimes basic testing
r29280 $ cat .testtimes
Martin von Zweigbergk
testrunner: fix updating of .testtimes file...
r35873 test-empty.t * (glob)
timeless
tests: add run-test .testtimes basic testing
r29280 test-failure-unicode.t * (glob)
test-failure.t * (glob)
test-success.t * (glob)
Siddharth Agarwal
run-tests: add a way to list tests, with JSON and XUnit support...
r32704
$ rt --list-tests
test-failure-unicode.t
test-failure.t
test-success.t
$ rt --list-tests --json
test-failure-unicode.t
test-failure.t
test-success.t
$ cat report.json
testreport ={
"test-failure-unicode.t": {
"result": "success"
},
"test-failure.t": {
"result": "success"
},
"test-success.t": {
"result": "success"
}
} (no-eol)
$ rt --list-tests --xunit=xunit.xml
test-failure-unicode.t
test-failure.t
test-success.t
$ cat xunit.xml
<?xml version="1.0" encoding="utf-8"?>
<testsuite errors="0" failures="0" name="run-tests" skipped="0" tests="0">
<testcase name="test-failure-unicode.t"/>
<testcase name="test-failure.t"/>
<testcase name="test-success.t"/>
</testsuite>
Siddharth Agarwal
run-tests: write JSON reports to output dir
r32718 $ rt --list-tests test-failure* --json --xunit=xunit.xml --outputdir output
Siddharth Agarwal
run-tests: add a way to list tests, with JSON and XUnit support...
r32704 test-failure-unicode.t
test-failure.t
Siddharth Agarwal
run-tests: write JSON reports to output dir
r32718 $ cat output/report.json
Siddharth Agarwal
run-tests: add a way to list tests, with JSON and XUnit support...
r32704 testreport ={
"test-failure-unicode.t": {
"result": "success"
},
"test-failure.t": {
"result": "success"
}
} (no-eol)
$ cat xunit.xml
<?xml version="1.0" encoding="utf-8"?>
<testsuite errors="0" failures="0" name="run-tests" skipped="0" tests="0">
<testcase name="test-failure-unicode.t"/>
<testcase name="test-failure.t"/>
</testsuite>
Gregory Szorc
run-tests: explicitly handle unicode when writing xunit file...
r24500 $ rm test-failure-unicode.t
Pierre-Yves David
test-run-tests.t: tests the --retest option
r21741 test for --retest
====================
Matt Mackall
tests: avoid duplicate install steps in test-run-tests...
r27395 $ rt --retest
Pierre-Yves David
test-run-tests.t: tests the --retest option
r21741
Matt Harbison
tests: fix globs for Windows...
r23348 --- $TESTTMP/test-failure.t
+++ $TESTTMP/test-failure.t.err
Matt Harbison
test-run-tests: pad the failure test to preserve the run order...
r28316 @@ -1,5 +1,5 @@
Pierre-Yves David
test-run-tests.t: tests the --retest option
r21741 $ echo babar
- rataxes
+ babar
Augie Fackler
test-run-tests.t: add extra data to tests for keyword tests...
r21995 This is a noop statement so that
this test is still more bytes than success.
Matt Harbison
test-run-tests: pad the failure test to preserve the run order...
r28316 pad pad pad pad............................................................
Pierre-Yves David
test-run-tests.t: tests the --retest option
r21741
ERROR: test-failure.t output changed
!
Failed test-failure.t: output changed
Gregory Szorc
tests: remove support for warned tests...
r32942 # Ran 2 tests, 1 skipped, 1 failed.
Pierre-Yves David
test-run-tests.t: tests the --retest option
r21741 python hash seed: * (glob)
[1]
Pierre-Yves David
test-run-tests.t: test selection of testfile from the command line
r21742
Siddharth Agarwal
run-tests: allow specifying an output dir to write .errs to...
r32716 --retest works with --outputdir
$ rm -r output
$ mkdir output
$ mv test-failure.t.err output
$ rt --retest --outputdir output
--- $TESTTMP/test-failure.t
+++ $TESTTMP/output/test-failure.t.err
@@ -1,5 +1,5 @@
$ echo babar
- rataxes
+ babar
This is a noop statement so that
this test is still more bytes than success.
pad pad pad pad............................................................
ERROR: test-failure.t output changed
!
Failed test-failure.t: output changed
Gregory Szorc
tests: remove support for warned tests...
r32942 # Ran 2 tests, 1 skipped, 1 failed.
Siddharth Agarwal
run-tests: allow specifying an output dir to write .errs to...
r32716 python hash seed: * (glob)
[1]
Pierre-Yves David
test-run-tests.t: test selection of testfile from the command line
r21742 Selecting Tests To Run
======================
successful
Matt Mackall
tests: avoid duplicate install steps in test-run-tests...
r27395 $ rt test-success.t
Pierre-Yves David
test-run-tests.t: test selection of testfile from the command line
r21742 .
Gregory Szorc
tests: remove support for warned tests...
r32942 # Ran 1 tests, 0 skipped, 0 failed.
Pierre-Yves David
test-run-tests.t: test selection of testfile from the command line
r21742
Augie Fackler
run-tests: fix test result counts with --keyword specified or skips occurring...
r21997 success w/ keyword
Matt Mackall
tests: avoid duplicate install steps in test-run-tests...
r27395 $ rt -k xyzzy
Matt Mackall
run-tests: don't show 'i' for tests that don't match a keyword
r22107 .
Gregory Szorc
tests: remove support for warned tests...
r32942 # Ran 2 tests, 1 skipped, 0 failed.
Augie Fackler
run-tests: fix test result counts with --keyword specified or skips occurring...
r21997
Pierre-Yves David
test-run-tests.t: test selection of testfile from the command line
r21742 failed
Matt Mackall
tests: avoid duplicate install steps in test-run-tests...
r27395 $ rt test-failure.t
Pierre-Yves David
test-run-tests.t: test selection of testfile from the command line
r21742
Matt Harbison
tests: fix globs for Windows...
r23348 --- $TESTTMP/test-failure.t
+++ $TESTTMP/test-failure.t.err
Matt Harbison
test-run-tests: pad the failure test to preserve the run order...
r28316 @@ -1,5 +1,5 @@
Pierre-Yves David
test-run-tests.t: test selection of testfile from the command line
r21742 $ echo babar
- rataxes
+ babar
Augie Fackler
test-run-tests.t: add extra data to tests for keyword tests...
r21995 This is a noop statement so that
this test is still more bytes than success.
Matt Harbison
test-run-tests: pad the failure test to preserve the run order...
r28316 pad pad pad pad............................................................
Pierre-Yves David
test-run-tests.t: test selection of testfile from the command line
r21742
ERROR: test-failure.t output changed
!
Failed test-failure.t: output changed
Gregory Szorc
tests: remove support for warned tests...
r32942 # Ran 1 tests, 0 skipped, 1 failed.
Pierre-Yves David
test-run-tests.t: test selection of testfile from the command line
r21742 python hash seed: * (glob)
[1]
Pierre-Yves David
test-run-tests.t: test --debug option
r21743
Augie Fackler
run-tests: fix test result counts with --keyword specified or skips occurring...
r21997 failure w/ keyword
Matt Mackall
tests: avoid duplicate install steps in test-run-tests...
r27395 $ rt -k rataxes
Matt Mackall
run-tests: don't show 'i' for tests that don't match a keyword
r22107
Augie Fackler
run-tests: fix test result counts with --keyword specified or skips occurring...
r21997 --- $TESTTMP/test-failure.t
+++ $TESTTMP/test-failure.t.err
Matt Harbison
test-run-tests: pad the failure test to preserve the run order...
r28316 @@ -1,5 +1,5 @@
Augie Fackler
run-tests: fix test result counts with --keyword specified or skips occurring...
r21997 $ echo babar
- rataxes
+ babar
This is a noop statement so that
this test is still more bytes than success.
Matt Harbison
test-run-tests: pad the failure test to preserve the run order...
r28316 pad pad pad pad............................................................
Augie Fackler
run-tests: fix test result counts with --keyword specified or skips occurring...
r21997
ERROR: test-failure.t output changed
!
Failed test-failure.t: output changed
Gregory Szorc
tests: remove support for warned tests...
r32942 # Ran 2 tests, 1 skipped, 1 failed.
Augie Fackler
run-tests: fix test result counts with --keyword specified or skips occurring...
r21997 python hash seed: * (glob)
[1]
Augie Fackler
test-run-tests: add a test for detection of failure to start a server...
r22840 Verify that when a process fails to start we show a useful message
==================================================================
$ cat > test-serve-fail.t <<EOF
> $ echo 'abort: child process failed to start blah'
> EOF
Matt Mackall
tests: avoid duplicate install steps in test-run-tests...
r27395 $ rt test-serve-fail.t
Matt Harbison
run-tests: resume raising an exception when a server fails to start...
r36479
Matt Harbison
run-tests: don't mask errors when a server fails to start...
r36456 --- $TESTTMP/test-serve-fail.t
+++ $TESTTMP/test-serve-fail.t.err
@@ -1* +1,2 @@ (glob)
$ echo 'abort: child process failed to start blah'
+ abort: child process failed to start blah
Augie Fackler
test-run-tests: add a test for detection of failure to start a server...
r22840
ERROR: test-serve-fail.t output changed
!
Matt Harbison
run-tests: resume raising an exception when a server fails to start...
r36479 Failed test-serve-fail.t: server failed to start (HGPORT=*) (glob)
Gregory Szorc
tests: remove support for warned tests...
r32942 # Ran 1 tests, 0 skipped, 1 failed.
Augie Fackler
test-run-tests: add a test for detection of failure to start a server...
r22840 python hash seed: * (glob)
[1]
$ rm test-serve-fail.t
timeless
run-tests: fix get port to try differing ports...
r27602 Verify that we can try other ports
===================================
Gregory Szorc
tests: work around potential repo incompatibility...
r37452
Extensions aren't inherited by the invoked run-tests.py. An extension
introducing a repository requirement could cause this to fail. So we force
HGRCPATH to get a clean environment.
$ HGRCPATH= hg init inuse
timeless
run-tests: fix get port to try differing ports...
r27602 $ hg serve -R inuse -p $HGPORT -d --pid-file=blocks.pid
$ cat blocks.pid >> $DAEMON_PIDS
$ cat > test-serve-inuse.t <<EOF
> $ hg serve -R `pwd`/inuse -p \$HGPORT -d --pid-file=hg.pid
> $ cat hg.pid >> \$DAEMON_PIDS
> EOF
$ rt test-serve-inuse.t
.
Gregory Szorc
tests: remove support for warned tests...
r32942 # Ran 1 tests, 0 skipped, 0 failed.
timeless
run-tests: fix get port to try differing ports...
r27602 $ rm test-serve-inuse.t
timeless
test-run-tests: clean up inuse server eagerly
r29221 $ killdaemons.py $DAEMON_PIDS
timeless
run-tests: fix get port to try differing ports...
r27602
Pierre-Yves David
test-run-tests.t: test --debug option
r21743 Running In Debug Mode
======================
Matt Mackall
tests: avoid duplicate install steps in test-run-tests...
r27395 $ rt --debug 2>&1 | grep -v pwd
Thomas Klausner
tests: adapt glob pattern to fix test with NetBSD's sh(1) (issue4484)
r23676 + echo *SALT* 0 0 (glob)
*SALT* 0 0 (glob)
Pierre-Yves David
test-run-tests.t: test --debug option
r21743 + echo babar
babar
Matt Harbison
test-run-tests: pad the failure test to preserve the run order...
r31828 + echo *SALT* 10 0 (glob)
*SALT* 10 0 (glob)
Matt Harbison
test-run-tests: glob away a --debug run difference on Windows...
r27509 *+ echo *SALT* 0 0 (glob)
Thomas Klausner
tests: adapt glob pattern to fix test with NetBSD's sh(1) (issue4484)
r23676 *SALT* 0 0 (glob)
Pierre-Yves David
test-run-tests.t: test --debug option
r21743 + echo babar
babar
Thomas Klausner
tests: adapt glob pattern to fix test with NetBSD's sh(1) (issue4484)
r23676 + echo *SALT* 2 0 (glob)
*SALT* 2 0 (glob)
Augie Fackler
test-run-tests.t: add extra data to tests for keyword tests...
r21995 + echo xyzzy
xyzzy
Matt Harbison
run-tests: prevent a (glob) declaration from reordering (?) lines...
r31827 + echo *SALT* 9 0 (glob)
*SALT* 9 0 (glob)
Matt Harbison
run-tests: defer leftover (?) cleanup until after all output is exhausted...
r28317 + printf *abc\ndef\nxyz\n* (glob)
abc
def
xyz
Matt Harbison
run-tests: prevent a (glob) declaration from reordering (?) lines...
r31827 + echo *SALT* 15 0 (glob)
*SALT* 15 0 (glob)
Matt Harbison
run-tests: support per-line conditional output in tests...
r31829 + printf *zyx\nwvu\ntsr\n* (glob)
zyx
wvu
tsr
+ echo *SALT* 22 0 (glob)
*SALT* 22 0 (glob)
Pierre-Yves David
test-run-tests.t: test --debug option
r21743 .
Gregory Szorc
tests: remove support for warned tests...
r32942 # Ran 2 tests, 0 skipped, 0 failed.
Pierre-Yves David
test-run-tests.t: tests --jobs option
r21744
Parallel runs
==============
(duplicate the failing test to get predictable output)
$ cp test-failure.t test-failure-copy.t
Matt Mackall
tests: avoid duplicate install steps in test-run-tests...
r27395 $ rt --jobs 2 test-failure*.t -n
Matt Mackall
tests: silence output race in test-run-tests.t
r23107 !!
Pierre-Yves David
test-run-tests.t: tests --jobs option
r21744 Failed test-failure*.t: output changed (glob)
Failed test-failure*.t: output changed (glob)
Gregory Szorc
tests: remove support for warned tests...
r32942 # Ran 2 tests, 0 skipped, 2 failed.
Pierre-Yves David
test-run-tests.t: tests --jobs option
r21744 python hash seed: * (glob)
[1]
Augie Fackler
run-tests: handle --jobs and --first gracefully...
r22838 failures in parallel with --first should only print one failure
Martin von Zweigbergk
tests: de-flake test-run-tests.t's "--jobs=2 --first" test...
r34895 $ rt --jobs 2 --first test-failure*.t
Augie Fackler
run-tests: handle --jobs and --first gracefully...
r22838
--- $TESTTMP/test-failure*.t (glob)
+++ $TESTTMP/test-failure*.t.err (glob)
Matt Harbison
test-run-tests: pad the failure test to preserve the run order...
r28316 @@ -1,5 +1,5 @@
Augie Fackler
run-tests: handle --jobs and --first gracefully...
r22838 $ echo babar
- rataxes
+ babar
This is a noop statement so that
this test is still more bytes than success.
Matt Harbison
test-run-tests: pad the failure test to preserve the run order...
r28316 pad pad pad pad............................................................
Augie Fackler
run-tests: handle --jobs and --first gracefully...
r22838
Failed test-failure*.t: output changed (glob)
Martin von Zweigbergk
tests: de-flake test-run-tests.t's "--jobs=2 --first" test...
r34895 Failed test-failure*.t: output changed (glob)
Gregory Szorc
tests: remove support for warned tests...
r32942 # Ran 2 tests, 0 skipped, 2 failed.
Augie Fackler
run-tests: handle --jobs and --first gracefully...
r22838 python hash seed: * (glob)
[1]
Pierre-Yves David
test-run-tests.t: tests --jobs option
r21744 (delete the duplicated test file)
Martin von Zweigbergk
tests: de-flake test-run-tests.t's "--jobs=2 --first" test...
r34895 $ rm test-failure-copy.t
Pierre-Yves David
test-run-tests.t: tests --jobs option
r21744
Pierre-Yves David
test-run-tests.t: test the --interactive option
r21755
Interactive run
===============
(backup the failing test)
$ cp test-failure.t backup
Refuse the fix
Matt Mackall
tests: avoid duplicate install steps in test-run-tests...
r27395 $ echo 'n' | rt -i
Pierre-Yves David
test-run-tests.t: test the --interactive option
r21755
--- $TESTTMP/test-failure.t
+++ $TESTTMP/test-failure.t.err
Matt Harbison
test-run-tests: pad the failure test to preserve the run order...
r28316 @@ -1,5 +1,5 @@
Pierre-Yves David
test-run-tests.t: test the --interactive option
r21755 $ echo babar
- rataxes
+ babar
Augie Fackler
test-run-tests.t: add extra data to tests for keyword tests...
r21995 This is a noop statement so that
this test is still more bytes than success.
Matt Harbison
test-run-tests: pad the failure test to preserve the run order...
r28316 pad pad pad pad............................................................
Matt Mackall
run-tests: hold iolock across diff/prompt when interactive...
r21763 Accept this change? [n]
Pierre-Yves David
test-run-tests.t: test the --interactive option
r21755 ERROR: test-failure.t output changed
Matt Mackall
run-tests: hold iolock across diff/prompt when interactive...
r21763 !.
Pierre-Yves David
test-run-tests.t: test the --interactive option
r21755 Failed test-failure.t: output changed
Gregory Szorc
tests: remove support for warned tests...
r32942 # Ran 2 tests, 0 skipped, 1 failed.
Pierre-Yves David
test-run-tests.t: test the --interactive option
r21755 python hash seed: * (glob)
[1]
$ cat test-failure.t
$ echo babar
rataxes
Augie Fackler
test-run-tests.t: add extra data to tests for keyword tests...
r21995 This is a noop statement so that
this test is still more bytes than success.
Matt Harbison
test-run-tests: pad the failure test to preserve the run order...
r28316 pad pad pad pad............................................................
pad pad pad pad............................................................
Matt Harbison
test-run-tests: pad the failure test to preserve the run order...
r31828 pad pad pad pad............................................................
pad pad pad pad............................................................
pad pad pad pad............................................................
pad pad pad pad............................................................
Pierre-Yves David
test-run-tests.t: test the --interactive option
r21755
Gregory Szorc
run-tests: make --interactive work with --view
r22361 Interactive with custom view
Matt Mackall
tests: avoid duplicate install steps in test-run-tests...
r27395 $ echo 'n' | rt -i --view echo
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 $TESTTMP/test-failure.t $TESTTMP/test-failure.t.err
Gregory Szorc
run-tests: make --interactive work with --view
r22361 Accept this change? [n]* (glob)
ERROR: test-failure.t output changed
!.
Failed test-failure.t: output changed
Gregory Szorc
tests: remove support for warned tests...
r32942 # Ran 2 tests, 0 skipped, 1 failed.
Gregory Szorc
run-tests: make --interactive work with --view
r22361 python hash seed: * (glob)
[1]
Matt Mackall
test-run-tests: test --view
r22108 View the fix
Matt Mackall
tests: avoid duplicate install steps in test-run-tests...
r27395 $ echo 'y' | rt --view echo
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 $TESTTMP/test-failure.t $TESTTMP/test-failure.t.err
Matt Mackall
test-run-tests: test --view
r22108
ERROR: test-failure.t output changed
!.
Failed test-failure.t: output changed
Gregory Szorc
tests: remove support for warned tests...
r32942 # Ran 2 tests, 0 skipped, 1 failed.
Matt Mackall
test-run-tests: test --view
r22108 python hash seed: * (glob)
[1]
Pierre-Yves David
test-run-tests.t: test the --interactive option
r21755
Accept the fix
Martin von Zweigbergk
tests: avoid echo with backslash escapes...
r35417 $ cat >> test-failure.t <<EOF
> $ echo 'saved backup bundle to \$TESTTMP/foo.hg'
> saved backup bundle to \$TESTTMP/foo.hg
> $ echo 'saved backup bundle to \$TESTTMP/foo.hg'
> saved backup bundle to $TESTTMP\\foo.hg
> $ echo 'saved backup bundle to \$TESTTMP/foo.hg'
> saved backup bundle to \$TESTTMP/*.hg (glob)
> EOF
Matt Mackall
tests: avoid duplicate install steps in test-run-tests...
r27395 $ echo 'y' | rt -i 2>&1
Pierre-Yves David
test-run-tests.t: test the --interactive option
r21755
--- $TESTTMP/test-failure.t
+++ $TESTTMP/test-failure.t.err
Matt Harbison
test-run-tests: pad the failure test to preserve the run order...
r31828 @@ -1,5 +1,5 @@
Pierre-Yves David
test-run-tests.t: test the --interactive option
r21755 $ echo babar
- rataxes
+ babar
Augie Fackler
test-run-tests.t: add extra data to tests for keyword tests...
r21995 This is a noop statement so that
this test is still more bytes than success.
Matt Harbison
test-run-tests: pad the failure test to preserve the run order...
r28316 pad pad pad pad............................................................
Matt Harbison
run-tests: stop automatically adding a (glob) for bundle backup lines...
r35392 @@ -11,6 +11,6 @@
$ echo 'saved backup bundle to $TESTTMP/foo.hg'
saved backup bundle to $TESTTMP/foo.hg
Mads Kiilerich
run-tests: automatically add (glob) to "saved backup bundle to" lines...
r23728 $ echo 'saved backup bundle to $TESTTMP/foo.hg'
Matt Harbison
run-tests: stop automatically adding a (glob) for bundle backup lines...
r35392 - saved backup bundle to $TESTTMP\foo.hg
+ saved backup bundle to $TESTTMP/foo.hg
Mads Kiilerich
run-tests: automatically add (glob) to "saved backup bundle to" lines...
r23728 $ echo 'saved backup bundle to $TESTTMP/foo.hg'
Matt Harbison
run-tests: stop automatically adding a (glob) for bundle backup lines...
r35392 saved backup bundle to $TESTTMP/*.hg (glob)
Pierre-Yves David
test-run-tests.t: test the --interactive option
r21755 Accept this change? [n] ..
Gregory Szorc
tests: remove support for warned tests...
r32942 # Ran 2 tests, 0 skipped, 0 failed.
Pierre-Yves David
test-run-tests.t: test the --interactive option
r21755
Mads Kiilerich
run-tests: automatically add (glob) to "saved backup bundle to" lines...
r23728 $ sed -e 's,(glob)$,&<,g' test-failure.t
Pierre-Yves David
test-run-tests.t: test the --interactive option
r21755 $ echo babar
babar
Augie Fackler
test-run-tests.t: add extra data to tests for keyword tests...
r21995 This is a noop statement so that
this test is still more bytes than success.
Matt Harbison
test-run-tests: pad the failure test to preserve the run order...
r28316 pad pad pad pad............................................................
pad pad pad pad............................................................
Matt Harbison
test-run-tests: pad the failure test to preserve the run order...
r31828 pad pad pad pad............................................................
pad pad pad pad............................................................
pad pad pad pad............................................................
pad pad pad pad............................................................
Mads Kiilerich
run-tests: automatically add (glob) to "saved backup bundle to" lines...
r23728 $ echo 'saved backup bundle to $TESTTMP/foo.hg'
Matt Harbison
run-tests: stop automatically adding a (glob) for bundle backup lines...
r35392 saved backup bundle to $TESTTMP/foo.hg
Mads Kiilerich
run-tests: automatically add (glob) to "saved backup bundle to" lines...
r23728 $ echo 'saved backup bundle to $TESTTMP/foo.hg'
Matt Harbison
run-tests: stop automatically adding a (glob) for bundle backup lines...
r35392 saved backup bundle to $TESTTMP/foo.hg
Mads Kiilerich
run-tests: automatically add (glob) to "saved backup bundle to" lines...
r23728 $ echo 'saved backup bundle to $TESTTMP/foo.hg'
saved backup bundle to $TESTTMP/*.hg (glob)<
Pierre-Yves David
test-run-tests.t: test the --interactive option
r21755
Jun Wu
run-tests: do not prompt changes (-i) if a race condition is detected...
r32980 Race condition - test file was modified when test is running
$ TESTRACEDIR=`pwd`
$ export TESTRACEDIR
$ cat > test-race.t <<EOF
> $ echo 1
> $ echo "# a new line" >> $TESTRACEDIR/test-race.t
> EOF
$ rt -i test-race.t
--- $TESTTMP/test-race.t
+++ $TESTTMP/test-race.t.err
@@ -1,2 +1,3 @@
$ echo 1
+ 1
$ echo "# a new line" >> $TESTTMP/test-race.t
Reference output has changed (run again to prompt changes)
ERROR: test-race.t output changed
!
Failed test-race.t: output changed
# Ran 1 tests, 0 skipped, 1 failed.
python hash seed: * (glob)
[1]
$ rm test-race.t
Jun Wu
run-tests: fix -i when "#testcases" is used in .t test...
r32982 When "#testcases" is used in .t files
$ cat >> test-cases.t <<EOF
> #testcases a b
> #if a
> $ echo 1
> #endif
> #if b
> $ echo 2
> #endif
> EOF
$ cat <<EOF | rt -i test-cases.t 2>&1
> y
> y
> EOF
--- $TESTTMP/test-cases.t
+++ $TESTTMP/test-cases.t.a.err
@@ -1,6 +1,7 @@
#testcases a b
#if a
$ echo 1
+ 1
#endif
#if b
$ echo 2
Accept this change? [n] .
--- $TESTTMP/test-cases.t
+++ $TESTTMP/test-cases.t.b.err
@@ -5,4 +5,5 @@
#endif
#if b
$ echo 2
+ 2
#endif
Accept this change? [n] .
# Ran 2 tests, 0 skipped, 0 failed.
$ cat test-cases.t
#testcases a b
#if a
$ echo 1
1
#endif
#if b
$ echo 2
2
#endif
Jun Wu
run-tests: make per-line condition support testcase names...
r33935 $ cat >> test-cases.t <<'EOF'
> #if a
> $ NAME=A
> #else
> $ NAME=B
> #endif
> $ echo $NAME
> A (a !)
> B (b !)
> EOF
$ rt test-cases.t
..
# Ran 2 tests, 0 skipped, 0 failed.
Jun Wu
run-tests: fix -i when "#testcases" is used in .t test...
r32982 $ rm test-cases.t
Pierre-Yves David
test-run-tests.t: test the --interactive option
r21755 (reinstall)
$ mv backup test-failure.t
Pierre-Yves David
test-run-tests.t: test the --nodiff option
r21756
No Diff
===============
Matt Mackall
tests: avoid duplicate install steps in test-run-tests...
r27395 $ rt --nodiff
Pierre-Yves David
test-run-tests.t: test the --nodiff option
r21756 !.
Failed test-failure.t: output changed
Gregory Szorc
tests: remove support for warned tests...
r32942 # Ran 2 tests, 0 skipped, 1 failed.
Pierre-Yves David
test-run-tests.t: test the --nodiff option
r21756 python hash seed: * (glob)
[1]
anuraggoel
run-tests: '--time' option provide more details to Linux users...
r21977
timeless@mozdev.org
run-tests: report paths saved by --keep-tmpdir
r26422 test --tmpdir support
Matt Mackall
tests: avoid duplicate install steps in test-run-tests...
r27395 $ rt --tmpdir=$TESTTMP/keep test-success.t
timeless@mozdev.org
run-tests: report paths saved by --keep-tmpdir
r26422
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 Keeping testtmp dir: $TESTTMP/keep/child1/test-success.t
Keeping threadtmp dir: $TESTTMP/keep/child1
timeless@mozdev.org
run-tests: report paths saved by --keep-tmpdir
r26422 .
Gregory Szorc
tests: remove support for warned tests...
r32942 # Ran 1 tests, 0 skipped, 0 failed.
timeless@mozdev.org
run-tests: report paths saved by --keep-tmpdir
r26422
timeless
run-tests: add --slowtimeout and use it for slow tests
r27141 timeouts
========
$ cat > test-timeout.t <<EOF
> $ sleep 2
> $ echo pass
> pass
> EOF
> echo '#require slow' > test-slow-timeout.t
> cat test-timeout.t >> test-slow-timeout.t
Matt Mackall
tests: avoid duplicate install steps in test-run-tests...
r27395 $ rt --timeout=1 --slowtimeout=3 test-timeout.t test-slow-timeout.t
Matt Mackall
run-tests: report timeouts in a less alarming fashion...
r27393 st
Kyle Lippincott
tests: hint how to run slow tests when rejecting
r32473 Skipped test-slow-timeout.t: missing feature: allow slow tests (use --allow-slow-tests)
timeless
run-tests: add --slowtimeout and use it for slow tests
r27141 Failed test-timeout.t: timed out
Gregory Szorc
tests: remove support for warned tests...
r32942 # Ran 1 tests, 1 skipped, 1 failed.
timeless
run-tests: add --slowtimeout and use it for slow tests
r27141 python hash seed: * (glob)
[1]
Matt Mackall
tests: avoid duplicate install steps in test-run-tests...
r27395 $ rt --timeout=1 --slowtimeout=3 \
timeless
run-tests: add --slowtimeout and use it for slow tests
r27141 > test-timeout.t test-slow-timeout.t --allow-slow-tests
Matt Mackall
run-tests: report timeouts in a less alarming fashion...
r27393 .t
timeless
run-tests: add --slowtimeout and use it for slow tests
r27141 Failed test-timeout.t: timed out
Gregory Szorc
tests: remove support for warned tests...
r32942 # Ran 2 tests, 0 skipped, 1 failed.
timeless
run-tests: add --slowtimeout and use it for slow tests
r27141 python hash seed: * (glob)
[1]
$ rm test-timeout.t test-slow-timeout.t
anuraggoel
run-tests: '--time' option provide more details to Linux users...
r21977 test for --time
==================
Matt Mackall
tests: avoid duplicate install steps in test-run-tests...
r27395 $ rt test-success.t --time
anuraggoel
run-tests: '--time' option provide more details to Linux users...
r21977 .
Gregory Szorc
tests: remove support for warned tests...
r32942 # Ran 1 tests, 0 skipped, 0 failed.
anuraggoel
run-tests: '--time' option provide more details to Linux users...
r21977 # Producing time report
Pierre-Yves David
run-tests: include 'start' and 'end' in --time output...
r25098 start end cuser csys real Test
\s*[\d\.]{5} \s*[\d\.]{5} \s*[\d\.]{5} \s*[\d\.]{5} \s*[\d\.]{5} test-success.t (re)
anuraggoel
run-tests: '--time' option provide more details to Linux users...
r21977
test for --time with --job enabled
====================================
Matt Mackall
tests: avoid duplicate install steps in test-run-tests...
r27395 $ rt test-success.t --time --jobs 2
anuraggoel
run-tests: '--time' option provide more details to Linux users...
r21977 .
Gregory Szorc
tests: remove support for warned tests...
r32942 # Ran 1 tests, 0 skipped, 0 failed.
anuraggoel
run-tests: '--time' option provide more details to Linux users...
r21977 # Producing time report
Pierre-Yves David
run-tests: include 'start' and 'end' in --time output...
r25098 start end cuser csys real Test
\s*[\d\.]{5} \s*[\d\.]{5} \s*[\d\.]{5} \s*[\d\.]{5} \s*[\d\.]{5} test-success.t (re)
Augie Fackler
test-run-tests.t: add tests for skips...
r21996
Skips
================
$ cat > test-skip.t <<EOF
> $ echo xyzzy
Jun Wu
run-tests: allow #require inside #if...
r36695 > #if true
Matt Mackall
run-tests: add #require to abort full test...
r22045 > #require false
Jun Wu
run-tests: allow #require inside #if...
r36695 > #end
> EOF
$ cat > test-noskip.t <<EOF
> #if false
> #require false
> #endif
Augie Fackler
test-run-tests.t: add tests for skips...
r21996 > EOF
Matt Mackall
tests: avoid duplicate install steps in test-run-tests...
r27395 $ rt --nodiff
Jun Wu
run-tests: allow #require inside #if...
r36695 !.s.
timeless
run-tests: report missing feature for skipped tests
r27564 Skipped test-skip.t: missing feature: nail clipper
Augie Fackler
test-run-tests.t: add tests for skips...
r21996 Failed test-failure.t: output changed
Jun Wu
run-tests: allow #require inside #if...
r36695 # Ran 3 tests, 1 skipped, 1 failed.
Augie Fackler
test-run-tests.t: add tests for skips...
r21996 python hash seed: * (glob)
[1]
Jun Wu
run-tests: allow #require inside #if...
r36695 $ rm test-noskip.t
Matt Mackall
tests: avoid duplicate install steps in test-run-tests...
r27395 $ rt --keyword xyzzy
Matt Mackall
run-tests: don't show 'i' for tests that don't match a keyword
r22107 .s
timeless
run-tests: report missing feature for skipped tests
r27564 Skipped test-skip.t: missing feature: nail clipper
Gregory Szorc
tests: remove support for warned tests...
r32942 # Ran 2 tests, 2 skipped, 0 failed.
Augie Fackler
run-tests: fix test result counts with --keyword specified or skips occurring...
r21997
Augie Fackler
run-tests: add support for xunit test reports...
r22044 Skips with xml
Matt Mackall
tests: avoid duplicate install steps in test-run-tests...
r27395 $ rt --keyword xyzzy \
Augie Fackler
run-tests: add support for xunit test reports...
r22044 > --xunit=xunit.xml
Matt Mackall
run-tests: don't show 'i' for tests that don't match a keyword
r22107 .s
timeless
run-tests: report missing feature for skipped tests
r27564 Skipped test-skip.t: missing feature: nail clipper
Gregory Szorc
tests: remove support for warned tests...
r32942 # Ran 2 tests, 2 skipped, 0 failed.
Augie Fackler
run-tests: add support for xunit test reports...
r22044 $ cat xunit.xml
<?xml version="1.0" encoding="utf-8"?>
Matt Mackall
run-tests: don't show 'i' for tests that don't match a keyword
r22107 <testsuite errors="0" failures="0" name="run-tests" skipped="2" tests="2">
Augie Fackler
run-tests: add support for xunit test reports...
r22044 <testcase name="test-success.t" time="*"/> (glob)
Siddharth Agarwal
run-tests: add information about skipped tests to XUnit output...
r32715 <testcase name="test-skip.t">
<skipped>
<![CDATA[missing feature: nail clipper]]> </skipped>
</testcase>
Augie Fackler
run-tests: add support for xunit test reports...
r22044 </testsuite>
Augie Fackler
run-tests: fix test result counts with --keyword specified or skips occurring...
r21997 Missing skips or blacklisted skips don't count as executed:
$ echo test-failure.t > blacklist
Laurent Charignon
run-tests: fix crash when --json and --blacklist are both used (issue5050)...
r27927 $ rt --blacklist=blacklist --json\
Augie Fackler
run-tests: fix test result counts with --keyword specified or skips occurring...
r21997 > test-failure.t test-bogus.t
ss
Skipped test-bogus.t: Doesn't exist
Skipped test-failure.t: blacklisted
Gregory Szorc
tests: remove support for warned tests...
r32942 # Ran 0 tests, 2 skipped, 0 failed.
Laurent Charignon
run-tests: fix crash when --json and --blacklist are both used (issue5050)...
r27927 $ cat report.json
testreport ={
"test-bogus.t": {
"result": "skip"
timeless
run-tests: handle json.dumps divergence...
r29199 },
Laurent Charignon
run-tests: fix crash when --json and --blacklist are both used (issue5050)...
r27927 "test-failure.t": {
"result": "skip"
}
} (no-eol)
timeless
tests: add coverage for run-tests.py --whitelist
r29173
Whitelist trumps blacklist
$ echo test-failure.t > whitelist
$ rt --blacklist=blacklist --whitelist=whitelist --json\
> test-failure.t test-bogus.t
s
--- $TESTTMP/test-failure.t
+++ $TESTTMP/test-failure.t.err
@@ -1,5 +1,5 @@
$ echo babar
- rataxes
+ babar
This is a noop statement so that
this test is still more bytes than success.
pad pad pad pad............................................................
ERROR: test-failure.t output changed
!
Skipped test-bogus.t: Doesn't exist
Failed test-failure.t: output changed
Gregory Szorc
tests: remove support for warned tests...
r32942 # Ran 1 tests, 1 skipped, 1 failed.
timeless
tests: add coverage for run-tests.py --whitelist
r29173 python hash seed: * (glob)
[1]
Augie Fackler
tests: add support for listing tests to run in a file...
r34264 Ensure that --test-list causes only the tests listed in that file to
be executed.
$ echo test-success.t >> onlytest
$ rt --test-list=onlytest
.
# Ran 1 tests, 0 skipped, 0 failed.
$ echo test-bogus.t >> anothertest
$ rt --test-list=onlytest --test-list=anothertest
s.
Skipped test-bogus.t: Doesn't exist
# Ran 1 tests, 1 skipped, 0 failed.
$ rm onlytest anothertest
anuraggoel
run-tests: added '--json' functionality to store test result in json file...
r22391 test for --json
==================
Matt Mackall
tests: avoid duplicate install steps in test-run-tests...
r27395 $ rt --json
anuraggoel
run-tests: added '--json' functionality to store test result in json file...
r22391
--- $TESTTMP/test-failure.t
+++ $TESTTMP/test-failure.t.err
Matt Harbison
test-run-tests: pad the failure test to preserve the run order...
r28316 @@ -1,5 +1,5 @@
anuraggoel
run-tests: added '--json' functionality to store test result in json file...
r22391 $ echo babar
- rataxes
+ babar
This is a noop statement so that
this test is still more bytes than success.
Matt Harbison
test-run-tests: pad the failure test to preserve the run order...
r28316 pad pad pad pad............................................................
anuraggoel
run-tests: added '--json' functionality to store test result in json file...
r22391
ERROR: test-failure.t output changed
!.s
timeless
run-tests: report missing feature for skipped tests
r27564 Skipped test-skip.t: missing feature: nail clipper
anuraggoel
run-tests: added '--json' functionality to store test result in json file...
r22391 Failed test-failure.t: output changed
Gregory Szorc
tests: remove support for warned tests...
r32942 # Ran 2 tests, 1 skipped, 1 failed.
anuraggoel
run-tests: added '--json' functionality to store test result in json file...
r22391 python hash seed: * (glob)
[1]
$ cat report.json
testreport ={
"test-failure.t": [\{] (re)
Augie Fackler
test-run-tests: accept more levels of precision and trailing ws (issue4440)...
r23245 "csys": "\s*[\d\.]{4,5}", ? (re)
"cuser": "\s*[\d\.]{4,5}", ? (re)
Laurent Charignon
run-tests: add 'diff' entry in json report...
r27686 "diff": "---.+\+\+\+.+", ? (re)
Pierre-Yves David
run-tests: track start and end time of tests...
r25097 "end": "\s*[\d\.]{4,5}", ? (re)
Augie Fackler
test-run-tests: accept more levels of precision and trailing ws (issue4440)...
r23245 "result": "failure", ? (re)
Pierre-Yves David
run-tests: track start and end time of tests...
r25097 "start": "\s*[\d\.]{4,5}", ? (re)
Augie Fackler
test-run-tests: accept more levels of precision and trailing ws (issue4440)...
r23245 "time": "\s*[\d\.]{4,5}" (re)
}, ? (re)
anuraggoel
run-tests: added '--json' functionality to store test result in json file...
r22391 "test-skip.t": {
Augie Fackler
test-run-tests: accept more levels of precision and trailing ws (issue4440)...
r23245 "csys": "\s*[\d\.]{4,5}", ? (re)
"cuser": "\s*[\d\.]{4,5}", ? (re)
Laurent Charignon
run-tests: add 'diff' entry in json report...
r27686 "diff": "", ? (re)
Pierre-Yves David
run-tests: track start and end time of tests...
r25097 "end": "\s*[\d\.]{4,5}", ? (re)
Augie Fackler
test-run-tests: accept more levels of precision and trailing ws (issue4440)...
r23245 "result": "skip", ? (re)
Pierre-Yves David
run-tests: track start and end time of tests...
r25097 "start": "\s*[\d\.]{4,5}", ? (re)
Augie Fackler
test-run-tests: accept more levels of precision and trailing ws (issue4440)...
r23245 "time": "\s*[\d\.]{4,5}" (re)
}, ? (re)
anuraggoel
run-tests: added '--json' functionality to store test result in json file...
r22391 "test-success.t": [\{] (re)
Augie Fackler
test-run-tests: accept more levels of precision and trailing ws (issue4440)...
r23245 "csys": "\s*[\d\.]{4,5}", ? (re)
"cuser": "\s*[\d\.]{4,5}", ? (re)
Laurent Charignon
run-tests: add 'diff' entry in json report...
r27686 "diff": "", ? (re)
Pierre-Yves David
run-tests: track start and end time of tests...
r25097 "end": "\s*[\d\.]{4,5}", ? (re)
Augie Fackler
test-run-tests: accept more levels of precision and trailing ws (issue4440)...
r23245 "result": "success", ? (re)
Pierre-Yves David
run-tests: track start and end time of tests...
r25097 "start": "\s*[\d\.]{4,5}", ? (re)
Augie Fackler
test-run-tests: accept more levels of precision and trailing ws (issue4440)...
r23245 "time": "\s*[\d\.]{4,5}" (re)
anuraggoel
run-tests: added '--json' functionality to store test result in json file...
r22391 }
} (no-eol)
Siddharth Agarwal
run-tests: write JSON reports to output dir
r32718 --json with --outputdir
$ rm report.json
$ rm -r output
$ mkdir output
$ rt --json --outputdir output
--- $TESTTMP/test-failure.t
+++ $TESTTMP/output/test-failure.t.err
@@ -1,5 +1,5 @@
$ echo babar
- rataxes
+ babar
This is a noop statement so that
this test is still more bytes than success.
pad pad pad pad............................................................
ERROR: test-failure.t output changed
!.s
Skipped test-skip.t: missing feature: nail clipper
Failed test-failure.t: output changed
Gregory Szorc
tests: remove support for warned tests...
r32942 # Ran 2 tests, 1 skipped, 1 failed.
Siddharth Agarwal
run-tests: write JSON reports to output dir
r32718 python hash seed: * (glob)
[1]
$ f report.json
report.json: file not found
$ cat output/report.json
testreport ={
"test-failure.t": [\{] (re)
"csys": "\s*[\d\.]{4,5}", ? (re)
"cuser": "\s*[\d\.]{4,5}", ? (re)
"diff": "---.+\+\+\+.+", ? (re)
"end": "\s*[\d\.]{4,5}", ? (re)
"result": "failure", ? (re)
"start": "\s*[\d\.]{4,5}", ? (re)
"time": "\s*[\d\.]{4,5}" (re)
}, ? (re)
"test-skip.t": {
"csys": "\s*[\d\.]{4,5}", ? (re)
"cuser": "\s*[\d\.]{4,5}", ? (re)
"diff": "", ? (re)
"end": "\s*[\d\.]{4,5}", ? (re)
"result": "skip", ? (re)
"start": "\s*[\d\.]{4,5}", ? (re)
"time": "\s*[\d\.]{4,5}" (re)
}, ? (re)
"test-success.t": [\{] (re)
"csys": "\s*[\d\.]{4,5}", ? (re)
"cuser": "\s*[\d\.]{4,5}", ? (re)
"diff": "", ? (re)
"end": "\s*[\d\.]{4,5}", ? (re)
"result": "success", ? (re)
"start": "\s*[\d\.]{4,5}", ? (re)
"time": "\s*[\d\.]{4,5}" (re)
}
} (no-eol)
$ ls -a output
.
..
.testtimes
report.json
test-failure.t.err
Pierre-Yves David
test: protect the run-tests.py --json test behind an hghave rule...
r22579
Pierre-Yves David
run-test: add a test for json output when -i is used...
r24979 Test that failed test accepted through interactive are properly reported:
$ cp test-failure.t backup
Matt Mackall
tests: avoid duplicate install steps in test-run-tests...
r27395 $ echo y | rt --json -i
Pierre-Yves David
run-test: add a test for json output when -i is used...
r24979
--- $TESTTMP/test-failure.t
+++ $TESTTMP/test-failure.t.err
Matt Harbison
test-run-tests: pad the failure test to preserve the run order...
r28316 @@ -1,5 +1,5 @@
Pierre-Yves David
run-test: add a test for json output when -i is used...
r24979 $ echo babar
- rataxes
+ babar
This is a noop statement so that
this test is still more bytes than success.
Matt Harbison
test-run-tests: pad the failure test to preserve the run order...
r28316 pad pad pad pad............................................................
Pierre-Yves David
run-test: add a test for json output when -i is used...
r24979 Accept this change? [n] ..s
timeless
run-tests: report missing feature for skipped tests
r27564 Skipped test-skip.t: missing feature: nail clipper
Gregory Szorc
tests: remove support for warned tests...
r32942 # Ran 2 tests, 1 skipped, 0 failed.
Pierre-Yves David
run-test: add a test for json output when -i is used...
r24979
$ cat report.json
testreport ={
"test-failure.t": [\{] (re)
"csys": "\s*[\d\.]{4,5}", ? (re)
"cuser": "\s*[\d\.]{4,5}", ? (re)
Laurent Charignon
run-tests: add 'diff' entry in json report...
r27686 "diff": "", ? (re)
Pierre-Yves David
run-tests: track start and end time of tests...
r25097 "end": "\s*[\d\.]{4,5}", ? (re)
Pierre-Yves David
run-test: add a test for json output when -i is used...
r24979 "result": "success", ? (re)
Pierre-Yves David
run-tests: track start and end time of tests...
r25097 "start": "\s*[\d\.]{4,5}", ? (re)
Pierre-Yves David
run-test: add a test for json output when -i is used...
r24979 "time": "\s*[\d\.]{4,5}" (re)
}, ? (re)
"test-skip.t": {
"csys": "\s*[\d\.]{4,5}", ? (re)
"cuser": "\s*[\d\.]{4,5}", ? (re)
Laurent Charignon
run-tests: add 'diff' entry in json report...
r27686 "diff": "", ? (re)
Pierre-Yves David
run-tests: track start and end time of tests...
r25097 "end": "\s*[\d\.]{4,5}", ? (re)
Pierre-Yves David
run-test: add a test for json output when -i is used...
r24979 "result": "skip", ? (re)
Pierre-Yves David
run-tests: track start and end time of tests...
r25097 "start": "\s*[\d\.]{4,5}", ? (re)
Pierre-Yves David
run-test: add a test for json output when -i is used...
r24979 "time": "\s*[\d\.]{4,5}" (re)
}, ? (re)
"test-success.t": [\{] (re)
"csys": "\s*[\d\.]{4,5}", ? (re)
"cuser": "\s*[\d\.]{4,5}", ? (re)
Laurent Charignon
run-tests: add 'diff' entry in json report...
r27686 "diff": "", ? (re)
Pierre-Yves David
run-tests: track start and end time of tests...
r25097 "end": "\s*[\d\.]{4,5}", ? (re)
Pierre-Yves David
run-test: add a test for json output when -i is used...
r24979 "result": "success", ? (re)
Pierre-Yves David
run-tests: track start and end time of tests...
r25097 "start": "\s*[\d\.]{4,5}", ? (re)
Pierre-Yves David
run-test: add a test for json output when -i is used...
r24979 "time": "\s*[\d\.]{4,5}" (re)
}
} (no-eol)
$ mv backup test-failure.t
Gregory Szorc
run-tests: don't error when glob matched line ends with backslash...
r24811 backslash on end of line with glob matching is handled properly
$ cat > test-glob-backslash.t << EOF
> $ echo 'foo bar \\'
> foo * \ (glob)
> EOF
Matt Mackall
tests: avoid duplicate install steps in test-run-tests...
r27395 $ rt test-glob-backslash.t
Gregory Szorc
run-tests: don't error when glob matched line ends with backslash...
r24811 .
Gregory Szorc
tests: remove support for warned tests...
r32942 # Ran 1 tests, 0 skipped, 0 failed.
Gregory Szorc
run-tests: don't error when glob matched line ends with backslash...
r24811
$ rm -f test-glob-backslash.t
Jun Wu
runtests: change local IP glob pattern from "127.0.0.1" to "$LOCALIP"...
r31673 Test globbing of local IP addresses
Augie Fackler
run-tests: add support for using 127.0.0.1 as a glob...
r29518 $ echo 172.16.18.1
Jun Wu
runtests: change local IP glob pattern from "127.0.0.1" to "$LOCALIP"...
r31673 $LOCALIP (glob)
$ echo dead:beef::1
$LOCALIP (glob)
Augie Fackler
run-tests: add support for using 127.0.0.1 as a glob...
r29518
FUJIWARA Katsunori
run-tests.py: execute hghave by the path relative to run-tests.py...
r25728 Test reusability for third party tools
======================================
$ mkdir "$TESTTMP"/anothertests
$ cd "$TESTTMP"/anothertests
test that `run-tests.py` can execute hghave, even if it runs not in
Mercurial source tree.
$ cat > test-hghave.t <<EOF
> #require true
> $ echo foo
> foo
> EOF
timeless
tests: remove obsolete uses of HGTEST_RUN_TESTS_PURE...
r28616 $ rt test-hghave.t
FUJIWARA Katsunori
run-tests.py: execute hghave by the path relative to run-tests.py...
r25728 .
Gregory Szorc
tests: remove support for warned tests...
r32942 # Ran 1 tests, 0 skipped, 0 failed.
FUJIWARA Katsunori
run-tests.py: add RUNTESTDIR to refer `tests` of Mercurial...
r25729
test that RUNTESTDIR refers the directory, in which `run-tests.py` now
running is placed.
$ cat > test-runtestdir.t <<EOF
> - $TESTDIR, in which test-run-tests.t is placed
> - \$TESTDIR, in which test-runtestdir.t is placed (expanded at runtime)
> - \$RUNTESTDIR, in which run-tests.py is placed (expanded at runtime)
>
Matt Harbison
test-run-tests: conditionalize the $TESTDIR check for Windows separator...
r27057 > #if windows
> $ test "\$TESTDIR" = "$TESTTMP\anothertests"
> #else
FUJIWARA Katsunori
run-tests.py: add RUNTESTDIR to refer `tests` of Mercurial...
r25729 > $ test "\$TESTDIR" = "$TESTTMP"/anothertests
Matt Harbison
test-run-tests: conditionalize the $TESTDIR check for Windows separator...
r27057 > #endif
Augie Fackler
tests: add some commentary and diagnostics to test-run-tests.t...
r35388 > If this prints a path, that means RUNTESTDIR didn't equal
> TESTDIR as it should have.
> $ test "\$RUNTESTDIR" = "$TESTDIR" || echo "\$RUNTESTDIR"
> This should print the start of check-code. If this passes but the
> previous check failed, that means we found a copy of check-code at whatever
> RUNTESTSDIR ended up containing, even though it doesn't match TESTDIR.
Augie Fackler
tests: sed away python #! in test-run-tests.t to avoid some upcoming insanity
r32937 > $ head -n 3 "\$RUNTESTDIR"/../contrib/check-code.py | sed 's@.!.*python@#!USRBINENVPY@'
> #!USRBINENVPY
FUJIWARA Katsunori
run-tests.py: add RUNTESTDIR to refer `tests` of Mercurial...
r25729 > #
> # check-code - a style and portability checker for Mercurial
> EOF
timeless
tests: remove obsolete uses of HGTEST_RUN_TESTS_PURE...
r28616 $ rt test-runtestdir.t
FUJIWARA Katsunori
run-tests.py: add RUNTESTDIR to refer `tests` of Mercurial...
r25729 .
Gregory Szorc
tests: remove support for warned tests...
r32942 # Ran 1 tests, 0 skipped, 0 failed.
FUJIWARA Katsunori
run-tests.py: add TESTDIR to PATH if it differs from RUNTESTDIR...
r25730
#if execbit
test that TESTDIR is referred in PATH
$ cat > custom-command.sh <<EOF
> #!/bin/sh
> echo "hello world"
> EOF
$ chmod +x custom-command.sh
$ cat > test-testdir-path.t <<EOF
> $ custom-command.sh
> hello world
> EOF
timeless
tests: remove obsolete uses of HGTEST_RUN_TESTS_PURE...
r28616 $ rt test-testdir-path.t
FUJIWARA Katsunori
run-tests.py: add TESTDIR to PATH if it differs from RUNTESTDIR...
r25730 .
Gregory Szorc
tests: remove support for warned tests...
r32942 # Ran 1 tests, 0 skipped, 0 failed.
FUJIWARA Katsunori
run-tests.py: add TESTDIR to PATH if it differs from RUNTESTDIR...
r25730
#endif
Augie Fackler
run-tests: add support for marking tests as very slow...
r26109
test support for --allow-slow-tests
$ cat > test-very-slow-test.t <<EOF
> #require slow
> $ echo pass
> pass
> EOF
timeless
tests: remove obsolete uses of HGTEST_RUN_TESTS_PURE...
r28616 $ rt test-very-slow-test.t
Augie Fackler
run-tests: add support for marking tests as very slow...
r26109 s
Kyle Lippincott
tests: hint how to run slow tests when rejecting
r32473 Skipped test-very-slow-test.t: missing feature: allow slow tests (use --allow-slow-tests)
Gregory Szorc
tests: remove support for warned tests...
r32942 # Ran 0 tests, 1 skipped, 0 failed.
Matt Mackall
tests: avoid duplicate install steps in test-run-tests...
r27395 $ rt $HGTEST_RUN_TESTS_PURE --allow-slow-tests test-very-slow-test.t
Augie Fackler
run-tests: add support for marking tests as very slow...
r26109 .
Gregory Szorc
tests: remove support for warned tests...
r32942 # Ran 1 tests, 0 skipped, 0 failed.
David R. MacIver
run-tests: allow run-tests.py to run tests outside current directory...
r28180
support for running a test outside the current directory
$ mkdir nonlocal
$ cat > nonlocal/test-is-not-here.t << EOF
> $ echo pass
> pass
> EOF
$ rt nonlocal/test-is-not-here.t
.
Gregory Szorc
tests: remove support for warned tests...
r32942 # Ran 1 tests, 0 skipped, 0 failed.
Augie Fackler
run-tests: add support for automatically bisecting test failures
r28596
Matthieu Laneuville
run-tests: allow automatic test discovery when providing folder as argument...
r34970 support for automatically discovering test if arg is a folder
$ mkdir tmp && cd tmp
$ cat > test-uno.t << EOF
> $ echo line
> line
> EOF
$ cp test-uno.t test-dos.t
$ cd ..
$ cp -R tmp tmpp
$ cp tmp/test-uno.t test-solo.t
Jun Wu
test-run-tests: do not rebuild hg in the test...
r35241 $ rt tmp/ test-solo.t tmpp
Matthieu Laneuville
run-tests: allow automatic test discovery when providing folder as argument...
r34970 .....
# Ran 5 tests, 0 skipped, 0 failed.
$ rm -rf tmp tmpp
Matthieu Laneuville
run-tests: $TESTDIR can be something else than $PWD...
r34963 support for running run-tests.py from another directory
$ mkdir tmp && cd tmp
Matthieu Laneuville
run-tests: outputdir also has to be changed if $TESTDIR is not $PWD...
r35096
Matthieu Laneuville
run-tests: $TESTDIR can be something else than $PWD...
r34963 $ cat > useful-file.sh << EOF
> important command
> EOF
$ cat > test-folder.t << EOF
> $ cat \$TESTDIR/useful-file.sh
> important command
> EOF
Matthieu Laneuville
run-tests: outputdir also has to be changed if $TESTDIR is not $PWD...
r35096 $ cat > test-folder-fail.t << EOF
> $ cat \$TESTDIR/useful-file.sh
> important commando
> EOF
Matthieu Laneuville
run-tests: $TESTDIR can be something else than $PWD...
r34963 $ cd ..
Jun Wu
test-run-tests: do not rebuild hg in the test...
r35241 $ rt tmp/test-*.t
Matthieu Laneuville
run-tests: outputdir also has to be changed if $TESTDIR is not $PWD...
r35096
--- $TESTTMP/anothertests/tmp/test-folder-fail.t
+++ $TESTTMP/anothertests/tmp/test-folder-fail.t.err
@@ -1,2 +1,2 @@
$ cat $TESTDIR/useful-file.sh
- important commando
+ important command
ERROR: test-folder-fail.t output changed
!.
Failed test-folder-fail.t: output changed
# Ran 2 tests, 0 skipped, 1 failed.
python hash seed: * (glob)
[1]
Matthieu Laneuville
run-tests: $TESTDIR can be something else than $PWD...
r34963
Augie Fackler
run-tests: add support for automatically bisecting test failures
r28596 support for bisecting failed tests automatically
$ hg init bisect
$ cd bisect
$ cat >> test-bisect.t <<EOF
> $ echo pass
> pass
> EOF
$ hg add test-bisect.t
$ hg ci -m 'good'
$ cat >> test-bisect.t <<EOF
> $ echo pass
> fail
> EOF
$ hg ci -m 'bad'
$ rt --known-good-rev=0 test-bisect.t
--- $TESTTMP/anothertests/bisect/test-bisect.t
+++ $TESTTMP/anothertests/bisect/test-bisect.t.err
@@ -1,4 +1,4 @@
$ echo pass
pass
$ echo pass
- fail
+ pass
ERROR: test-bisect.t output changed
!
Failed test-bisect.t: output changed
test-bisect.t broken by 72cbf122d116 (bad)
Gregory Szorc
tests: remove support for warned tests...
r32942 # Ran 1 tests, 0 skipped, 1 failed.
Augie Fackler
run-tests: add support for automatically bisecting test failures
r28596 python hash seed: * (glob)
[1]
Jun Wu
run-tests: support multiple cases in .t test...
r32317
$ cd ..
Jun Wu
run-tests: allow bisecting a different repo...
r34043 support bisecting a separate repo
$ hg init bisect-dependent
$ cd bisect-dependent
$ cat > test-bisect-dependent.t <<EOF
> $ tail -1 \$TESTDIR/../bisect/test-bisect.t
> pass
> EOF
$ hg commit -Am dependent test-bisect-dependent.t
$ rt --known-good-rev=0 test-bisect-dependent.t
--- $TESTTMP/anothertests/bisect-dependent/test-bisect-dependent.t
+++ $TESTTMP/anothertests/bisect-dependent/test-bisect-dependent.t.err
@@ -1,2 +1,2 @@
$ tail -1 $TESTDIR/../bisect/test-bisect.t
- pass
+ fail
ERROR: test-bisect-dependent.t output changed
!
Failed test-bisect-dependent.t: output changed
Failed to identify failure point for test-bisect-dependent.t
# Ran 1 tests, 0 skipped, 1 failed.
python hash seed: * (glob)
[1]
$ rt --bisect-repo=../test-bisect test-bisect-dependent.t
Gregory Szorc
run-tests: convert to argparse...
r35188 usage: run-tests.py [options] [tests]
Jun Wu
run-tests: allow bisecting a different repo...
r34043 run-tests.py: error: --bisect-repo cannot be used without --known-good-rev
[2]
$ rt --known-good-rev=0 --bisect-repo=../bisect test-bisect-dependent.t
--- $TESTTMP/anothertests/bisect-dependent/test-bisect-dependent.t
+++ $TESTTMP/anothertests/bisect-dependent/test-bisect-dependent.t.err
@@ -1,2 +1,2 @@
$ tail -1 $TESTDIR/../bisect/test-bisect.t
- pass
+ fail
ERROR: test-bisect-dependent.t output changed
!
Failed test-bisect-dependent.t: output changed
test-bisect-dependent.t broken by 72cbf122d116 (bad)
# Ran 1 tests, 0 skipped, 1 failed.
python hash seed: * (glob)
[1]
$ cd ..
Augie Fackler
tests: fix run-tests when there's a bad #if in a test...
r32622 Test a broken #if statement doesn't break run-tests threading.
==============================================================
$ mkdir broken
$ cd broken
$ cat > test-broken.t <<EOF
> true
> #if notarealhghavefeature
> $ false
> #endif
> EOF
$ for f in 1 2 3 4 ; do
> cat > test-works-$f.t <<EOF
> This is test case $f
> $ sleep 1
> EOF
> done
$ rt -j 2
....
Gregory Szorc
tests: remove support for warned tests...
r32942 # Ran 5 tests, 0 skipped, 0 failed.
Augie Fackler
tests: fix run-tests when there's a bad #if in a test...
r32622 skipped: unknown feature: notarealhghavefeature
$ cd ..
$ rm -rf broken
Jun Wu
run-tests: support multiple cases in .t test...
r32317 Test cases in .t files
======================
$ mkdir cases
$ cd cases
$ cat > test-cases-abc.t <<'EOF'
> #testcases A B C
> $ V=B
> #if A
> $ V=A
> #endif
> #if C
> $ V=C
> #endif
> $ echo $V | sed 's/A/C/'
> C
> #if C
> $ [ $V = C ]
> #endif
> #if A
> $ [ $V = C ]
> [1]
> #endif
> #if no-C
> $ [ $V = C ]
> [1]
> #endif
> $ [ $V = D ]
> [1]
> EOF
$ rt
.
--- $TESTTMP/anothertests/cases/test-cases-abc.t
+++ $TESTTMP/anothertests/cases/test-cases-abc.t.B.err
@@ -7,7 +7,7 @@
$ V=C
#endif
$ echo $V | sed 's/A/C/'
- C
+ B
#if C
$ [ $V = C ]
#endif
Boris Feld
run-tests: update the test case name format...
r38225 ERROR: test-cases-abc.t#B output changed
Jun Wu
run-tests: support multiple cases in .t test...
r32317 !.
Boris Feld
run-tests: update the test case name format...
r38225 Failed test-cases-abc.t#B: output changed
Gregory Szorc
tests: remove support for warned tests...
r32942 # Ran 3 tests, 0 skipped, 1 failed.
Jun Wu
run-tests: support multiple cases in .t test...
r32317 python hash seed: * (glob)
[1]
--restart works
$ rt --restart
--- $TESTTMP/anothertests/cases/test-cases-abc.t
+++ $TESTTMP/anothertests/cases/test-cases-abc.t.B.err
@@ -7,7 +7,7 @@
$ V=C
#endif
$ echo $V | sed 's/A/C/'
- C
+ B
#if C
$ [ $V = C ]
#endif
Boris Feld
run-tests: update the test case name format...
r38225 ERROR: test-cases-abc.t#B output changed
Jun Wu
run-tests: support multiple cases in .t test...
r32317 !.
Boris Feld
run-tests: update the test case name format...
r38225 Failed test-cases-abc.t#B: output changed
Gregory Szorc
tests: remove support for warned tests...
r32942 # Ran 2 tests, 0 skipped, 1 failed.
Jun Wu
run-tests: support multiple cases in .t test...
r32317 python hash seed: * (glob)
[1]
Siddharth Agarwal
run-tests: make --restart work with output dir
r32720
--restart works with outputdir
$ mkdir output
$ mv test-cases-abc.t.B.err output
$ rt --restart --outputdir output
--- $TESTTMP/anothertests/cases/test-cases-abc.t
+++ $TESTTMP/anothertests/cases/output/test-cases-abc.t.B.err
@@ -7,7 +7,7 @@
$ V=C
#endif
$ echo $V | sed 's/A/C/'
- C
+ B
#if C
$ [ $V = C ]
#endif
Boris Feld
run-tests: update the test case name format...
r38225 ERROR: test-cases-abc.t#B output changed
Siddharth Agarwal
run-tests: make --restart work with output dir
r32720 !.
Boris Feld
run-tests: update the test case name format...
r38225 Failed test-cases-abc.t#B: output changed
Gregory Szorc
tests: remove support for warned tests...
r32942 # Ran 2 tests, 0 skipped, 1 failed.
Siddharth Agarwal
run-tests: make --restart work with output dir
r32720 python hash seed: * (glob)
[1]
Boris Feld
run-tests: allow to register any arbitrary pattern for replacement...
r35068
Martin von Zweigbergk
tests: make #testcase available as env var in test...
r35554 Test TESTCASE variable
$ cat > test-cases-ab.t <<'EOF'
> $ dostuff() {
> > echo "In case $TESTCASE"
> > }
> #testcases A B
> #if A
> $ dostuff
> In case A
> #endif
> #if B
> $ dostuff
> In case B
> #endif
> EOF
$ rt test-cases-ab.t
..
# Ran 2 tests, 0 skipped, 0 failed.
Boris Feld
run-tests: add support for running specific test cases...
r38224 Support running a specific test case
Boris Feld
run-tests: update the test case name format...
r38225 $ rt "test-cases-abc.t#B"
Boris Feld
run-tests: add support for running specific test cases...
r38224
--- $TESTTMP/anothertests/cases/test-cases-abc.t
+++ $TESTTMP/anothertests/cases/test-cases-abc.t.B.err
@@ -7,7 +7,7 @@
$ V=C
#endif
$ echo $V | sed 's/A/C/'
- C
+ B
#if C
$ [ $V = C ]
#endif
Boris Feld
run-tests: update the test case name format...
r38225 ERROR: test-cases-abc.t#B output changed
Boris Feld
run-tests: add support for running specific test cases...
r38224 !
Boris Feld
run-tests: update the test case name format...
r38225 Failed test-cases-abc.t#B: output changed
Boris Feld
run-tests: add support for running specific test cases...
r38224 # Ran 1 tests, 0 skipped, 1 failed.
python hash seed: * (glob)
[1]
Support running multiple test cases in the same file
Boris Feld
run-tests: update the test case name format...
r38225 $ rt test-cases-abc.t#B test-cases-abc.t#C
Boris Feld
run-tests: add support for running specific test cases...
r38224
--- $TESTTMP/anothertests/cases/test-cases-abc.t
+++ $TESTTMP/anothertests/cases/test-cases-abc.t.B.err
@@ -7,7 +7,7 @@
$ V=C
#endif
$ echo $V | sed 's/A/C/'
- C
+ B
#if C
$ [ $V = C ]
#endif
Boris Feld
run-tests: update the test case name format...
r38225 ERROR: test-cases-abc.t#B output changed
Boris Feld
run-tests: add support for running specific test cases...
r38224 !.
Boris Feld
run-tests: update the test case name format...
r38225 Failed test-cases-abc.t#B: output changed
Boris Feld
run-tests: add support for running specific test cases...
r38224 # Ran 2 tests, 0 skipped, 1 failed.
python hash seed: * (glob)
[1]
Boris Feld
run-tests: follow-up on the test-case format...
r38263 Support ignoring invalid test cases
Boris Feld
run-tests: add support for running specific test cases...
r38224
Boris Feld
run-tests: update the test case name format...
r38225 $ rt test-cases-abc.t#B test-cases-abc.t#D
Boris Feld
run-tests: add support for running specific test cases...
r38224
--- $TESTTMP/anothertests/cases/test-cases-abc.t
+++ $TESTTMP/anothertests/cases/test-cases-abc.t.B.err
@@ -7,7 +7,7 @@
$ V=C
#endif
$ echo $V | sed 's/A/C/'
- C
+ B
#if C
$ [ $V = C ]
#endif
Boris Feld
run-tests: update the test case name format...
r38225 ERROR: test-cases-abc.t#B output changed
Boris Feld
run-tests: add support for running specific test cases...
r38224 !
Boris Feld
run-tests: update the test case name format...
r38225 Failed test-cases-abc.t#B: output changed
Boris Feld
run-tests: add support for running specific test cases...
r38224 # Ran 1 tests, 0 skipped, 1 failed.
python hash seed: * (glob)
[1]
Boris Feld
run-tests: follow-up on the test-case format...
r38263 Support running complex test cases names
$ cat > test-cases-advanced-cases.t <<'EOF'
> #testcases simple case-with-dashes casewith!@#$%^&*()chars
> $ echo $TESTCASE
> simple
> EOF
$ cat test-cases-advanced-cases.t
#testcases simple case-with-dashes casewith!@#$%^&*()chars
$ echo $TESTCASE
simple
$ rt test-cases-advanced-cases.t
--- $TESTTMP/anothertests/cases/test-cases-advanced-cases.t
+++ $TESTTMP/anothertests/cases/test-cases-advanced-cases.t.case-with-dashes.err
@@ -1,3 +1,3 @@
#testcases simple case-with-dashes casewith!@#$%^&*()chars
$ echo $TESTCASE
- simple
+ case-with-dashes
ERROR: test-cases-advanced-cases.t#case-with-dashes output changed
!
--- $TESTTMP/anothertests/cases/test-cases-advanced-cases.t
+++ $TESTTMP/anothertests/cases/test-cases-advanced-cases.t.casewith!@#$%^&*()chars.err
@@ -1,3 +1,3 @@
#testcases simple case-with-dashes casewith!@#$%^&*()chars
$ echo $TESTCASE
- simple
+ casewith!@#$%^&*()chars
ERROR: test-cases-advanced-cases.t#casewith!@#$%^&*()chars output changed
!.
Failed test-cases-advanced-cases.t#case-with-dashes: output changed
Failed test-cases-advanced-cases.t#casewith!@#$%^&*()chars: output changed
# Ran 3 tests, 0 skipped, 2 failed.
python hash seed: * (glob)
[1]
$ rt "test-cases-advanced-cases.t#case-with-dashes"
--- $TESTTMP/anothertests/cases/test-cases-advanced-cases.t
+++ $TESTTMP/anothertests/cases/test-cases-advanced-cases.t.case-with-dashes.err
@@ -1,3 +1,3 @@
#testcases simple case-with-dashes casewith!@#$%^&*()chars
$ echo $TESTCASE
- simple
+ case-with-dashes
ERROR: test-cases-advanced-cases.t#case-with-dashes output changed
!
Failed test-cases-advanced-cases.t#case-with-dashes: output changed
# Ran 1 tests, 0 skipped, 1 failed.
python hash seed: * (glob)
[1]
$ rt "test-cases-advanced-cases.t#casewith!@#$%^&*()chars"
--- $TESTTMP/anothertests/cases/test-cases-advanced-cases.t
+++ $TESTTMP/anothertests/cases/test-cases-advanced-cases.t.casewith!@#$%^&*()chars.err
@@ -1,3 +1,3 @@
#testcases simple case-with-dashes casewith!@#$%^&*()chars
$ echo $TESTCASE
- simple
+ casewith!@#$%^&*()chars
ERROR: test-cases-advanced-cases.t#casewith!@#$%^&*()chars output changed
!
Failed test-cases-advanced-cases.t#casewith!@#$%^&*()chars: output changed
# Ran 1 tests, 0 skipped, 1 failed.
python hash seed: * (glob)
[1]
Boris Feld
run-tests: allow to register any arbitrary pattern for replacement...
r35068 Test automatic pattern replacement
Boris Feld
run-tests: add support for running specific test cases...
r38224 ==================================
Boris Feld
run-tests: allow to register any arbitrary pattern for replacement...
r35068
$ cat << EOF >> common-pattern.py
> substitutions = [
> (br'foo-(.*)\\b',
> br'\$XXX=\\1\$'),
> (br'bar\\n',
> br'\$YYY$\\n'),
> ]
> EOF
$ cat << EOF >> test-substitution.t
> $ echo foo-12
> \$XXX=12$
> $ echo foo-42
> \$XXX=42$
> $ echo bar prior
> bar prior
> $ echo lastbar
> last\$YYY$
> $ echo foo-bar foo-baz
> EOF
$ rt test-substitution.t
--- $TESTTMP/anothertests/cases/test-substitution.t
+++ $TESTTMP/anothertests/cases/test-substitution.t.err
@@ -7,3 +7,4 @@
$ echo lastbar
last$YYY$
$ echo foo-bar foo-baz
+ $XXX=bar foo-baz$
ERROR: test-substitution.t output changed
!
Failed test-substitution.t: output changed
# Ran 1 tests, 0 skipped, 1 failed.
python hash seed: * (glob)
[1]
Gregory Szorc
run-tests: make --extra-config-opt work with Python 3...
r35190
--extra-config-opt works
$ cat << EOF >> test-config-opt.t
> $ hg init test-config-opt
> $ hg -R test-config-opt purge
> EOF
$ rt --extra-config-opt extensions.purge= test-config-opt.t
.
# Ran 1 tests, 0 skipped, 0 failed.