##// 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:

r28318:564a354f default
r35191:bd8875b6 default
Show More
test-double-merge.t
66 lines | 1.8 KiB | text/troff | Tads3Lexer
/ tests / test-double-merge.t
Pradeepkumar Gayam
tests: unify test-double-merge
r11973 $ hg init repo
$ cd repo
$ echo line 1 > foo
Martin Geisler
tests: remove unneeded -d flags...
r12156 $ hg ci -qAm 'add foo'
Pradeepkumar Gayam
tests: unify test-double-merge
r11973
copy foo to bar and change both files
$ hg cp foo bar
$ echo line 2-1 >> foo
$ echo line 2-2 >> bar
Martin Geisler
tests: remove unneeded -d flags...
r12156 $ hg ci -m 'cp foo bar; change both'
Pradeepkumar Gayam
tests: unify test-double-merge
r11973
in another branch, change foo in a way that doesn't conflict with
the other changes
$ hg up -qC 0
$ echo line 0 > foo
$ hg cat foo >> foo
Martin Geisler
tests: remove unneeded -d flags...
r12156 $ hg ci -m 'change foo'
Pradeepkumar Gayam
tests: unify test-double-merge
r11973 created new head
we get conflicts that shouldn't be there
$ hg merge -P
Martin Geisler
tests: remove unneeded -d flags...
r12156 changeset: 1:484bf6903104
Pradeepkumar Gayam
tests: unify test-double-merge
r11973 user: test
Martin Geisler
tests: remove unneeded -d flags...
r12156 date: Thu Jan 01 00:00:00 1970 +0000
Pradeepkumar Gayam
tests: unify test-double-merge
r11973 summary: cp foo bar; change both
$ hg merge --debug
searching for copies back to rev 1
unmatched files in other:
bar
Thomas Arendsen Hein
merge: show renamed on one and deleted on the other side in debug output
r16795 all copies found (* = to merge, ! = divergent, % = renamed and deleted):
Siddharth Agarwal
copies: make debug messages more sensible...
r18135 src: 'foo' -> dst: 'bar' *
Pradeepkumar Gayam
tests: unify test-double-merge
r11973 checking for directory renames
resolving manifests
Siddharth Agarwal
manifestmerge: pass in branchmerge and force separately...
r18605 branchmerge: True, force: False, partial: False
Martin Geisler
merge: make debug output easier to read...
r15625 ancestor: e6dc8efe11cc, local: 6a0df1dad128+, remote: 484bf6903104
Mads Kiilerich
merge: change debug logging - test output changes but no real changes...
r21391 preserving foo for resolve of bar
preserving foo for resolve of foo
Matt Harbison
tests: flag Windows specific lines about background closing as optional
r28318 starting 4 threads for background file closing (?)
Siddharth Agarwal
merge.mergestate: perform all premerges before any merges (BC)...
r26618 bar: remote copied from foo -> m (premerge)
Siddharth Agarwal
filemerge: add debug output for whether this is a change/delete conflict...
r27161 picked tool ':merge' for bar (binary False symlink False changedelete False)
Pradeepkumar Gayam
tests: unify test-double-merge
r11973 merging foo and bar to bar
Martin Geisler
tests: remove unneeded -d flags...
r12156 my bar@6a0df1dad128+ other bar@484bf6903104 ancestor foo@e6dc8efe11cc
Pradeepkumar Gayam
tests: unify test-double-merge
r11973 premerge successful
Siddharth Agarwal
merge.mergestate: perform all premerges before any merges (BC)...
r26618 foo: versions differ -> m (premerge)
Siddharth Agarwal
filemerge: add debug output for whether this is a change/delete conflict...
r27161 picked tool ':merge' for foo (binary False symlink False changedelete False)
Pradeepkumar Gayam
tests: unify test-double-merge
r11973 merging foo
Martin Geisler
tests: remove unneeded -d flags...
r12156 my foo@6a0df1dad128+ other foo@484bf6903104 ancestor foo@e6dc8efe11cc
Pradeepkumar Gayam
tests: unify test-double-merge
r11973 premerge successful
0 files updated, 2 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
contents of foo
$ cat foo
line 0
line 1
line 2-1
contents of bar
$ cat bar
line 0
line 1
line 2-2
Mads Kiilerich
tests: add missing trailing 'cd ..'...
r16913
$ cd ..