##// END OF EJS Templates
chgserver: invalidate the server if extensions fail to load...
chgserver: invalidate the server if extensions fail to load Previously, if extensions fail to load, chg server will just keep working without those extensions. It will print a warning message but only if a new server starts. This patch invalidates the server if any extension failed to load, but still serve the client (hopefully just) once. It will help chg pass some test cases of test-bad-extension.t.

File last commit:

r28338:9974b823 default
r28536:a979f5b0 default
Show More
test-bad-extension.t
70 lines | 2.5 KiB | text/troff | Tads3Lexer
/ tests / test-bad-extension.t
Martin Geisler
tests: unify test-bad-extension
r11858 $ echo 'raise Exception("bit bucket overflow")' > badext.py
Simon Farnsworth
tests: confirm that a badly documented extension doesn't cause a crash...
r28083 $ abspathexc=`pwd`/badext.py
$ cat >baddocext.py <<EOF
> """
> baddocext is bad
> """
> EOF
$ abspathdoc=`pwd`/baddocext.py
Martin Geisler
tests: unify test-bad-extension
r11858
Yuya Nishihara
tests: write hgrc of more than two lines by using shell heredoc...
r23172 $ cat <<EOF >> $HGRCPATH
> [extensions]
> gpg =
> hgext.gpg =
Simon Farnsworth
tests: confirm that a badly documented extension doesn't cause a crash...
r28083 > badext = $abspathexc
> baddocext = $abspathdoc
Yuya Nishihara
tests: write hgrc of more than two lines by using shell heredoc...
r23172 > badext2 =
> EOF
Martin Geisler
tests: unify test-bad-extension
r11858
timeless@mozdev.org
test-bad-extension: reduce dependencies on other things...
r26239 $ hg -q help help 2>&1 |grep extension
Mads Kiilerich
tests: remove redundant globs...
r12640 *** failed to import extension badext from $TESTTMP/badext.py: bit bucket overflow
Brodie Rao
tests: require regexes in unified tests to be marked with " (re)"...
r12375 *** failed to import extension badext2: No module named badext2
Yuya Nishihara
extensions: show traceback on load failure if --traceback flag is set...
r25364
show traceback
timeless@mozdev.org
test-bad-extension: reduce dependencies on other things...
r26239 $ hg -q help help --traceback 2>&1 | egrep ' extension|^Exception|Traceback|ImportError'
Yuya Nishihara
extensions: show traceback on load failure if --traceback flag is set...
r25364 *** failed to import extension badext from $TESTTMP/badext.py: bit bucket overflow
Traceback (most recent call last):
Exception: bit bucket overflow
*** failed to import extension badext2: No module named badext2
Traceback (most recent call last):
ImportError: No module named badext2
Jun Wu
extensions: add notloaded method to return extensions failed to load...
r28155 names of extensions failed to load can be accessed via extensions.notloaded()
$ cat <<EOF > showbadexts.py
> from mercurial import cmdutil, commands, extensions
> cmdtable = {}
> command = cmdutil.command(cmdtable)
> @command('showbadexts', norepo=True)
> def showbadexts(ui, *pats, **opts):
Danek Duvall
tests: Solaris grep doesn't add a trailing newline when it's missing...
r28338 > ui.write('BADEXTS: %s\n' % ' '.join(sorted(extensions.notloaded())))
Jun Wu
extensions: add notloaded method to return extensions failed to load...
r28155 > EOF
$ hg --config extensions.badexts=showbadexts.py showbadexts 2>&1 | grep '^BADEXTS'
BADEXTS: badext badext2
Yuya Nishihara
extensions: show traceback on load failure if --traceback flag is set...
r25364 show traceback for ImportError of hgext.name if debug is set
(note that --debug option isn't applied yet when loading extensions)
timeless@mozdev.org
test-bad-extension: reduce dependencies on other things...
r26239 $ (hg -q help help --traceback --config ui.debug=True 2>&1) \
> | grep -v '^ ' \
> | egrep 'extension..[^p]|^Exception|Traceback|ImportError|not import'
Yuya Nishihara
extensions: show traceback on load failure if --traceback flag is set...
r25364 *** failed to import extension badext from $TESTTMP/badext.py: bit bucket overflow
Traceback (most recent call last):
Exception: bit bucket overflow
Bryan O'Sullivan
test-bad-extension: account for PyPy/CPython error difference
r27538 could not import hgext.badext2 (No module named *badext2): trying badext2 (glob)
Yuya Nishihara
extensions: show traceback on load failure if --traceback flag is set...
r25364 Traceback (most recent call last):
Bryan O'Sullivan
test-bad-extension: account for PyPy/CPython error difference
r27538 ImportError: No module named *badext2 (glob)
Yuya Nishihara
extensions: show traceback on load failure if --traceback flag is set...
r25364 *** failed to import extension badext2: No module named badext2
Traceback (most recent call last):
ImportError: No module named badext2
Simon Farnsworth
tests: confirm that a badly documented extension doesn't cause a crash...
r28083
confirm that there's no crash when an extension's documentation is bad
$ hg help --keyword baddocext
*** failed to import extension badext from $TESTTMP/badext.py: bit bucket overflow
*** failed to import extension badext2: No module named badext2
Topics:
extensions Using Additional Features