Mercurial > hg
annotate tests/silenttestrunner.py @ 31971:73e9328e5307
obsolescence: add test case D-3 for obsolescence markers exchange
About 3 years ago, in August 2014, the logic to select what markers to select on
push was ported from the evolve extension to Mercurial core. However, for some
unclear reasons, the tests for that logic were not ported alongside.
I realised it a couple of weeks ago while working on another push related issue.
I've made a clean up pass on the tests and they are now ready to integrate the
core test suite. This series of changesets do not change any logic. I just adds
test for logic that has been around for about 10 versions of Mercurial.
They are a patch for each test case. It makes it easier to review and postpone
one with documentation issues without rejecting the wholes series.
This patch introduce case D3: missing prune target (prune not in "pushed set")
Each test case comes it in own test file. It help parallelism and does not
introduce a significant overhead from having a single unified giant test file.
Here are timing to support this claim.
# Multiple test files version:
# run-tests.py --local -j 1 test-exchange-*.t
53.40s user 6.82s system 85% cpu 1:10.76 total
52.79s user 6.97s system 85% cpu 1:09.97 total
52.94s user 6.82s system 85% cpu 1:09.69 total
# Single test file version:
# run-tests.py --local -j 1 test-exchange-obsmarkers.t
52.97s user 6.85s system 85% cpu 1:10.10 total
52.64s user 6.79s system 85% cpu 1:09.63 total
53.70s user 7.00s system 85% cpu 1:11.17 total
author | Pierre-Yves David <pierre-yves.david@ens-lyon.org> |
---|---|
date | Mon, 10 Apr 2017 16:54:43 +0200 |
parents | 403b0a7ab410 |
children | 2372284d9457 |
rev | line source |
---|---|
28730
73437077753c
py3: use print_function in silenttestrunner.py
Robert Stanca <robert.stanca7@gmail.com>
parents:
28729
diff
changeset
|
1 from __future__ import absolute_import, print_function |
28736
403b0a7ab410
tests: lexicographical imports in silenttestrunner.py
Robert Stanca <robert.stanca7@gmail.com>
parents:
28730
diff
changeset
|
2 import os |
403b0a7ab410
tests: lexicographical imports in silenttestrunner.py
Robert Stanca <robert.stanca7@gmail.com>
parents:
28730
diff
changeset
|
3 import sys |
28729
fc2268b9a07c
py3: use absolute_import in silenttestrunner.py
Robert Stanca <robert.stanca7@gmail.com>
parents:
23308
diff
changeset
|
4 import unittest |
18665
2cbfb8c497ee
tests: add a test runner utility that prints nothing when all tests pass
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
5 |
2cbfb8c497ee
tests: add a test runner utility that prints nothing when all tests pass
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
6 def main(modulename): |
2cbfb8c497ee
tests: add a test runner utility that prints nothing when all tests pass
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
7 '''run the tests found in module, printing nothing when all tests pass''' |
2cbfb8c497ee
tests: add a test runner utility that prints nothing when all tests pass
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
8 module = sys.modules[modulename] |
2cbfb8c497ee
tests: add a test runner utility that prints nothing when all tests pass
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
9 suite = unittest.defaultTestLoader.loadTestsFromModule(module) |
2cbfb8c497ee
tests: add a test runner utility that prints nothing when all tests pass
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
10 results = unittest.TestResult() |
2cbfb8c497ee
tests: add a test runner utility that prints nothing when all tests pass
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
11 suite.run(results) |
2cbfb8c497ee
tests: add a test runner utility that prints nothing when all tests pass
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
12 if results.errors or results.failures: |
2cbfb8c497ee
tests: add a test runner utility that prints nothing when all tests pass
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
13 for tc, exc in results.errors: |
28730
73437077753c
py3: use print_function in silenttestrunner.py
Robert Stanca <robert.stanca7@gmail.com>
parents:
28729
diff
changeset
|
14 print('ERROR:', tc) |
73437077753c
py3: use print_function in silenttestrunner.py
Robert Stanca <robert.stanca7@gmail.com>
parents:
28729
diff
changeset
|
15 print() |
18665
2cbfb8c497ee
tests: add a test runner utility that prints nothing when all tests pass
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
16 sys.stdout.write(exc) |
2cbfb8c497ee
tests: add a test runner utility that prints nothing when all tests pass
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
17 for tc, exc in results.failures: |
28730
73437077753c
py3: use print_function in silenttestrunner.py
Robert Stanca <robert.stanca7@gmail.com>
parents:
28729
diff
changeset
|
18 print('FAIL:', tc) |
73437077753c
py3: use print_function in silenttestrunner.py
Robert Stanca <robert.stanca7@gmail.com>
parents:
28729
diff
changeset
|
19 print() |
18665
2cbfb8c497ee
tests: add a test runner utility that prints nothing when all tests pass
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
20 sys.stdout.write(exc) |
2cbfb8c497ee
tests: add a test runner utility that prints nothing when all tests pass
Idan Kamara <idankk86@gmail.com>
parents:
diff
changeset
|
21 sys.exit(1) |
23308
dadcd40b62d8
silenttestrunner: add environment variable to make tests noisy again
Augie Fackler <augie@google.com>
parents:
18665
diff
changeset
|
22 |
dadcd40b62d8
silenttestrunner: add environment variable to make tests noisy again
Augie Fackler <augie@google.com>
parents:
18665
diff
changeset
|
23 if os.environ.get('SILENT_BE_NOISY'): |
dadcd40b62d8
silenttestrunner: add environment variable to make tests noisy again
Augie Fackler <augie@google.com>
parents:
18665
diff
changeset
|
24 main = unittest.main |