##// END OF EJS Templates
run-tests: mechanism to report exceptions during test execution...
run-tests: mechanism to report exceptions during test execution Sometimes when running tests you introduce a ton of exceptions. The most extreme example of this is running Mercurial with Python 3, which currently spews thousands of exceptions when running the test harness. This commit adds an opt-in feature to run-tests.py to aggregate exceptions encountered by `hg` when running tests. When --exceptions is used, the test harness enables the "logexceptions" extension in the test environment. This extension wraps the Mercurial function to handle exceptions and writes information about the exception to a random filename in a directory defined by the test harness via an environment variable. At the end of the test harness, these files are parsed, aggregated, and a list of all unique Mercurial frames triggering exceptions is printed in order of frequency. This feature is intended to aid Python 3 development. I've only really tested it on Python 3. There is no shortage of improvements that could be made. e.g. we could write a separate file containing the exception report - maybe even an HTML report. We also don't capture which tests demonstrate the exceptions, so there's no turnkey way to test whether a code change made an exception disappear. Perfect is the enemy of good. I think the current patch is useful enough to land. Whoever uses it can send patches to imprve its usefulness. Differential Revision: https://phab.mercurial-scm.org/D1477

File last commit:

r34027:626a28f3 default
r35191:bd8875b6 default
Show More
test-debugbundle.t
76 lines | 3.7 KiB | text/troff | Tads3Lexer
/ tests / test-debugbundle.t
Peter Arrenbrecht
commands: add debugbundle command...
r13724
Create a test repository:
$ hg init repo
$ cd repo
$ touch a ; hg add a ; hg ci -ma
$ touch b ; hg add b ; hg ci -mb
$ touch c ; hg add c ; hg ci -mc
Pierre-Yves David
test: enforce v1 in 'test-debugbundle.t'...
r26864 $ hg bundle --base 0 --rev tip bundle.hg -v --type v1
Peter Arrenbrecht
commands: add debugbundle command...
r13724 2 changesets found
Mads Kiilerich
bundle: when verbose, show what takes up the space in the generated bundle...
r23748 uncompressed size of bundle content:
332 (changelog)
282 (manifests)
Mike Hommey
mdiff: don't emit a diff header for empty trivial deltas...
r27711 93 b
93 c
Mike Hommey
debugbundle: add tests for debugbundle output with bundle2
r29062 $ hg bundle --base 0 --rev tip bundle2.hg -v --type none-v2
2 changesets found
uncompressed size of bundle content:
Pierre-Yves David
changegroup: skip delta when the underlying revlog do not use them...
r30211 344 (changelog)
Mike Hommey
debugbundle: add tests for debugbundle output with bundle2
r29062 322 (manifests)
113 b
113 c
Peter Arrenbrecht
commands: add debugbundle command...
r13724
Terse output:
$ hg debugbundle bundle.hg
0e067c57feba1a5694ca4844f05588bb1bf82342
991a3460af53952d10ec8a295d3d2cc2e5fa9690
Mike Hommey
debugbundle: add tests for debugbundle output with bundle2
r29062 Terse output:
$ hg debugbundle bundle2.hg
Stream params: {}
Augie Fackler
debugcommands: stabilize output of debugbundle by having a custom repr...
r34027 changegroup -- {nbchanges: 2, version: 02}
Mike Hommey
debugbundle: add tests for debugbundle output with bundle2
r29062 0e067c57feba1a5694ca4844f05588bb1bf82342
991a3460af53952d10ec8a295d3d2cc2e5fa9690
Peter Arrenbrecht
commands: add debugbundle command...
r13724 Verbose output:
$ hg debugbundle --all bundle.hg
Benoit Boissinot
bundler: make parsechunk return the base revision of the delta
r14141 format: id, p1, p2, cset, delta base, len(delta)
Peter Arrenbrecht
commands: add debugbundle command...
r13724
changelog
Benoit Boissinot
bundler: make parsechunk return the base revision of the delta
r14141 0e067c57feba1a5694ca4844f05588bb1bf82342 3903775176ed42b1458a6281db4a0ccf4d9f287a 0000000000000000000000000000000000000000 0e067c57feba1a5694ca4844f05588bb1bf82342 3903775176ed42b1458a6281db4a0ccf4d9f287a 80
991a3460af53952d10ec8a295d3d2cc2e5fa9690 0e067c57feba1a5694ca4844f05588bb1bf82342 0000000000000000000000000000000000000000 991a3460af53952d10ec8a295d3d2cc2e5fa9690 0e067c57feba1a5694ca4844f05588bb1bf82342 80
Peter Arrenbrecht
commands: add debugbundle command...
r13724
manifest
Benoit Boissinot
bundler: make parsechunk return the base revision of the delta
r14141 686dbf0aeca417636fa26a9121c681eabbb15a20 8515d4bfda768e04af4c13a69a72e28c7effbea7 0000000000000000000000000000000000000000 0e067c57feba1a5694ca4844f05588bb1bf82342 8515d4bfda768e04af4c13a69a72e28c7effbea7 55
ae25a31b30b3490a981e7b96a3238cc69583fda1 686dbf0aeca417636fa26a9121c681eabbb15a20 0000000000000000000000000000000000000000 991a3460af53952d10ec8a295d3d2cc2e5fa9690 686dbf0aeca417636fa26a9121c681eabbb15a20 55
Peter Arrenbrecht
commands: add debugbundle command...
r13724
b
Mike Hommey
mdiff: don't emit a diff header for empty trivial deltas...
r27711 b80de5d138758541c5f05265ad144ab9fa86d1db 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0e067c57feba1a5694ca4844f05588bb1bf82342 0000000000000000000000000000000000000000 0
Peter Arrenbrecht
commands: add debugbundle command...
r13724
c
Mike Hommey
mdiff: don't emit a diff header for empty trivial deltas...
r27711 b80de5d138758541c5f05265ad144ab9fa86d1db 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 991a3460af53952d10ec8a295d3d2cc2e5fa9690 0000000000000000000000000000000000000000 0
Peter Arrenbrecht
commands: add debugbundle command...
r13724
Mike Hommey
debugbundle: add tests for debugbundle output with bundle2
r29062 $ hg debugbundle --all bundle2.hg
Stream params: {}
Augie Fackler
debugcommands: stabilize output of debugbundle by having a custom repr...
r34027 changegroup -- {nbchanges: 2, version: 02}
Mike Hommey
debugbundle: add tests for debugbundle output with bundle2
r29062 format: id, p1, p2, cset, delta base, len(delta)
changelog
Pierre-Yves David
changegroup: skip delta when the underlying revlog do not use them...
r30211 0e067c57feba1a5694ca4844f05588bb1bf82342 3903775176ed42b1458a6281db4a0ccf4d9f287a 0000000000000000000000000000000000000000 0e067c57feba1a5694ca4844f05588bb1bf82342 0000000000000000000000000000000000000000 66
991a3460af53952d10ec8a295d3d2cc2e5fa9690 0e067c57feba1a5694ca4844f05588bb1bf82342 0000000000000000000000000000000000000000 991a3460af53952d10ec8a295d3d2cc2e5fa9690 0000000000000000000000000000000000000000 66
Mike Hommey
debugbundle: add tests for debugbundle output with bundle2
r29062
manifest
686dbf0aeca417636fa26a9121c681eabbb15a20 8515d4bfda768e04af4c13a69a72e28c7effbea7 0000000000000000000000000000000000000000 0e067c57feba1a5694ca4844f05588bb1bf82342 8515d4bfda768e04af4c13a69a72e28c7effbea7 55
ae25a31b30b3490a981e7b96a3238cc69583fda1 686dbf0aeca417636fa26a9121c681eabbb15a20 0000000000000000000000000000000000000000 991a3460af53952d10ec8a295d3d2cc2e5fa9690 686dbf0aeca417636fa26a9121c681eabbb15a20 55
b
b80de5d138758541c5f05265ad144ab9fa86d1db 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0e067c57feba1a5694ca4844f05588bb1bf82342 0000000000000000000000000000000000000000 0
c
b80de5d138758541c5f05265ad144ab9fa86d1db 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 991a3460af53952d10ec8a295d3d2cc2e5fa9690 0000000000000000000000000000000000000000 0
Mads Kiilerich
tests: add missing trailing 'cd ..'...
r16913 $ cd ..