##// END OF EJS Templates
run-tests: write test times to output dir
run-tests: write test times to output dir

File last commit:

r32717:e5680cb1 default
r32717:e5680cb1 default
Show More
test-run-tests.t
1123 lines | 28.8 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 ============
Matt Mackall
tests: avoid duplicate install steps in test-run-tests...
r27395 $ run-tests.py $HGTEST_RUN_TESTS_PURE -l
Pierre-Yves David
test: introduce test-run-tests.t...
r21732
# Ran 0 tests, 0 skipped, 0 warned, 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()
> {
> run-tests.py --with-hg=`which hg` "$@"
> }
timeless
run-tests: warn about symlinks to non hg scripts...
r28037 error paths
#if symlink
$ ln -s `which true` hg
$ run-tests.py --with-hg=./hg
warning: --with-hg should specify an hg script
# Ran 0 tests, 0 skipped, 0 warned, 0 failed.
$ rm hg
#endif
#if execbit
$ touch hg
$ run-tests.py --with-hg=./hg
Usage: run-tests.py [options] [tests]
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
.
# Ran 1 tests, 0 skipped, 0 warned, 0 failed.
$ 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 .
# Ran 1 tests, 0 skipped, 0 warned, 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
> $ echo "bar-baz"; echo "bar-bad"
> bar*bad (glob)
> bar*baz (glob)
> EOF
$ rt test-failure.t
--- $TESTTMP/test-failure.t
+++ $TESTTMP/test-failure.t.err
@@ -1,3 +1,3 @@
$ echo "bar-baz"; echo "bar-bad"
+ bar*baz (glob)
bar*bad (glob)
- bar*baz (glob)
ERROR: test-failure.t output changed
!
Failed test-failure.t: output changed
# Ran 1 tests, 0 skipped, 0 warned, 1 failed.
python hash seed: * (glob)
[1]
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
# Ran 3 tests, 0 skipped, 0 warned, 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
# Ran 3 tests, 0 skipped, 0 warned, 2 failed.
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
# Ran 3 tests, 0 skipped, 0 warned, 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
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>
$ rt --list-tests test-failure* --json --xunit=xunit.xml
test-failure-unicode.t
test-failure.t
$ cat report.json
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
Augie Fackler
run-tests: fix test result counts with --keyword specified or skips occurring...
r21997 # Ran 2 tests, 1 skipped, 0 warned, 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
# Ran 2 tests, 1 skipped, 0 warned, 1 failed.
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 .
# Ran 1 tests, 0 skipped, 0 warned, 0 failed.
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 .
# Ran 2 tests, 1 skipped, 0 warned, 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
# Ran 1 tests, 0 skipped, 0 warned, 1 failed.
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
Matt Mackall
run-tests: don't show 'i' for tests that don't match a keyword
r22107 # Ran 2 tests, 1 skipped, 0 warned, 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
Augie Fackler
test-run-tests: add a test for detection of failure to start a server...
r22840
ERROR: test-serve-fail.t output changed
!
Failed test-serve-fail.t: server failed to start (HGPORT=*) (glob)
timeless
run-tests: avoid double counting server fails
r27567 # Ran 1 tests, 0 skipped, 0 warned, 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
===================================
$ hg init inuse
$ 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
.
# Ran 1 tests, 0 skipped, 0 warned, 0 failed.
$ rm test-serve-inuse.t
timeless
test-run-tests: clean up inuse server eagerly
r29221 $ killdaemons.py $DAEMON_PIDS
$ rm $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 .
# Ran 2 tests, 0 skipped, 0 warned, 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)
# Ran 2 tests, 0 skipped, 0 warned, 2 failed.
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
>>> f = open('test-nothing.t', 'w')
Augie Fackler
test-run-tests.t: work around file.write() returning an int...
r25054 >>> f.write('foo\n' * 1024) and None
>>> f.write(' $ sleep 1') and None
Matt Mackall
tests: avoid duplicate install steps in test-run-tests...
r27395 $ rt --jobs 2 --first
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)
Gregory Szorc
run-tests: wait for test threads after first error...
r24507 Failed test-nothing.t: output changed
# Ran 2 tests, 0 skipped, 0 warned, 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)
Augie Fackler
run-tests: handle --jobs and --first gracefully...
r22838 $ rm test-failure-copy.t test-nothing.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
# Ran 2 tests, 0 skipped, 0 warned, 1 failed.
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: fix globs for Windows...
r23348 $TESTTMP/test-failure.t $TESTTMP/test-failure.t.err (glob)
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
# Ran 2 tests, 0 skipped, 0 warned, 1 failed.
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: fix globs for Windows...
r23348 $TESTTMP/test-failure.t $TESTTMP/test-failure.t.err (glob)
Matt Mackall
test-run-tests: test --view
r22108
ERROR: test-failure.t output changed
!.
Failed test-failure.t: output changed
# Ran 2 tests, 0 skipped, 0 warned, 1 failed.
python hash seed: * (glob)
[1]
Pierre-Yves David
test-run-tests.t: test the --interactive option
r21755
Accept the fix
Mads Kiilerich
run-tests: automatically add (glob) to "saved backup bundle to" lines...
r23728 $ echo " $ echo 'saved backup bundle to \$TESTTMP/foo.hg'" >> test-failure.t
$ echo " saved backup bundle to \$TESTTMP/foo.hg" >> test-failure.t
$ echo " $ echo 'saved backup bundle to \$TESTTMP/foo.hg'" >> test-failure.t
$ echo " saved backup bundle to \$TESTTMP/foo.hg (glob)" >> test-failure.t
$ echo " $ echo 'saved backup bundle to \$TESTTMP/foo.hg'" >> test-failure.t
$ echo " saved backup bundle to \$TESTTMP/*.hg (glob)" >> test-failure.t
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
test-run-tests: pad the failure test to preserve the run order...
r31828 @@ -9,7 +9,7 @@
pad pad pad pad............................................................
Matt Harbison
test-run-tests: pad the failure test to preserve the run order...
r28316 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'
- saved backup bundle to $TESTTMP/foo.hg
Matt Mackall
tests: avoid duplicate install steps in test-run-tests...
r27395 + saved backup bundle to $TESTTMP/foo.hg* (glob)
Mads Kiilerich
run-tests: automatically add (glob) to "saved backup bundle to" lines...
r23728 $ echo 'saved backup bundle to $TESTTMP/foo.hg'
Matt Mackall
tests: avoid duplicate install steps in test-run-tests...
r27395 saved backup bundle to $TESTTMP/foo.hg* (glob)
Mads Kiilerich
run-tests: automatically add (glob) to "saved backup bundle to" lines...
r23728 $ echo 'saved backup bundle to $TESTTMP/foo.hg'
Pierre-Yves David
test-run-tests.t: test the --interactive option
r21755 Accept this change? [n] ..
# Ran 2 tests, 0 skipped, 0 warned, 0 failed.
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'
saved backup bundle to $TESTTMP/foo.hg (glob)<
$ echo 'saved backup bundle to $TESTTMP/foo.hg'
saved backup bundle to $TESTTMP/foo.hg (glob)<
$ 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
(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
# Ran 2 tests, 0 skipped, 0 warned, 1 failed.
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
test-run-tests: add globs for Windows...
r26432 Keeping testtmp dir: $TESTTMP/keep/child1/test-success.t (glob)
Keeping threadtmp dir: $TESTTMP/keep/child1 (glob)
timeless@mozdev.org
run-tests: report paths saved by --keep-tmpdir
r26422 .
# Ran 1 tests, 0 skipped, 0 warned, 0 failed.
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
# Ran 1 tests, 1 skipped, 0 warned, 1 failed.
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
# Ran 2 tests, 0 skipped, 0 warned, 1 failed.
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 .
# Ran 1 tests, 0 skipped, 0 warned, 0 failed.
# 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 .
# Ran 1 tests, 0 skipped, 0 warned, 0 failed.
# 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
Matt Mackall
run-tests: add #require to abort full test...
r22045 > #require false
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
Augie Fackler
test-run-tests.t: add tests for skips...
r21996 !.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
# Ran 2 tests, 1 skipped, 0 warned, 1 failed.
python hash seed: * (glob)
[1]
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
Matt Mackall
run-tests: don't show 'i' for tests that don't match a keyword
r22107 # Ran 2 tests, 2 skipped, 0 warned, 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
Matt Mackall
run-tests: don't show 'i' for tests that don't match a keyword
r22107 # Ran 2 tests, 2 skipped, 0 warned, 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
# Ran 0 tests, 2 skipped, 0 warned, 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
# Ran 1 tests, 1 skipped, 0 warned, 1 failed.
python hash seed: * (glob)
[1]
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
# Ran 2 tests, 1 skipped, 0 warned, 1 failed.
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)
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
Pierre-Yves David
run-test: add a test for json output when -i is used...
r24979 # Ran 2 tests, 1 skipped, 0 warned, 0 failed.
$ 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 .
# Ran 1 tests, 0 skipped, 0 warned, 0 failed.
$ 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 .
# Ran 1 tests, 0 skipped, 0 warned, 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
FUJIWARA Katsunori
run-tests.py: add RUNTESTDIR to refer `tests` of Mercurial...
r25729 > $ test "\$RUNTESTDIR" = "$TESTDIR"
> $ head -n 3 "\$RUNTESTDIR"/../contrib/check-code.py
> #!/usr/bin/env python
> #
> # 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 .
# Ran 1 tests, 0 skipped, 0 warned, 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 .
# Ran 1 tests, 0 skipped, 0 warned, 0 failed.
#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)
Augie Fackler
run-tests: add support for marking tests as very slow...
r26109 # Ran 0 tests, 1 skipped, 0 warned, 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 .
# Ran 1 tests, 0 skipped, 0 warned, 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
.
# Ran 1 tests, 0 skipped, 0 warned, 0 failed.
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)
# Ran 1 tests, 0 skipped, 0 warned, 1 failed.
python hash seed: * (glob)
[1]
Jun Wu
run-tests: support multiple cases in .t test...
r32317
$ 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
....
# Ran 5 tests, 0 skipped, 0 warned, 0 failed.
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
ERROR: test-cases-abc.t (case B) output changed
!.
Failed test-cases-abc.t (case B): output changed
# Ran 3 tests, 0 skipped, 0 warned, 1 failed.
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
ERROR: test-cases-abc.t (case B) output changed
!.
Failed test-cases-abc.t (case B): output changed
# Ran 2 tests, 0 skipped, 0 warned, 1 failed.
python hash seed: * (glob)
[1]