##// END OF EJS Templates
run-tests: add missing life-cycle methods on the example custom test result...
run-tests: add missing life-cycle methods on the example custom test result A previous commit introduced `onStart` and `onEnd` methods on test result but the one used in tests lacked those two methods. Fix it and add some output to be sure they are called. Differential Revision: https://phab.mercurial-scm.org/D3899

File last commit:

r38640:f4a21430 default
r38640:f4a21430 default
Show More
test-run-tests.t
1823 lines | 44.9 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]
Martin von Zweigbergk
tests: add test showing puzzling test output with (glob) lines...
r38571 test how multiple globs gets matched with lines in output
$ cat > test-failure-globs.t <<EOF
> $ echo "context"; echo "context"; \
> echo "key: 1"; echo "value: not a"; \
> echo "key: 2"; echo "value: not b"; \
> echo "key: 3"; echo "value: c"; \
> echo "key: 4"; echo "value: d"
> context
> context
> key: 1
> value: a
> key: 2
> value: b
> key: 3
> value: * (glob)
> key: 4
> value: * (glob)
> EOF
$ rt test-failure-globs.t
--- $TESTTMP/test-failure-globs.t
+++ $TESTTMP/test-failure-globs.t.err
Martin von Zweigbergk
tests: don't allow reodering of glob/re lines across non-glob/re lines...
r38572 @@ -2,9 +2,9 @@
Martin von Zweigbergk
tests: add test showing puzzling test output with (glob) lines...
r38571 context
context
key: 1
- value: a
Martin von Zweigbergk
tests: don't allow reodering of glob/re lines across non-glob/re lines...
r38572 + value: not a
Martin von Zweigbergk
tests: add test showing puzzling test output with (glob) lines...
r38571 key: 2
- value: b
Martin von Zweigbergk
tests: don't allow reodering of glob/re lines across non-glob/re lines...
r38572 + value: not b
Martin von Zweigbergk
tests: add test showing puzzling test output with (glob) lines...
r38571 key: 3
Martin von Zweigbergk
tests: don't allow reodering of glob/re lines across non-glob/re lines...
r38572 value: * (glob)
Martin von Zweigbergk
tests: add test showing puzzling test output with (glob) lines...
r38571 key: 4
ERROR: test-failure-globs.t output changed
!
Failed test-failure-globs.t: output changed
# Ran 1 tests, 0 skipped, 1 failed.
python hash seed: * (glob)
[1]
$ rm test-failure-globs.t
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)
Martin von Zweigbergk
tests: add test showing puzzling test output with (glob) lines...
r38571 test-failure-globs.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
Boris Feld
run-tests: add support for external test result...
r38635 Add support for external test formatter
=======================================
$ CUSTOM_TEST_RESULT=basic_test_result $PYTHON $TESTDIR/run-tests.py --with-hg=`which hg` "$@" test-success.t test-failure.t
# Ran 2 tests, 0 skipped, 0 failed.
Boris Feld
run-tests: add missing life-cycle methods on the example custom test result...
r38640 ON_START! <__main__.TestSuite tests=[<__main__.TTest testMethod=test-failure.t>, <__main__.TTest testMethod=test-success.t>]>
Boris Feld
run-tests: add support for external test result...
r38635 FAILURE! test-failure.t output changed
SUCCESS! test-success.t
Boris Feld
run-tests: add missing life-cycle methods on the example custom test result...
r38640 ON_END!
Boris Feld
run-tests: add support for external test result...
r38635
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'
Boris Feld
run-tests: restrict the test cases allowed characters...
r38309 > #testcases simple case-with-dashes casewith_-.chars
Boris Feld
run-tests: follow-up on the test-case format...
r38263 > $ echo $TESTCASE
> simple
> EOF
$ cat test-cases-advanced-cases.t
Boris Feld
run-tests: restrict the test cases allowed characters...
r38309 #testcases simple case-with-dashes casewith_-.chars
Boris Feld
run-tests: follow-up on the test-case format...
r38263 $ 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 @@
Boris Feld
run-tests: restrict the test cases allowed characters...
r38309 #testcases simple case-with-dashes casewith_-.chars
Boris Feld
run-tests: follow-up on the test-case format...
r38263 $ 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
Boris Feld
run-tests: restrict the test cases allowed characters...
r38309 +++ $TESTTMP/anothertests/cases/test-cases-advanced-cases.t.casewith_-.chars.err
Boris Feld
run-tests: follow-up on the test-case format...
r38263 @@ -1,3 +1,3 @@
Boris Feld
run-tests: restrict the test cases allowed characters...
r38309 #testcases simple case-with-dashes casewith_-.chars
Boris Feld
run-tests: follow-up on the test-case format...
r38263 $ echo $TESTCASE
- simple
Boris Feld
run-tests: restrict the test cases allowed characters...
r38309 + casewith_-.chars
Boris Feld
run-tests: follow-up on the test-case format...
r38263
Boris Feld
run-tests: restrict the test cases allowed characters...
r38309 ERROR: test-cases-advanced-cases.t#casewith_-.chars output changed
Boris Feld
run-tests: follow-up on the test-case format...
r38263 !.
Failed test-cases-advanced-cases.t#case-with-dashes: output changed
Boris Feld
run-tests: restrict the test cases allowed characters...
r38309 Failed test-cases-advanced-cases.t#casewith_-.chars: output changed
Boris Feld
run-tests: follow-up on the test-case format...
r38263 # 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 @@
Boris Feld
run-tests: restrict the test cases allowed characters...
r38309 #testcases simple case-with-dashes casewith_-.chars
Boris Feld
run-tests: follow-up on the test-case format...
r38263 $ 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]
Boris Feld
run-tests: restrict the test cases allowed characters...
r38309 $ rt "test-cases-advanced-cases.t#casewith_-.chars"
Boris Feld
run-tests: follow-up on the test-case format...
r38263
--- $TESTTMP/anothertests/cases/test-cases-advanced-cases.t
Boris Feld
run-tests: restrict the test cases allowed characters...
r38309 +++ $TESTTMP/anothertests/cases/test-cases-advanced-cases.t.casewith_-.chars.err
Boris Feld
run-tests: follow-up on the test-case format...
r38263 @@ -1,3 +1,3 @@
Boris Feld
run-tests: restrict the test cases allowed characters...
r38309 #testcases simple case-with-dashes casewith_-.chars
Boris Feld
run-tests: follow-up on the test-case format...
r38263 $ echo $TESTCASE
- simple
Boris Feld
run-tests: restrict the test cases allowed characters...
r38309 + casewith_-.chars
Boris Feld
run-tests: follow-up on the test-case format...
r38263
Boris Feld
run-tests: restrict the test cases allowed characters...
r38309 ERROR: test-cases-advanced-cases.t#casewith_-.chars output changed
Boris Feld
run-tests: follow-up on the test-case format...
r38263 !
Boris Feld
run-tests: restrict the test cases allowed characters...
r38309 Failed test-cases-advanced-cases.t#casewith_-.chars: output changed
Boris Feld
run-tests: follow-up on the test-case format...
r38263 # 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.