##// END OF EJS Templates
debugobsolete: also issue the "new obsmarkers" messsage...
debugobsolete: also issue the "new obsmarkers" messsage We are going to improve the way this message is issued in the core codebase. This will make it appears for `hg debugobsolete` too. Since this seems like a good idea, we make the output change in a previous changesets to clarify the next changeset.

File last commit:

r41028:1de33643 default
r43163:34a46d48 default
Show More
test-devel-warnings.t
387 lines | 16.7 KiB | text/troff | Tads3Lexer
/ tests / test-devel-warnings.t
Pierre-Yves David
devel: move the lock-checking code into core...
r24386
$ cat << EOF > buggylocking.py
Pierre-Yves David
test: update the docstring of 'test-devel-warnings.t' extension...
r27270 > """A small extension that tests our developer warnings
Pierre-Yves David
devel: move the lock-checking code into core...
r24386 > """
>
Yuya Nishihara
error: add hint to ProgrammingError...
r32340 > from mercurial import error, registrar, repair, util
Pierre-Yves David
devel: move the lock-checking code into core...
r24386 >
> cmdtable = {}
Yuya Nishihara
registrar: move cmdutil.command to registrar module (API)...
r32337 > command = registrar.command(cmdtable)
Pierre-Yves David
devel: move the lock-checking code into core...
r24386 >
Pulkit Goyal
py3: make sure the commands name are bytes in test-devel-warnings.t
r32971 > @command(b'buggylocking', [], '')
Pierre-Yves David
devel: move the lock-checking code into core...
r24386 > def buggylocking(ui, repo):
> lo = repo.lock()
> wl = repo.wlock()
Matt Mackall
tests: avoid deprecation warning
r24392 > wl.release()
> lo.release()
Pierre-Yves David
wlock: only issue devel warning when actually acquiring the lock...
r24744 >
Pulkit Goyal
py3: make sure the commands name are bytes in test-devel-warnings.t
r32971 > @command(b'buggytransaction', [], '')
Pierre-Yves David
test: extract develwarn transaction testing in its own command...
r29185 > def buggylocking(ui, repo):
Augie Fackler
tests: add tons of b prefixes in test-devel-warnings.t...
r36142 > tr = repo.transaction(b'buggy')
Pierre-Yves David
test: extract develwarn transaction testing in its own command...
r29185 > # make sure we rollback the transaction as we don't want to rely on the__del__
> tr.release()
>
Pulkit Goyal
py3: make sure the commands name are bytes in test-devel-warnings.t
r32971 > @command(b'properlocking', [], '')
Pierre-Yves David
wlock: only issue devel warning when actually acquiring the lock...
r24744 > def properlocking(ui, repo):
> """check that reentrance is fine"""
> wl = repo.wlock()
> lo = repo.lock()
Augie Fackler
tests: add tons of b prefixes in test-devel-warnings.t...
r36142 > tr = repo.transaction(b'proper')
> tr2 = repo.transaction(b'proper')
Pierre-Yves David
wlock: only issue devel warning when actually acquiring the lock...
r24744 > lo2 = repo.lock()
> wl2 = repo.wlock()
> wl2.release()
> lo2.release()
> tr2.close()
> tr.close()
> lo.release()
> wl.release()
Pierre-Yves David
wlock: do not warn for non-wait locking...
r24750 >
Pulkit Goyal
py3: make sure the commands name are bytes in test-devel-warnings.t
r32971 > @command(b'nowaitlocking', [], '')
Pierre-Yves David
wlock: do not warn for non-wait locking...
r24750 > def nowaitlocking(ui, repo):
> lo = repo.lock()
> wl = repo.wlock(wait=False)
> wl.release()
> lo.release()
Pierre-Yves David
repair: forbid strip from inside a transaction...
r25300 >
Boris Feld
repovfs: add a ward to check if locks are properly taken...
r33436 > @command(b'no-wlock-write', [], '')
> def nowlockwrite(ui, repo):
Augie Fackler
tests: add tons of b prefixes in test-devel-warnings.t...
r36142 > with repo.vfs(b'branch', b'a'):
Boris Feld
repovfs: add a ward to check if locks are properly taken...
r33436 > pass
>
Boris Feld
reposvfs: add a ward to check if locks are properly taken...
r33437 > @command(b'no-lock-write', [], '')
> def nolockwrite(ui, repo):
Augie Fackler
tests: add tons of b prefixes in test-devel-warnings.t...
r36142 > with repo.svfs(b'fncache', b'a'):
Boris Feld
reposvfs: add a ward to check if locks are properly taken...
r33437 > pass
>
Pulkit Goyal
py3: make sure the commands name are bytes in test-devel-warnings.t
r32971 > @command(b'stripintr', [], '')
Pierre-Yves David
repair: forbid strip from inside a transaction...
r25300 > def stripintr(ui, repo):
> lo = repo.lock()
Augie Fackler
tests: add tons of b prefixes in test-devel-warnings.t...
r36142 > tr = repo.transaction(b'foobar')
Pierre-Yves David
repair: forbid strip from inside a transaction...
r25300 > try:
Augie Fackler
tests: add tons of b prefixes in test-devel-warnings.t...
r36142 > repair.strip(repo.ui, repo, [repo[b'.'].node()])
Pierre-Yves David
repair: forbid strip from inside a transaction...
r25300 > finally:
> lo.release()
Pulkit Goyal
py3: make sure the commands name are bytes in test-devel-warnings.t
r32971 > @command(b'oldanddeprecated', [], '')
Pierre-Yves David
ui: add a 'deprecwarn' helper to issue deprecation warnings...
r27275 > def oldanddeprecated(ui, repo):
> """test deprecation warning API"""
> def foobar(ui):
Augie Fackler
tests: add tons of b prefixes in test-devel-warnings.t...
r36142 > ui.deprecwarn(b'foorbar is deprecated, go shopping', b'42.1337')
Pierre-Yves David
ui: add a 'deprecwarn' helper to issue deprecation warnings...
r27275 > foobar(ui)
Pulkit Goyal
py3: make sure the commands name are bytes in test-devel-warnings.t
r32971 > @command(b'nouiwarning', [], '')
Pierre-Yves David
util: add a way to issue deprecation warning without a UI object...
r31950 > def nouiwarning(ui, repo):
Augie Fackler
tests: add tons of b prefixes in test-devel-warnings.t...
r36142 > util.nouideprecwarn(b'this is a test', b'13.37')
Pulkit Goyal
py3: make sure the commands name are bytes in test-devel-warnings.t
r32971 > @command(b'programmingerror', [], '')
Yuya Nishihara
error: add hint to ProgrammingError...
r32340 > def programmingerror(ui, repo):
Augie Fackler
tests: add tons of b prefixes in test-devel-warnings.t...
r36142 > raise error.ProgrammingError(b'something went wrong', hint=b'try again')
Pierre-Yves David
devel: move the lock-checking code into core...
r24386 > EOF
$ cat << EOF >> $HGRCPATH
> [extensions]
> buggylocking=$TESTTMP/buggylocking.py
timeless
ui: log devel warnings
r28498 > mock=$TESTDIR/mockblackbox.py
> blackbox=
Pierre-Yves David
devel: move the lock-checking code into core...
r24386 > [devel]
Pierre-Yves David
devel: rename 'all' to 'all-warnings' (BC)...
r25290 > all-warnings=1
Yuya Nishihara
tests: filter out uninteresting log events...
r41028 > [blackbox]
> track = command, commandexception, commandfinish, develwarn
Pierre-Yves David
devel: move the lock-checking code into core...
r24386 > EOF
$ hg init lock-checker
$ cd lock-checker
$ hg buggylocking
timeless
tests: relax test-devel-warnings to reduce false positives...
r28016 devel-warn: "wlock" acquired after "lock" at: $TESTTMP/buggylocking.py:* (buggylocking) (glob)
Pierre-Yves David
devel: move the lock-checking code into core...
r24386 $ cat << EOF >> $HGRCPATH
> [devel]
> all=0
> check-locks=1
> EOF
$ hg buggylocking
timeless
tests: relax test-devel-warnings to reduce false positives...
r28016 devel-warn: "wlock" acquired after "lock" at: $TESTTMP/buggylocking.py:* (buggylocking) (glob)
Saurabh Singh
test-devel-warnings: make the test compatible with chg...
r34465 #if no-chg
Pierre-Yves David
devel: move the lock-checking code into core...
r24386 $ hg buggylocking --traceback
Pierre-Yves David
devel-warn: add a prefix to all messages ("devel-warn: ")...
r24755 devel-warn: "wlock" acquired after "lock" at:
Gregory Szorc
tests: make hg frame optional...
r35669 */hg:* in <module> (glob) (?)
Pierre-Yves David
devel: move the lock-checking code into core...
r24386 */mercurial/dispatch.py:* in run (glob)
*/mercurial/dispatch.py:* in dispatch (glob)
*/mercurial/dispatch.py:* in _runcatch (glob)
Yuya Nishihara
dispatch: mark callcatch() as a private function
r32040 */mercurial/dispatch.py:* in _callcatch (glob)
Jun Wu
dispatch: move part of callcatch to scmutil...
r30520 */mercurial/scmutil.py* in callcatch (glob)
Jun Wu
dispatch: split global error handling out so it can be reused...
r29761 */mercurial/dispatch.py:* in _runcatchfunc (glob)
Pierre-Yves David
devel: move the lock-checking code into core...
r24386 */mercurial/dispatch.py:* in _dispatch (glob)
*/mercurial/dispatch.py:* in runcommand (glob)
*/mercurial/dispatch.py:* in _runcommand (glob)
*/mercurial/dispatch.py:* in <lambda> (glob)
*/mercurial/util.py:* in check (glob)
$TESTTMP/buggylocking.py:* in buggylocking (glob)
Saurabh Singh
test-devel-warnings: make the test compatible with chg...
r34465 #else
$ hg buggylocking --traceback
devel-warn: "wlock" acquired after "lock" at:
Gregory Szorc
tests: make hg frame optional...
r35669 */hg:* in <module> (glob) (?)
Saurabh Singh
test-devel-warnings: make the test compatible with chg...
r34465 */mercurial/dispatch.py:* in run (glob)
*/mercurial/dispatch.py:* in dispatch (glob)
*/mercurial/dispatch.py:* in _runcatch (glob)
*/mercurial/dispatch.py:* in _callcatch (glob)
*/mercurial/scmutil.py:* in callcatch (glob)
*/mercurial/dispatch.py:* in _runcatchfunc (glob)
*/mercurial/dispatch.py:* in _dispatch (glob)
*/mercurial/dispatch.py:* in runcommand (glob)
*/mercurial/dispatch.py:* in _runcommand (glob)
*/mercurial/dispatch.py:* in <lambda> (glob)
*/mercurial/util.py:* in check (glob)
*/mercurial/commands.py:* in serve (glob)
*/mercurial/server.py:* in runservice (glob)
*/mercurial/commandserver.py:* in run (glob)
*/mercurial/commandserver.py:* in _mainloop (glob)
*/mercurial/commandserver.py:* in _runworker (glob)
*/mercurial/commandserver.py:* in _serverequest (glob)
*/mercurial/commandserver.py:* in serve (glob)
*/mercurial/commandserver.py:* in serveone (glob)
*/mercurial/chgserver.py:* in runcommand (glob)
*/mercurial/commandserver.py:* in runcommand (glob)
*/mercurial/dispatch.py:* in dispatch (glob)
*/mercurial/dispatch.py:* in _runcatch (glob)
*/mercurial/dispatch.py:* in _callcatch (glob)
*/mercurial/scmutil.py:* in callcatch (glob)
*/mercurial/dispatch.py:* in _runcatchfunc (glob)
*/mercurial/dispatch.py:* in _dispatch (glob)
*/mercurial/dispatch.py:* in runcommand (glob)
*/mercurial/dispatch.py:* in _runcommand (glob)
*/mercurial/dispatch.py:* in <lambda> (glob)
*/mercurial/util.py:* in check (glob)
$TESTTMP/buggylocking.py:* in buggylocking (glob)
#endif
Pierre-Yves David
wlock: only issue devel warning when actually acquiring the lock...
r24744 $ hg properlocking
Pierre-Yves David
wlock: do not warn for non-wait locking...
r24750 $ hg nowaitlocking
Pierre-Yves David
repair: forbid strip from inside a transaction...
r25300
Boris Feld
repovfs: add a ward to check if locks are properly taken...
r33436 Writing without lock
$ hg no-wlock-write
devel-warn: write with no wlock: "branch" at: $TESTTMP/buggylocking.py:* (nowlockwrite) (glob)
Boris Feld
reposvfs: add a ward to check if locks are properly taken...
r33437 $ hg no-lock-write
devel-warn: write with no lock: "fncache" at: $TESTTMP/buggylocking.py:* (nolockwrite) (glob)
test: add a small comment to explain a section of test-devel-warning...
r33251 Stripping from a transaction
Pierre-Yves David
repair: forbid strip from inside a transaction...
r25300 $ echo a > a
$ hg add a
$ hg commit -m a
Jun Wu
repair: use ProgrammingError
r31645 $ hg stripintr 2>&1 | egrep -v '^(\*\*| )'
Traceback (most recent call last):
Boris Feld
pypy: fix failing test-devel-warnings.t with Pypy5.6.0...
r33610 *ProgrammingError: cannot strip from inside a transaction (glob)
Pierre-Yves David
repair: forbid strip from inside a transaction...
r25300
Pierre-Yves David
ui: add a 'deprecwarn' helper to issue deprecation warnings...
r27275 $ hg oldanddeprecated
devel-warn: foorbar is deprecated, go shopping
timeless
tests: relax test-devel-warnings to reduce false positives...
r28016 (compatibility will be dropped after Mercurial-42.1337, update your code.) at: $TESTTMP/buggylocking.py:* (oldanddeprecated) (glob)
Pierre-Yves David
devel-warn: issue a warning for old style revsets...
r25630
Saurabh Singh
test-devel-warnings: make the test compatible with chg...
r34465 #if no-chg
Pierre-Yves David
ui: add a 'deprecwarn' helper to issue deprecation warnings...
r27275 $ hg oldanddeprecated --traceback
devel-warn: foorbar is deprecated, go shopping
(compatibility will be dropped after Mercurial-42.1337, update your code.) at:
Gregory Szorc
tests: make hg frame optional...
r35669 */hg:* in <module> (glob) (?)
Pierre-Yves David
ui: add a 'deprecwarn' helper to issue deprecation warnings...
r27275 */mercurial/dispatch.py:* in run (glob)
*/mercurial/dispatch.py:* in dispatch (glob)
*/mercurial/dispatch.py:* in _runcatch (glob)
Yuya Nishihara
dispatch: mark callcatch() as a private function
r32040 */mercurial/dispatch.py:* in _callcatch (glob)
Jun Wu
dispatch: move part of callcatch to scmutil...
r30520 */mercurial/scmutil.py* in callcatch (glob)
Jun Wu
dispatch: split global error handling out so it can be reused...
r29761 */mercurial/dispatch.py:* in _runcatchfunc (glob)
Pierre-Yves David
ui: add a 'deprecwarn' helper to issue deprecation warnings...
r27275 */mercurial/dispatch.py:* in _dispatch (glob)
*/mercurial/dispatch.py:* in runcommand (glob)
*/mercurial/dispatch.py:* in _runcommand (glob)
*/mercurial/dispatch.py:* in <lambda> (glob)
*/mercurial/util.py:* in check (glob)
$TESTTMP/buggylocking.py:* in oldanddeprecated (glob)
Saurabh Singh
test-devel-warnings: make the test compatible with chg...
r34465 #else
$ hg oldanddeprecated --traceback
devel-warn: foorbar is deprecated, go shopping
(compatibility will be dropped after Mercurial-42.1337, update your code.) at:
*/hg:* in <module> (glob)
*/mercurial/dispatch.py:* in run (glob)
*/mercurial/dispatch.py:* in dispatch (glob)
*/mercurial/dispatch.py:* in _runcatch (glob)
*/mercurial/dispatch.py:* in _callcatch (glob)
*/mercurial/scmutil.py:* in callcatch (glob)
*/mercurial/dispatch.py:* in _runcatchfunc (glob)
*/mercurial/dispatch.py:* in _dispatch (glob)
*/mercurial/dispatch.py:* in runcommand (glob)
*/mercurial/dispatch.py:* in _runcommand (glob)
*/mercurial/dispatch.py:* in <lambda> (glob)
*/mercurial/util.py:* in check (glob)
*/mercurial/commands.py:* in serve (glob)
*/mercurial/server.py:* in runservice (glob)
*/mercurial/commandserver.py:* in run (glob)
*/mercurial/commandserver.py:* in _mainloop (glob)
*/mercurial/commandserver.py:* in _runworker (glob)
*/mercurial/commandserver.py:* in _serverequest (glob)
*/mercurial/commandserver.py:* in serve (glob)
*/mercurial/commandserver.py:* in serveone (glob)
*/mercurial/chgserver.py:* in runcommand (glob)
*/mercurial/commandserver.py:* in runcommand (glob)
*/mercurial/dispatch.py:* in dispatch (glob)
*/mercurial/dispatch.py:* in _runcatch (glob)
*/mercurial/dispatch.py:* in _callcatch (glob)
*/mercurial/scmutil.py:* in callcatch (glob)
*/mercurial/dispatch.py:* in _runcatchfunc (glob)
*/mercurial/dispatch.py:* in _dispatch (glob)
*/mercurial/dispatch.py:* in runcommand (glob)
*/mercurial/dispatch.py:* in _runcommand (glob)
*/mercurial/dispatch.py:* in <lambda> (glob)
*/mercurial/util.py:* in check (glob)
$TESTTMP/buggylocking.py:* in oldanddeprecated (glob)
#endif
#if no-chg
Yuya Nishihara
revset: stop supporting predicate that returns plain list (API)...
r31809 $ hg blackbox -l 7
timeless
ui: log devel warnings
r28498 1970/01/01 00:00:00 bob @cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b (5000)> oldanddeprecated
1970/01/01 00:00:00 bob @cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b (5000)> devel-warn: foorbar is deprecated, go shopping
(compatibility will be dropped after Mercurial-42.1337, update your code.) at: $TESTTMP/buggylocking.py:* (oldanddeprecated) (glob)
1970/01/01 00:00:00 bob @cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b (5000)> oldanddeprecated exited 0 after * seconds (glob)
1970/01/01 00:00:00 bob @cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b (5000)> oldanddeprecated --traceback
1970/01/01 00:00:00 bob @cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b (5000)> devel-warn: foorbar is deprecated, go shopping
(compatibility will be dropped after Mercurial-42.1337, update your code.) at:
Gregory Szorc
tests: make hg frame optional...
r35669 */hg:* in <module> (glob) (?)
timeless
ui: log devel warnings
r28498 */mercurial/dispatch.py:* in run (glob)
*/mercurial/dispatch.py:* in dispatch (glob)
*/mercurial/dispatch.py:* in _runcatch (glob)
Yuya Nishihara
dispatch: mark callcatch() as a private function
r32040 */mercurial/dispatch.py:* in _callcatch (glob)
Jun Wu
dispatch: move part of callcatch to scmutil...
r30520 */mercurial/scmutil.py* in callcatch (glob)
Jun Wu
dispatch: split global error handling out so it can be reused...
r29761 */mercurial/dispatch.py:* in _runcatchfunc (glob)
timeless
ui: log devel warnings
r28498 */mercurial/dispatch.py:* in _dispatch (glob)
*/mercurial/dispatch.py:* in runcommand (glob)
*/mercurial/dispatch.py:* in _runcommand (glob)
*/mercurial/dispatch.py:* in <lambda> (glob)
*/mercurial/util.py:* in check (glob)
$TESTTMP/buggylocking.py:* in oldanddeprecated (glob)
1970/01/01 00:00:00 bob @cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b (5000)> oldanddeprecated --traceback exited 0 after * seconds (glob)
Yuya Nishihara
revset: stop supporting predicate that returns plain list (API)...
r31809 1970/01/01 00:00:00 bob @cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b (5000)> blackbox -l 7
Saurabh Singh
test-devel-warnings: make the test compatible with chg...
r34465 #else
$ hg blackbox -l 7
1970/01/01 00:00:00 bob @cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b (5000)> oldanddeprecated
1970/01/01 00:00:00 bob @cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b (5000)> devel-warn: foorbar is deprecated, go shopping
(compatibility will be dropped after Mercurial-42.1337, update your code.) at: $TESTTMP/buggylocking.py:* (oldanddeprecated) (glob)
1970/01/01 00:00:00 bob @cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b (5000)> oldanddeprecated exited 0 after * seconds (glob)
1970/01/01 00:00:00 bob @cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b (5000)> oldanddeprecated --traceback
1970/01/01 00:00:00 bob @cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b (5000)> devel-warn: foorbar is deprecated, go shopping
(compatibility will be dropped after Mercurial-42.1337, update your code.) at:
*/hg:* in <module> (glob)
*/mercurial/dispatch.py:* in run (glob)
*/mercurial/dispatch.py:* in dispatch (glob)
*/mercurial/dispatch.py:* in _runcatch (glob)
*/mercurial/dispatch.py:* in _callcatch (glob)
*/mercurial/scmutil.py:* in callcatch (glob)
*/mercurial/dispatch.py:* in _runcatchfunc (glob)
*/mercurial/dispatch.py:* in _dispatch (glob)
*/mercurial/dispatch.py:* in runcommand (glob)
*/mercurial/dispatch.py:* in _runcommand (glob)
*/mercurial/dispatch.py:* in <lambda> (glob)
*/mercurial/util.py:* in check (glob)
*/mercurial/commands.py:* in serve (glob)
*/mercurial/server.py:* in runservice (glob)
*/mercurial/commandserver.py:* in run (glob)
*/mercurial/commandserver.py:* in _mainloop (glob)
*/mercurial/commandserver.py:* in _runworker (glob)
*/mercurial/commandserver.py:* in _serverequest (glob)
*/mercurial/commandserver.py:* in serve (glob)
*/mercurial/commandserver.py:* in serveone (glob)
*/mercurial/chgserver.py:* in runcommand (glob)
*/mercurial/commandserver.py:* in runcommand (glob)
*/mercurial/dispatch.py:* in dispatch (glob)
*/mercurial/dispatch.py:* in _runcatch (glob)
*/mercurial/dispatch.py:* in _callcatch (glob)
*/mercurial/scmutil.py:* in callcatch (glob)
*/mercurial/dispatch.py:* in _runcatchfunc (glob)
*/mercurial/dispatch.py:* in _dispatch (glob)
*/mercurial/dispatch.py:* in runcommand (glob)
*/mercurial/dispatch.py:* in _runcommand (glob)
*/mercurial/dispatch.py:* in <lambda> (glob)
*/mercurial/util.py:* in check (glob)
$TESTTMP/buggylocking.py:* in oldanddeprecated (glob)
1970/01/01 00:00:00 bob @cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b (5000)> oldanddeprecated --traceback exited 0 after * seconds (glob)
1970/01/01 00:00:00 bob @cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b (5000)> blackbox -l 7
#endif
Pierre-Yves David
test: extract develwarn transaction testing in its own command...
r29185
Test programming error failure:
Pierre-Yves David
transaction: turn lack of locking into a hard failure (API)...
r29186 $ hg buggytransaction 2>&1 | egrep -v '^ '
** Unknown exception encountered with possibly-broken third-party extension buggylocking
** which supports versions unknown of Mercurial.
** Please disable buggylocking and try your action again.
** If that fixes the bug please report it to the extension author.
** Python * (glob)
** Mercurial Distributed SCM (*) (glob)
** Extensions loaded: * (glob)
Yuya Nishihara
error: add hint to ProgrammingError...
r32340 ** ProgrammingError: transaction requires locking
Pierre-Yves David
transaction: turn lack of locking into a hard failure (API)...
r29186 Traceback (most recent call last):
Boris Feld
pypy: fix failing test-devel-warnings.t with Pypy5.6.0...
r33610 *ProgrammingError: transaction requires locking (glob)
Pierre-Yves David
test: extract develwarn transaction testing in its own command...
r29185
Yuya Nishihara
error: add hint to ProgrammingError...
r32340 $ hg programmingerror 2>&1 | egrep -v '^ '
** Unknown exception encountered with possibly-broken third-party extension buggylocking
** which supports versions unknown of Mercurial.
** Please disable buggylocking and try your action again.
** If that fixes the bug please report it to the extension author.
** Python * (glob)
** Mercurial Distributed SCM (*) (glob)
** Extensions loaded: * (glob)
** ProgrammingError: something went wrong
** (try again)
Traceback (most recent call last):
Boris Feld
pypy: fix failing test-devel-warnings.t with Pypy5.6.0...
r33610 *ProgrammingError: something went wrong (glob)
Yuya Nishihara
error: add hint to ProgrammingError...
r32340
Pierre-Yves David
util: add a way to issue deprecation warning without a UI object...
r31950 Old style deprecation warning
$ hg nouiwarning
test: glob a line number in test-devel-warnings.t...
r33252 $TESTTMP/buggylocking.py:*: DeprecationWarning: this is a test (glob)
Pierre-Yves David
util: add a way to issue deprecation warning without a UI object...
r31950 (compatibility will be dropped after Mercurial-13.37, update your code.)
Augie Fackler
tests: add tons of b prefixes in test-devel-warnings.t...
r36142 util.nouideprecwarn(b'this is a test', b'13.37')
Pierre-Yves David
util: add a way to issue deprecation warning without a UI object...
r31950
(disabled outside of test run)
$ HGEMITWARNINGS= hg nouiwarning
configitems: issue a devel warning when overriding default config...
r32987 Test warning on config option access and registration
$ cat << EOF > ${TESTTMP}/buggyconfig.py
> """A small extension that tests our developer warnings for config"""
>
Matt Harbison
py3: fix module imports in tests, as flagged by test-check-module-imports.t...
r40405 > from mercurial import configitems, registrar
configitems: issue a devel warning when overriding default config...
r32987 >
> cmdtable = {}
> command = registrar.command(cmdtable)
>
configitems: add a devel warning for extensions items overiding core one...
r33128 > configtable = {}
> configitem = registrar.configitem(configtable)
>
Augie Fackler
tests: add tons of b prefixes in test-devel-warnings.t...
r36142 > configitem(b'test', b'some', default=b'foo')
> configitem(b'test', b'dynamic', default=configitems.dynamicdefault)
> configitem(b'test', b'callable', default=list)
configitems: add a devel warning for extensions items overiding core one...
r33128 > # overwrite a core config
Augie Fackler
tests: add tons of b prefixes in test-devel-warnings.t...
r36142 > configitem(b'ui', b'quiet', default=False)
> configitem(b'ui', b'interactive', default=None)
configitems: add a devel warning for extensions items overiding core one...
r33128 >
Pulkit Goyal
py3: make sure commands name are bytes in tests
r33097 > @command(b'buggyconfig')
configitems: issue a devel warning when overriding default config...
r32987 > def cmdbuggyconfig(ui, repo):
Augie Fackler
tests: add tons of b prefixes in test-devel-warnings.t...
r36142 > repo.ui.config(b'ui', b'quiet', True)
> repo.ui.config(b'ui', b'interactive', False)
> repo.ui.config(b'test', b'some', b'bar')
> repo.ui.config(b'test', b'some', b'foo')
> repo.ui.config(b'test', b'dynamic', b'some-required-default')
> repo.ui.config(b'test', b'dynamic')
> repo.ui.config(b'test', b'callable', [])
> repo.ui.config(b'test', b'callable', b'foo')
> repo.ui.config(b'test', b'unregistered')
> repo.ui.config(b'unregistered', b'unregistered')
configitems: issue a devel warning when overriding default config...
r32987 > EOF
$ hg --config "extensions.buggyconfig=${TESTTMP}/buggyconfig.py" buggyconfig
Boris Feld
extensions: factor extra data loading out...
r34187 devel-warn: extension 'buggyconfig' overwrite config item 'ui.interactive' at: */mercurial/extensions.py:* (_loadextra) (glob)
devel-warn: extension 'buggyconfig' overwrite config item 'ui.quiet' at: */mercurial/extensions.py:* (_loadextra) (glob)
Yuya Nishihara
configitems: relax warning about unwanted default value...
r34949 devel-warn: specifying a mismatched default value for a registered config item: 'ui.quiet' 'True' at: $TESTTMP/buggyconfig.py:* (cmdbuggyconfig) (glob)
devel-warn: specifying a mismatched default value for a registered config item: 'ui.interactive' 'False' at: $TESTTMP/buggyconfig.py:* (cmdbuggyconfig) (glob)
devel-warn: specifying a mismatched default value for a registered config item: 'test.some' 'bar' at: $TESTTMP/buggyconfig.py:* (cmdbuggyconfig) (glob)
Boris Feld
configitems: handle case were the default value is not static...
r33471 devel-warn: config item requires an explicit default value: 'test.dynamic' at: $TESTTMP/buggyconfig.py:* (cmdbuggyconfig) (glob)
Yuya Nishihara
configitems: relax warning about unwanted default value...
r34949 devel-warn: specifying a mismatched default value for a registered config item: 'test.callable' 'foo' at: $TESTTMP/buggyconfig.py:* (cmdbuggyconfig) (glob)
Boris Feld
configitems: adds a developer warning when accessing undeclared configuration...
r34859 devel-warn: accessing unregistered config item: 'test.unregistered' at: $TESTTMP/buggyconfig.py:* (cmdbuggyconfig) (glob)
devel-warn: accessing unregistered config item: 'unregistered.unregistered' at: $TESTTMP/buggyconfig.py:* (cmdbuggyconfig) (glob)
configitems: issue a devel warning when overriding default config...
r32987
Pierre-Yves David
devel: move the lock-checking code into core...
r24386 $ cd ..