D5070: run-tests: print number of tests and parallel process count
indygreg (Gregory Szorc)
phabricator at mercurial-scm.org
Sat Oct 13 10:35:20 UTC 2018
indygreg created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.
REVISION SUMMARY
This seems like a useful output message to have.
I also sneak in a change to lower the parallel process count if it
is larger than the number of tests, as that makes no sense and output
saying we're running more tests in parallel than there exists tests would
be wonky.
REPOSITORY
rHG Mercurial
REVISION DETAIL
https://phab.mercurial-scm.org/D5070
AFFECTED FILES
tests/run-tests.py
tests/test-run-tests.t
CHANGE DETAILS
diff --git a/tests/test-run-tests.t b/tests/test-run-tests.t
--- a/tests/test-run-tests.t
+++ b/tests/test-run-tests.t
@@ -7,6 +7,7 @@
Smoke test with install
============
$ "$PYTHON" $TESTDIR/run-tests.py $HGTEST_RUN_TESTS_PURE -l
+ running 0 tests using 0 parallel processes
# Ran 0 tests, 0 skipped, 0 failed.
@@ -23,6 +24,7 @@
$ ln -s `which true` hg
$ "$PYTHON" $TESTDIR/run-tests.py --with-hg=./hg
warning: --with-hg should specify an hg script
+ running 0 tests using 0 parallel processes
# Ran 0 tests, 0 skipped, 0 failed.
$ rm hg
@@ -55,6 +57,7 @@
$ touch test-empty.t
$ rt
+ running 1 tests using 1 parallel processes
.
# Ran 1 tests, 0 skipped, 0 failed.
$ rm test-empty.t
@@ -88,6 +91,7 @@
> EOF
$ rt
+ running 1 tests using 1 parallel processes
.
# Ran 1 tests, 0 skipped, 0 failed.
@@ -102,6 +106,7 @@
> | fo (re)
> EOF
$ rt test-failure.t
+ running 1 tests using 1 parallel processes
--- $TESTTMP/test-failure.t
+++ $TESTTMP/test-failure.t.err
@@ -139,6 +144,7 @@
> value: * (glob)
> EOF
$ rt test-failure-globs.t
+ running 1 tests using 1 parallel processes
--- $TESTTMP/test-failure-globs.t
+++ $TESTTMP/test-failure-globs.t.err
@@ -234,6 +240,7 @@
> missing (?)
> EOF
$ rt test-failure.t
+ running 1 tests using 1 parallel processes
--- $TESTTMP/test-failure.t
+++ $TESTTMP/test-failure.t.err
@@ -292,6 +299,7 @@
>>> fh.write(u' l\u03b5\u03b5t\n'.encode('utf-8')) and None
$ rt
+ running 3 tests using 1 parallel processes
--- $TESTTMP/test-failure.t
+++ $TESTTMP/test-failure.t.err
@@ -323,6 +331,7 @@
test --outputdir
$ mkdir output
$ rt --outputdir output
+ running 3 tests using 1 parallel processes
--- $TESTTMP/test-failure.t
+++ $TESTTMP/output/test-failure.t.err
@@ -359,6 +368,7 @@
test --xunit support
$ rt --xunit=xunit.xml
+ running 3 tests using 1 parallel processes
--- $TESTTMP/test-failure.t
+++ $TESTTMP/test-failure.t.err
@@ -481,6 +491,7 @@
====================
$ rt --retest
+ running 2 tests using 1 parallel processes
--- $TESTTMP/test-failure.t
+++ $TESTTMP/test-failure.t.err
@@ -504,6 +515,7 @@
$ mkdir output
$ mv test-failure.t.err output
$ rt --retest --outputdir output
+ running 2 tests using 1 parallel processes
--- $TESTTMP/test-failure.t
+++ $TESTTMP/output/test-failure.t.err
@@ -528,17 +540,20 @@
successful
$ rt test-success.t
+ running 1 tests using 1 parallel processes
.
# Ran 1 tests, 0 skipped, 0 failed.
success w/ keyword
$ rt -k xyzzy
+ running 2 tests using 1 parallel processes
.
# Ran 2 tests, 1 skipped, 0 failed.
failed
$ rt test-failure.t
+ running 1 tests using 1 parallel processes
--- $TESTTMP/test-failure.t
+++ $TESTTMP/test-failure.t.err
@@ -559,6 +574,7 @@
failure w/ keyword
$ rt -k rataxes
+ running 2 tests using 1 parallel processes
--- $TESTTMP/test-failure.t
+++ $TESTTMP/test-failure.t.err
@@ -584,6 +600,7 @@
> $ echo 'abort: child process failed to start blah'
> EOF
$ rt test-serve-fail.t
+ running 1 tests using 1 parallel processes
--- $TESTTMP/test-serve-fail.t
+++ $TESTTMP/test-serve-fail.t.err
@@ -614,6 +631,7 @@
> $ cat hg.pid >> \$DAEMON_PIDS
> EOF
$ rt test-serve-inuse.t
+ running 1 tests using 1 parallel processes
.
# Ran 1 tests, 0 skipped, 0 failed.
$ rm test-serve-inuse.t
@@ -623,6 +641,7 @@
======================
$ rt --debug 2>&1 | grep -v pwd
+ running 2 tests using 1 parallel processes
+ echo *SALT* 0 0 (glob)
*SALT* 0 0 (glob)
+ echo babar
@@ -661,6 +680,7 @@
$ cp test-failure.t test-failure-copy.t
$ rt --jobs 2 test-failure*.t -n
+ running 2 tests using 2 parallel processes
!!
Failed test-failure*.t: output changed (glob)
Failed test-failure*.t: output changed (glob)
@@ -670,6 +690,7 @@
failures in parallel with --first should only print one failure
$ rt --jobs 2 --first test-failure*.t
+ running 2 tests using 2 parallel processes
--- $TESTTMP/test-failure*.t (glob)
+++ $TESTTMP/test-failure*.t.err (glob)
@@ -701,6 +722,7 @@
Refuse the fix
$ echo 'n' | rt -i
+ running 2 tests using 1 parallel processes
--- $TESTTMP/test-failure.t
+++ $TESTTMP/test-failure.t.err
@@ -734,6 +756,7 @@
Interactive with custom view
$ echo 'n' | rt -i --view echo
+ running 2 tests using 1 parallel processes
$TESTTMP/test-failure.t $TESTTMP/test-failure.t.err
Accept this change? [n]* (glob)
ERROR: test-failure.t output changed
@@ -746,6 +769,7 @@
View the fix
$ echo 'y' | rt --view echo
+ running 2 tests using 1 parallel processes
$TESTTMP/test-failure.t $TESTTMP/test-failure.t.err
ERROR: test-failure.t output changed
@@ -766,6 +790,7 @@
> saved backup bundle to \$TESTTMP/*.hg (glob)
> EOF
$ echo 'y' | rt -i 2>&1
+ running 2 tests using 1 parallel processes
--- $TESTTMP/test-failure.t
+++ $TESTTMP/test-failure.t.err
@@ -815,6 +840,7 @@
> EOF
$ rt -i test-race.t
+ running 1 tests using 1 parallel processes
--- $TESTTMP/test-race.t
+++ $TESTTMP/test-race.t.err
@@ -848,6 +874,7 @@
> y
> y
> EOF
+ running 2 tests using 1 parallel processes
--- $TESTTMP/test-cases.t
+++ $TESTTMP/test-cases.t#a.err
@@ -893,6 +920,7 @@
> B (b !)
> EOF
$ rt test-cases.t
+ running 2 tests using 1 parallel processes
..
# Ran 2 tests, 0 skipped, 0 failed.
@@ -911,6 +939,7 @@
> #endif
> EOF
$ rt test-cases.t
+ running 4 tests using 1 parallel processes
..
--- $TESTTMP/test-cases.t
+++ $TESTTMP/test-cases.t#b#c.err
@@ -939,14 +968,16 @@
===============
$ rt --nodiff
+ running 2 tests using 1 parallel processes
!.
Failed test-failure.t: output changed
# Ran 2 tests, 0 skipped, 1 failed.
python hash seed: * (glob)
[1]
test --tmpdir support
$ rt --tmpdir=$TESTTMP/keep test-success.t
+ running 1 tests using 1 parallel processes
Keeping testtmp dir: $TESTTMP/keep/child1/test-success.t
Keeping threadtmp dir: $TESTTMP/keep/child1
@@ -963,14 +994,16 @@
> echo '#require slow' > test-slow-timeout.t
> cat test-timeout.t >> test-slow-timeout.t
$ rt --timeout=1 --slowtimeout=3 test-timeout.t test-slow-timeout.t
+ running 2 tests using 1 parallel processes
st
Skipped test-slow-timeout.t: missing feature: allow slow tests (use --allow-slow-tests)
Failed test-timeout.t: timed out
# Ran 1 tests, 1 skipped, 1 failed.
python hash seed: * (glob)
[1]
$ rt --timeout=1 --slowtimeout=3 \
> test-timeout.t test-slow-timeout.t --allow-slow-tests
+ running 2 tests using 1 parallel processes
.t
Failed test-timeout.t: timed out
# Ran 2 tests, 0 skipped, 1 failed.
@@ -982,6 +1015,7 @@
==================
$ rt test-success.t --time
+ running 1 tests using 1 parallel processes
.
# Ran 1 tests, 0 skipped, 0 failed.
# Producing time report
@@ -992,6 +1026,7 @@
====================================
$ rt test-success.t --time --jobs 2
+ running 1 tests using 1 parallel processes
.
# Ran 1 tests, 0 skipped, 0 failed.
# Producing time report
@@ -1012,6 +1047,7 @@
> #endif
> EOF
$ rt --nodiff
+ running 4 tests using 1 parallel processes
!.s.
Skipped test-skip.t: missing feature: nail clipper
Failed test-failure.t: output changed
@@ -1021,13 +1057,15 @@
$ rm test-noskip.t
$ rt --keyword xyzzy
+ running 3 tests using 1 parallel processes
.s
Skipped test-skip.t: missing feature: nail clipper
# Ran 2 tests, 2 skipped, 0 failed.
Skips with xml
$ rt --keyword xyzzy \
> --xunit=xunit.xml
+ running 3 tests using 1 parallel processes
.s
Skipped test-skip.t: missing feature: nail clipper
# Ran 2 tests, 2 skipped, 0 failed.
@@ -1045,6 +1083,7 @@
$ echo test-failure.t > blacklist
$ rt --blacklist=blacklist --json\
> test-failure.t test-bogus.t
+ running 2 tests using 1 parallel processes
ss
Skipped test-bogus.t: Doesn't exist
Skipped test-failure.t: blacklisted
@@ -1063,6 +1102,7 @@
$ echo test-failure.t > whitelist
$ rt --blacklist=blacklist --whitelist=whitelist --json\
> test-failure.t test-bogus.t
+ running 2 tests using 1 parallel processes
s
--- $TESTTMP/test-failure.t
+++ $TESTTMP/test-failure.t.err
@@ -1086,10 +1126,12 @@
be executed.
$ echo test-success.t >> onlytest
$ rt --test-list=onlytest
+ running 1 tests using 1 parallel processes
.
# Ran 1 tests, 0 skipped, 0 failed.
$ echo test-bogus.t >> anothertest
$ rt --test-list=onlytest --test-list=anothertest
+ running 2 tests using 1 parallel processes
s.
Skipped test-bogus.t: Doesn't exist
# Ran 1 tests, 1 skipped, 0 failed.
@@ -1099,6 +1141,7 @@
==================
$ rt --json
+ running 3 tests using 1 parallel processes
--- $TESTTMP/test-failure.t
+++ $TESTTMP/test-failure.t.err
@@ -1154,6 +1197,7 @@
$ rm -r output
$ mkdir output
$ rt --json --outputdir output
+ running 3 tests using 1 parallel processes
--- $TESTTMP/test-failure.t
+++ $TESTTMP/output/test-failure.t.err
@@ -1215,6 +1259,7 @@
$ cp test-failure.t backup
$ echo y | rt --json -i
+ running 3 tests using 1 parallel processes
--- $TESTTMP/test-failure.t
+++ $TESTTMP/test-failure.t.err
@@ -1269,6 +1314,7 @@
> EOF
$ rt test-glob-backslash.t
+ running 1 tests using 1 parallel processes
.
# Ran 1 tests, 0 skipped, 0 failed.
@@ -1284,6 +1330,7 @@
=======================================
$ CUSTOM_TEST_RESULT=basic_test_result "$PYTHON" $TESTDIR/run-tests.py --with-hg=`which hg` "$@" test-success.t test-failure.t
+ running 2 tests using 1 parallel processes
# Ran 2 tests, 0 skipped, 0 failed.
ON_START! <__main__.TestSuite tests=[<__main__.TTest testMethod=test-failure.t>, <__main__.TTest testMethod=test-success.t>]>
@@ -1306,6 +1353,7 @@
> foo
> EOF
$ rt test-hghave.t
+ running 1 tests using 1 parallel processes
.
# Ran 1 tests, 0 skipped, 0 failed.
@@ -1334,6 +1382,7 @@
> # check-code - a style and portability checker for Mercurial
> EOF
$ rt test-runtestdir.t
+ running 1 tests using 1 parallel processes
.
# Ran 1 tests, 0 skipped, 0 failed.
@@ -1351,6 +1400,7 @@
> hello world
> EOF
$ rt test-testdir-path.t
+ running 1 tests using 1 parallel processes
.
# Ran 1 tests, 0 skipped, 0 failed.
@@ -1363,10 +1413,12 @@
> pass
> EOF
$ rt test-very-slow-test.t
+ running 1 tests using 1 parallel processes
s
Skipped test-very-slow-test.t: missing feature: allow slow tests (use --allow-slow-tests)
# Ran 0 tests, 1 skipped, 0 failed.
$ rt $HGTEST_RUN_TESTS_PURE --allow-slow-tests test-very-slow-test.t
+ running 1 tests using 1 parallel processes
.
# Ran 1 tests, 0 skipped, 0 failed.
@@ -1377,6 +1429,7 @@
> pass
> EOF
$ rt nonlocal/test-is-not-here.t
+ running 1 tests using 1 parallel processes
.
# Ran 1 tests, 0 skipped, 0 failed.
@@ -1394,6 +1447,7 @@
$ cp tmp/test-uno.t test-solo.t
$ rt tmp/ test-solo.t tmpp
+ running 5 tests using 1 parallel processes
.....
# Ran 5 tests, 0 skipped, 0 failed.
$ rm -rf tmp tmpp
@@ -1417,6 +1471,7 @@
$ cd ..
$ rt tmp/test-*.t
+ running 2 tests using 1 parallel processes
--- $TESTTMP/anothertests/tmp/test-folder-fail.t
+++ $TESTTMP/anothertests/tmp/test-folder-fail.t.err
@@ -1447,6 +1502,7 @@
> EOF
$ hg ci -m 'bad'
$ rt --known-good-rev=0 test-bisect.t
+ running 1 tests using 1 parallel processes
--- $TESTTMP/anothertests/bisect/test-bisect.t
+++ $TESTTMP/anothertests/bisect/test-bisect.t.err
@@ -1478,6 +1534,7 @@
$ hg commit -Am dependent test-bisect-dependent.t
$ rt --known-good-rev=0 test-bisect-dependent.t
+ running 1 tests using 1 parallel processes
--- $TESTTMP/anothertests/bisect-dependent/test-bisect-dependent.t
+++ $TESTTMP/anothertests/bisect-dependent/test-bisect-dependent.t.err
@@ -1500,6 +1557,7 @@
[2]
$ rt --known-good-rev=0 --bisect-repo=../bisect test-bisect-dependent.t
+ running 1 tests using 1 parallel processes
--- $TESTTMP/anothertests/bisect-dependent/test-bisect-dependent.t
+++ $TESTTMP/anothertests/bisect-dependent/test-bisect-dependent.t.err
@@ -1535,6 +1593,7 @@
> EOF
> done
$ rt -j 2
+ running 5 tests using 2 parallel processes
....
# Ran 5 tests, 0 skipped, 0 failed.
skipped: unknown feature: notarealhghavefeature
@@ -1572,6 +1631,7 @@
> [1]
> EOF
$ rt
+ running 3 tests using 1 parallel processes
.
--- $TESTTMP/anothertests/cases/test-cases-abc.t
+++ $TESTTMP/anothertests/cases/test-cases-abc.t#B.err
@@ -1595,6 +1655,7 @@
--restart works
$ rt --restart
+ running 2 tests using 1 parallel processes
--- $TESTTMP/anothertests/cases/test-cases-abc.t
+++ $TESTTMP/anothertests/cases/test-cases-abc.t#B.err
@@ -1620,6 +1681,7 @@
$ mkdir output
$ mv test-cases-abc.t#B.err output
$ rt --restart --outputdir output
+ running 2 tests using 1 parallel processes
--- $TESTTMP/anothertests/cases/test-cases-abc.t
+++ $TESTTMP/anothertests/cases/output/test-cases-abc.t#B.err
@@ -1657,12 +1719,14 @@
> #endif
> EOF
$ rt test-cases-ab.t
+ running 2 tests using 1 parallel processes
..
# Ran 2 tests, 0 skipped, 0 failed.
Support running a specific test case
$ rt "test-cases-abc.t#B"
+ running 1 tests using 1 parallel processes
--- $TESTTMP/anothertests/cases/test-cases-abc.t
+++ $TESTTMP/anothertests/cases/test-cases-abc.t#B.err
@@ -1686,6 +1750,7 @@
Support running multiple test cases in the same file
$ rt test-cases-abc.t#B test-cases-abc.t#C
+ running 2 tests using 1 parallel processes
--- $TESTTMP/anothertests/cases/test-cases-abc.t
+++ $TESTTMP/anothertests/cases/test-cases-abc.t#B.err
@@ -1709,6 +1774,7 @@
Support ignoring invalid test cases
$ rt test-cases-abc.t#B test-cases-abc.t#D
+ running 1 tests using 1 parallel processes
--- $TESTTMP/anothertests/cases/test-cases-abc.t
+++ $TESTTMP/anothertests/cases/test-cases-abc.t#B.err
@@ -1743,6 +1809,7 @@
simple
$ rt test-cases-advanced-cases.t
+ running 3 tests using 1 parallel processes
--- $TESTTMP/anothertests/cases/test-cases-advanced-cases.t
+++ $TESTTMP/anothertests/cases/test-cases-advanced-cases.t#case-with-dashes.err
@@ -1771,6 +1838,7 @@
[1]
$ rt "test-cases-advanced-cases.t#case-with-dashes"
+ running 1 tests using 1 parallel processes
--- $TESTTMP/anothertests/cases/test-cases-advanced-cases.t
+++ $TESTTMP/anothertests/cases/test-cases-advanced-cases.t#case-with-dashes.err
@@ -1788,6 +1856,7 @@
[1]
$ rt "test-cases-advanced-cases.t#casewith_-.chars"
+ running 1 tests using 1 parallel processes
--- $TESTTMP/anothertests/cases/test-cases-advanced-cases.t
+++ $TESTTMP/anothertests/cases/test-cases-advanced-cases.t#casewith_-.chars.err
@@ -1829,6 +1898,7 @@
> EOF
$ rt test-substitution.t
+ running 1 tests using 1 parallel processes
--- $TESTTMP/anothertests/cases/test-substitution.t
+++ $TESTTMP/anothertests/cases/test-substitution.t.err
@@ -1853,5 +1923,6 @@
> EOF
$ rt --extra-config-opt extensions.purge= test-config-opt.t
+ running 1 tests using 1 parallel processes
.
# Ran 1 tests, 0 skipped, 0 failed.
diff --git a/tests/run-tests.py b/tests/run-tests.py
--- a/tests/run-tests.py
+++ b/tests/run-tests.py
@@ -2795,13 +2795,15 @@
tests = [self._gettest(d, i) for i, d in enumerate(testdescs)]
+ jobs = min(len(tests), self.options.jobs)
+
failed = False
kws = self.options.keywords
if kws is not None and PYTHON3:
kws = kws.encode('utf-8')
suite = TestSuite(self._testdir,
- jobs=self.options.jobs,
+ jobs=jobs,
whitelist=self.options.whitelisted,
blacklist=self.options.blacklist,
retest=self.options.retest,
@@ -2829,6 +2831,9 @@
assert self._installdir
self._installchg()
+ log('running %d tests using %d parallel processes' % (
+ len(tests), jobs))
+
result = runner.run(suite)
if result.failures:
To: indygreg, #hg-reviewers
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list