##// END OF EJS Templates
hg: establish a cache for localrepository instances...
hg: establish a cache for localrepository instances hgweb contained code for determining whether a cached localrepository instance was up to date. This code was way too low-level to be in hgweb. This functionality has been moved to a new "cachedlocalrepo" class in hg.py. The code has been changed slightly to facilitate use inside a class. hgweb has been refactored to use the new API. As part of this refactor, hgweb.repo no longer exists! We're very close to using a distinct repo instance per thread. The new cache records state when it is created. This intelligence prevents an extra localrepository from being created on the first hgweb request. This is why some redundant output from test-extension.t has gone away.

File last commit:

r26158:342ab95a default
r26219:ae33fff1 default
Show More
test-run-tests.t
637 lines | 16.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:
$ unset HGTEST_JOBS
$ unset HGTEST_TIMEOUT
$ unset HGTEST_PORT
$ unset HGTEST_SHELL
Pierre-Yves David
test: introduce test-run-tests.t...
r21732 Smoke test
============
Matt Mackall
tests: drop explicit $TESTDIR from executables...
r25472 $ run-tests.py $HGTEST_RUN_TESTS_PURE
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
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 Mackall
tests: add (?) flag for optional lines...
r25388 > never happens (?)
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 (?)
Pierre-Yves David
test-run-tests.t: test running a passing test
r21734 > EOF
Matt Mackall
tests: drop explicit $TESTDIR from executables...
r25472 $ run-tests.py --with-hg=`which hg`
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
==================
$ 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.
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: drop explicit $TESTDIR from executables...
r25472 $ run-tests.py --with-hg=`which hg`
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
Augie Fackler
test-run-tests.t: add extra data to tests for keyword tests...
r21995 @@ -1,4 +1,4 @@
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.
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
Augie Fackler
run-tests: add support for xunit test reports...
r22044 test --xunit support
Matt Mackall
tests: drop explicit $TESTDIR from executables...
r25472 $ run-tests.py --with-hg=`which hg` --xunit=xunit.xml
Augie Fackler
run-tests: add support for xunit test reports...
r22044
--- $TESTTMP/test-failure.t
+++ $TESTTMP/test-failure.t.err
@@ -1,4 +1,4 @@
$ echo babar
- rataxes
+ babar
This is a noop statement so that
this test is still more bytes than success.
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)
<![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)
]]> </testcase>
Augie Fackler
run-tests: add support for xunit test reports...
r22044 <testcase name="test-failure.t" time="*"> (glob)
<![CDATA[--- $TESTTMP/test-failure.t
+++ $TESTTMP/test-failure.t.err
@@ -1,4 +1,4 @@
$ echo babar
- rataxes
+ babar
This is a noop statement so that
this test is still more bytes than success.
]]> </testcase>
</testsuite>
Pierre-Yves David
test-run-tests.t: tests the --retest option
r21741
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: drop explicit $TESTDIR from executables...
r25472 $ run-tests.py --with-hg=`which hg` --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
Augie Fackler
test-run-tests.t: add extra data to tests for keyword tests...
r21995 @@ -1,4 +1,4 @@
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.
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
Selecting Tests To Run
======================
successful
Matt Mackall
tests: drop explicit $TESTDIR from executables...
r25472 $ run-tests.py --with-hg=`which hg` 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: drop explicit $TESTDIR from executables...
r25472 $ run-tests.py --with-hg=`which hg` -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: drop explicit $TESTDIR from executables...
r25472 $ run-tests.py --with-hg=`which hg` 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
Augie Fackler
test-run-tests.t: add extra data to tests for keyword tests...
r21995 @@ -1,4 +1,4 @@
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.
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: drop explicit $TESTDIR from executables...
r25472 $ run-tests.py --with-hg=`which hg` -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
@@ -1,4 +1,4 @@
$ echo babar
- rataxes
+ babar
This is a noop statement so that
this test is still more bytes than success.
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
==================================================================
NOTE: there is currently a bug where this shows "2 failed" even though
it's actually the same test being reported for failure twice.
$ cat > test-serve-fail.t <<EOF
> $ echo 'abort: child process failed to start blah'
> EOF
Matt Mackall
tests: drop explicit $TESTDIR from executables...
r25472 $ run-tests.py --with-hg=`which hg` 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
!
ERROR: test-serve-fail.t output changed
!
Failed test-serve-fail.t: server failed to start (HGPORT=*) (glob)
Failed test-serve-fail.t: output changed
# Ran 1 tests, 0 skipped, 0 warned, 2 failed.
python hash seed: * (glob)
[1]
$ rm test-serve-fail.t
Pierre-Yves David
test-run-tests.t: test --debug option
r21743 Running In Debug Mode
======================
Matt Mackall
tests: drop explicit $TESTDIR from executables...
r25472 $ run-tests.py --with-hg=`which hg` --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
Thomas Klausner
tests: adapt glob pattern to fix test with NetBSD's sh(1) (issue4484)
r23676 + echo *SALT* 4 0 (glob)
*SALT* 4 0 (glob)
.+ echo *SALT* 0 0 (glob)
*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 Mackall
tests: add (?) flag for optional lines...
r25388 + echo *SALT* 6 0 (glob)
*SALT* 6 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: drop explicit $TESTDIR from executables...
r25472 $ run-tests.py --with-hg=`which hg` --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: drop explicit $TESTDIR from executables...
r25472 $ run-tests.py --with-hg=`which hg` --jobs 2 --first
Augie Fackler
run-tests: handle --jobs and --first gracefully...
r22838
--- $TESTTMP/test-failure*.t (glob)
+++ $TESTTMP/test-failure*.t.err (glob)
@@ -1,4 +1,4 @@
$ echo babar
- rataxes
+ babar
This is a noop statement so that
this test is still more bytes than success.
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: drop explicit $TESTDIR from executables...
r25472 $ echo 'n' | run-tests.py --with-hg=`which hg` -i
Pierre-Yves David
test-run-tests.t: test the --interactive option
r21755
--- $TESTTMP/test-failure.t
+++ $TESTTMP/test-failure.t.err
Augie Fackler
test-run-tests.t: add extra data to tests for keyword tests...
r21995 @@ -1,4 +1,4 @@
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 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.
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: drop explicit $TESTDIR from executables...
r25472 $ echo 'n' | run-tests.py --with-hg=`which hg` -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: drop explicit $TESTDIR from executables...
r25472 $ echo 'y' | run-tests.py --with-hg=`which hg` --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: drop explicit $TESTDIR from executables...
r25472 $ echo 'y' | run-tests.py --with-hg=`which hg` -i 2>&1 | \
Mads Kiilerich
run-tests: automatically add (glob) to "saved backup bundle to" lines...
r23728 > sed -e 's,(glob)$,&<,g'
Pierre-Yves David
test-run-tests.t: test the --interactive option
r21755
--- $TESTTMP/test-failure.t
+++ $TESTTMP/test-failure.t.err
Mads Kiilerich
run-tests: automatically add (glob) to "saved backup bundle to" lines...
r23728 @@ -1,9 +1,9 @@
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.
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
+ 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'
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.
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: drop explicit $TESTDIR from executables...
r25472 $ run-tests.py --with-hg=`which hg` --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
test for --time
==================
Matt Mackall
tests: drop explicit $TESTDIR from executables...
r25472 $ run-tests.py --with-hg=`which hg` 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: drop explicit $TESTDIR from executables...
r25472 $ run-tests.py --with-hg=`which hg` 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: drop explicit $TESTDIR from executables...
r25472 $ run-tests.py --with-hg=`which hg` --nodiff
Augie Fackler
test-run-tests.t: add tests for skips...
r21996 !.s
Mads Kiilerich
run-tests: report skipped tests as "skipped" - they might still be "relevant"
r22292 Skipped test-skip.t: skipped
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: drop explicit $TESTDIR from executables...
r25472 $ run-tests.py --with-hg=`which hg` --keyword xyzzy
Matt Mackall
run-tests: don't show 'i' for tests that don't match a keyword
r22107 .s
Mads Kiilerich
run-tests: report skipped tests as "skipped" - they might still be "relevant"
r22292 Skipped test-skip.t: skipped
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: drop explicit $TESTDIR from executables...
r25472 $ run-tests.py --with-hg=`which hg` --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
Mads Kiilerich
run-tests: report skipped tests as "skipped" - they might still be "relevant"
r22292 Skipped test-skip.t: skipped
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)
</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
Matt Mackall
tests: drop explicit $TESTDIR from executables...
r25472 $ run-tests.py --with-hg=`which hg` --blacklist=blacklist \
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.
Pierre-Yves David
test: protect the run-tests.py --json test behind an hghave rule...
r22579 #if json
anuraggoel
run-tests: added '--json' functionality to store test result in json file...
r22391 test for --json
==================
Matt Mackall
tests: drop explicit $TESTDIR from executables...
r25472 $ run-tests.py --with-hg=`which hg` --json
anuraggoel
run-tests: added '--json' functionality to store test result in json file...
r22391
--- $TESTTMP/test-failure.t
+++ $TESTTMP/test-failure.t.err
@@ -1,4 +1,4 @@
$ echo babar
- rataxes
+ babar
This is a noop statement so that
this test is still more bytes than success.
ERROR: test-failure.t output changed
!.s
Skipped test-skip.t: skipped
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)
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)
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)
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: drop explicit $TESTDIR from executables...
r25472 $ echo y | run-tests.py --with-hg=`which hg` --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
@@ -1,4 +1,4 @@
$ echo babar
- rataxes
+ babar
This is a noop statement so that
this test is still more bytes than success.
Accept this change? [n] ..s
Skipped test-skip.t: skipped
# 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)
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)
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)
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
Pierre-Yves David
test: protect the run-tests.py --json test behind an hghave rule...
r22579 #endif
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: drop explicit $TESTDIR from executables...
r25472 $ run-tests.py --with-hg=`which hg` 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
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@mozdev.org
run-tests: use $HGTEST_RUN_TESTS_PURE...
r26158 $ run-tests.py $HGTEST_RUN_TESTS_PURE 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)
>
> $ test "\$TESTDIR" = "$TESTTMP"/anothertests
> $ 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@mozdev.org
run-tests: use $HGTEST_RUN_TESTS_PURE...
r26158 $ run-tests.py $HGTEST_RUN_TESTS_PURE 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@mozdev.org
run-tests: use $HGTEST_RUN_TESTS_PURE...
r26158 $ run-tests.py $HGTEST_RUN_TESTS_PURE 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@mozdev.org
run-tests: use $HGTEST_RUN_TESTS_PURE...
r26158 $ run-tests.py $HGTEST_RUN_TESTS_PURE test-very-slow-test.t
Augie Fackler
run-tests: add support for marking tests as very slow...
r26109 s
Skipped test-very-slow-test.t: skipped
# Ran 0 tests, 1 skipped, 0 warned, 0 failed.
timeless@mozdev.org
run-tests: use $HGTEST_RUN_TESTS_PURE...
r26158 $ run-tests.py $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.