# HG changeset patch # User Bryan O'Sullivan # Date 1491947652 25200 # Node ID 84f9eb9758c0fdbe3bf4f1bff5254c10e15c4d13 # Parent c13ff31818b0ea8c7530e906836e635d22c1b995 atexit: test failing handlers diff -r c13ff31818b0 -r 84f9eb9758c0 tests/test-bad-extension.t --- a/tests/test-bad-extension.t Tue Apr 11 14:54:12 2017 -0700 +++ b/tests/test-bad-extension.t Tue Apr 11 14:54:12 2017 -0700 @@ -1,3 +1,31 @@ +ensure that failing ui.atexit handlers report sensibly + + $ cat > $TESTTMP/bailatexit.py < from mercurial import util + > def bail(): + > raise RuntimeError('ui.atexit handler exception') + > + > def extsetup(ui): + > ui.atexit(bail) + > EOF + $ hg -q --config extensions.bailatexit=$TESTTMP/bailatexit.py \ + > help help + hg help [-ecks] [TOPIC] + + show help for a given topic or a help overview + error in exit handlers: + Traceback (most recent call last): + File "*/mercurial/dispatch.py", line *, in _runexithandlers (glob) + func(*args, **kwargs) + File "$TESTTMP/bailatexit.py", line *, in bail (glob) + raise RuntimeError('ui.atexit handler exception') + RuntimeError: ui.atexit handler exception + [255] + + $ rm $TESTTMP/bailatexit.py + +another bad extension + $ echo 'raise Exception("bit bucket overflow")' > badext.py $ abspathexc=`pwd`/badext.py