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

r28962:ad2cd2ef default
r35191:bd8875b6 default
Show More
test-committer.t
110 lines | 2.5 KiB | text/troff | Tads3Lexer
Nicolas Dumazet
tests: unify test-committer
r11801 $ unset HGUSER
$ EMAIL="My Name <myname@example.com>"
$ export EMAIL
$ hg init test
$ cd test
$ touch asdf
$ hg add asdf
Martin Geisler
tests: remove unneeded -d flags...
r12156 $ hg commit -m commit-1
Nicolas Dumazet
tests: unify test-committer
r11801 $ hg tip
Martin Geisler
tests: remove unneeded -d flags...
r12156 changeset: 0:53f268a58230
Nicolas Dumazet
tests: unify test-committer
r11801 tag: tip
user: My Name <myname@example.com>
Martin Geisler
tests: remove unneeded -d flags...
r12156 date: Thu Jan 01 00:00:00 1970 +0000
Nicolas Dumazet
tests: unify test-committer
r11801 summary: commit-1
$ unset EMAIL
$ echo 1234 > asdf
Martin Geisler
tests: remove unneeded -d flags...
r12156 $ hg commit -u "foo@bar.com" -m commit-1
Nicolas Dumazet
tests: unify test-committer
r11801 $ hg tip
Martin Geisler
tests: remove unneeded -d flags...
r12156 changeset: 1:3871b2a9e9bf
Nicolas Dumazet
tests: unify test-committer
r11801 tag: tip
user: foo@bar.com
Martin Geisler
tests: remove unneeded -d flags...
r12156 date: Thu Jan 01 00:00:00 1970 +0000
Nicolas Dumazet
tests: unify test-committer
r11801 summary: commit-1
$ echo "[ui]" >> .hg/hgrc
$ echo "username = foobar <foo@bar.com>" >> .hg/hgrc
$ echo 12 > asdf
Martin Geisler
tests: remove unneeded -d flags...
r12156 $ hg commit -m commit-1
Nicolas Dumazet
tests: unify test-committer
r11801 $ hg tip
Martin Geisler
tests: remove unneeded -d flags...
r12156 changeset: 2:8eeac6695c1c
Nicolas Dumazet
tests: unify test-committer
r11801 tag: tip
user: foobar <foo@bar.com>
Martin Geisler
tests: remove unneeded -d flags...
r12156 date: Thu Jan 01 00:00:00 1970 +0000
Nicolas Dumazet
tests: unify test-committer
r11801 summary: commit-1
$ echo 1 > asdf
Martin Geisler
tests: remove unneeded -d flags...
r12156 $ hg commit -u "foo@bar.com" -m commit-1
Nicolas Dumazet
tests: unify test-committer
r11801 $ hg tip
Martin Geisler
tests: remove unneeded -d flags...
r12156 changeset: 3:957606a725e4
Nicolas Dumazet
tests: unify test-committer
r11801 tag: tip
user: foo@bar.com
Martin Geisler
tests: remove unneeded -d flags...
r12156 date: Thu Jan 01 00:00:00 1970 +0000
Nicolas Dumazet
tests: unify test-committer
r11801 summary: commit-1
$ echo 123 > asdf
$ echo "[ui]" > .hg/hgrc
$ echo "username = " >> .hg/hgrc
Martin Geisler
tests: remove unneeded -d flags...
r12156 $ hg commit -m commit-1
Matt Mackall
tests: fix up config --edit breakage
r20579 abort: no username supplied
timeless
config: use single quotes around command hint...
r28962 (use 'hg config --edit' to set your username)
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
anatoly techtonik
config: allow 'user' in .hgrc ui section (issue3169)
r21955
# test alternate config var
$ echo 1234 > asdf
$ echo "[ui]" > .hg/hgrc
$ echo "user = Foo Bar II <foo2@bar.com>" >> .hg/hgrc
$ hg commit -m commit-1
$ hg tip
changeset: 4:6f24bfb4c617
tag: tip
user: Foo Bar II <foo2@bar.com>
date: Thu Jan 01 00:00:00 1970 +0000
summary: commit-1
Yuya Nishihara
ui: fix crash by non-interactive prompt echo for user name...
r28039 # test prompt username
$ cat > .hg/hgrc <<EOF
> [ui]
> askusername = True
> EOF
$ echo 12345 > asdf
$ hg commit --config ui.interactive=False -m ask
enter a commit username:
no username found, using '[^']*' instead (re)
$ hg rollback -q
$ hg commit --config ui.interactive=True -m ask <<EOF
> Asked User <ask@example.com>
> EOF
enter a commit username: Asked User <ask@example.com>
$ hg tip
changeset: 5:84c91d963b70
tag: tip
user: Asked User <ask@example.com>
date: Thu Jan 01 00:00:00 1970 +0000
summary: ask
anatoly techtonik
config: allow 'user' in .hgrc ui section (issue3169)
r21955 # test no .hg/hgrc (uses generated non-interactive username)
$ echo space > asdf
Nicolas Dumazet
tests: unify test-committer
r11801 $ rm .hg/hgrc
Martin Geisler
tests: remove unneeded -d flags...
r12156 $ hg commit -m commit-1 2>&1
Martin Geisler
ui: lowercase "no username" warning
r16940 no username found, using '[^']*' instead (re)
Nicolas Dumazet
tests: unify test-committer
r11801
anatoly techtonik
config: allow 'user' in .hgrc ui section (issue3169)
r21955 $ echo space2 > asdf
Martin Geisler
tests: remove unneeded -d flags...
r12156 $ hg commit -u ' ' -m commit-1
Nicolas Dumazet
tests: unify test-committer
r11801 transaction abort!
rollback completed
abort: empty username!
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Mads Kiilerich
tests: add missing trailing 'cd ..'...
r16913
anatoly techtonik
config: allow 'user' in .hgrc ui section (issue3169)
r21955 # don't add tests here, previous test is unstable
Mads Kiilerich
tests: add missing trailing 'cd ..'...
r16913 $ cd ..