tests/test-bad-extension.t
author spectral <spectral@google.com>
Mon, 06 Aug 2018 12:52:22 -0700
changeset 38954 5a7df82de142
parent 38798 d58958676b3c
child 39112 f2e645dc6a67
permissions -rw-r--r--
includematcher: separate "parents" from "dirs" A future patch will make use of this separation so that we can make more intelligent decisions about what to investigate/load when the matcher is in use. Currently, even with this patch, we typically use the 'visitdir' call to identify if we can skip some directory, something along the lines of: for f in all_items: if match.visitdir(f): <do stuff> This can be slower than we'd like if there are a lot of items; it requires N calls to match.visitdir in the best case. Commonly, especially with 'narrow', we have a situation where we do some work for the directory, possibly just loading it from disk (when using treemanifests) and then check if we should be interacting with it at all, which can be a huge slowdown in some pathological cases. Differential Revision: https://phab.mercurial-scm.org/D4129
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
31957
84f9eb9758c0 atexit: test failing handlers
Bryan O'Sullivan <bryano@fb.com>
parents: 30027
diff changeset
     1
ensure that failing ui.atexit handlers report sensibly
84f9eb9758c0 atexit: test failing handlers
Bryan O'Sullivan <bryano@fb.com>
parents: 30027
diff changeset
     2
84f9eb9758c0 atexit: test failing handlers
Bryan O'Sullivan <bryano@fb.com>
parents: 30027
diff changeset
     3
  $ cat > $TESTTMP/bailatexit.py <<EOF
84f9eb9758c0 atexit: test failing handlers
Bryan O'Sullivan <bryano@fb.com>
parents: 30027
diff changeset
     4
  > from mercurial import util
84f9eb9758c0 atexit: test failing handlers
Bryan O'Sullivan <bryano@fb.com>
parents: 30027
diff changeset
     5
  > def bail():
84f9eb9758c0 atexit: test failing handlers
Bryan O'Sullivan <bryano@fb.com>
parents: 30027
diff changeset
     6
  >     raise RuntimeError('ui.atexit handler exception')
84f9eb9758c0 atexit: test failing handlers
Bryan O'Sullivan <bryano@fb.com>
parents: 30027
diff changeset
     7
  > 
84f9eb9758c0 atexit: test failing handlers
Bryan O'Sullivan <bryano@fb.com>
parents: 30027
diff changeset
     8
  > def extsetup(ui):
84f9eb9758c0 atexit: test failing handlers
Bryan O'Sullivan <bryano@fb.com>
parents: 30027
diff changeset
     9
  >     ui.atexit(bail)
84f9eb9758c0 atexit: test failing handlers
Bryan O'Sullivan <bryano@fb.com>
parents: 30027
diff changeset
    10
  > EOF
84f9eb9758c0 atexit: test failing handlers
Bryan O'Sullivan <bryano@fb.com>
parents: 30027
diff changeset
    11
  $ hg -q --config extensions.bailatexit=$TESTTMP/bailatexit.py \
84f9eb9758c0 atexit: test failing handlers
Bryan O'Sullivan <bryano@fb.com>
parents: 30027
diff changeset
    12
  >  help help
84f9eb9758c0 atexit: test failing handlers
Bryan O'Sullivan <bryano@fb.com>
parents: 30027
diff changeset
    13
  hg help [-ecks] [TOPIC]
84f9eb9758c0 atexit: test failing handlers
Bryan O'Sullivan <bryano@fb.com>
parents: 30027
diff changeset
    14
  
84f9eb9758c0 atexit: test failing handlers
Bryan O'Sullivan <bryano@fb.com>
parents: 30027
diff changeset
    15
  show help for a given topic or a help overview
84f9eb9758c0 atexit: test failing handlers
Bryan O'Sullivan <bryano@fb.com>
parents: 30027
diff changeset
    16
  error in exit handlers:
84f9eb9758c0 atexit: test failing handlers
Bryan O'Sullivan <bryano@fb.com>
parents: 30027
diff changeset
    17
  Traceback (most recent call last):
84f9eb9758c0 atexit: test failing handlers
Bryan O'Sullivan <bryano@fb.com>
parents: 30027
diff changeset
    18
    File "*/mercurial/dispatch.py", line *, in _runexithandlers (glob)
84f9eb9758c0 atexit: test failing handlers
Bryan O'Sullivan <bryano@fb.com>
parents: 30027
diff changeset
    19
      func(*args, **kwargs)
84f9eb9758c0 atexit: test failing handlers
Bryan O'Sullivan <bryano@fb.com>
parents: 30027
diff changeset
    20
    File "$TESTTMP/bailatexit.py", line *, in bail (glob)
84f9eb9758c0 atexit: test failing handlers
Bryan O'Sullivan <bryano@fb.com>
parents: 30027
diff changeset
    21
      raise RuntimeError('ui.atexit handler exception')
84f9eb9758c0 atexit: test failing handlers
Bryan O'Sullivan <bryano@fb.com>
parents: 30027
diff changeset
    22
  RuntimeError: ui.atexit handler exception
84f9eb9758c0 atexit: test failing handlers
Bryan O'Sullivan <bryano@fb.com>
parents: 30027
diff changeset
    23
  [255]
84f9eb9758c0 atexit: test failing handlers
Bryan O'Sullivan <bryano@fb.com>
parents: 30027
diff changeset
    24
84f9eb9758c0 atexit: test failing handlers
Bryan O'Sullivan <bryano@fb.com>
parents: 30027
diff changeset
    25
  $ rm $TESTTMP/bailatexit.py
84f9eb9758c0 atexit: test failing handlers
Bryan O'Sullivan <bryano@fb.com>
parents: 30027
diff changeset
    26
84f9eb9758c0 atexit: test failing handlers
Bryan O'Sullivan <bryano@fb.com>
parents: 30027
diff changeset
    27
another bad extension
84f9eb9758c0 atexit: test failing handlers
Bryan O'Sullivan <bryano@fb.com>
parents: 30027
diff changeset
    28
11858
934c7e91c126 tests: unify test-bad-extension
Martin Geisler <mg@lazybytes.net>
parents: 6204
diff changeset
    29
  $ echo 'raise Exception("bit bucket overflow")' > badext.py
28083
550097d01ca3 tests: confirm that a badly documented extension doesn't cause a crash
Simon Farnsworth <simonfar@fb.com>
parents: 27538
diff changeset
    30
  $ abspathexc=`pwd`/badext.py
550097d01ca3 tests: confirm that a badly documented extension doesn't cause a crash
Simon Farnsworth <simonfar@fb.com>
parents: 27538
diff changeset
    31
550097d01ca3 tests: confirm that a badly documented extension doesn't cause a crash
Simon Farnsworth <simonfar@fb.com>
parents: 27538
diff changeset
    32
  $ cat >baddocext.py <<EOF
550097d01ca3 tests: confirm that a badly documented extension doesn't cause a crash
Simon Farnsworth <simonfar@fb.com>
parents: 27538
diff changeset
    33
  > """
550097d01ca3 tests: confirm that a badly documented extension doesn't cause a crash
Simon Farnsworth <simonfar@fb.com>
parents: 27538
diff changeset
    34
  > baddocext is bad
550097d01ca3 tests: confirm that a badly documented extension doesn't cause a crash
Simon Farnsworth <simonfar@fb.com>
parents: 27538
diff changeset
    35
  > """
550097d01ca3 tests: confirm that a badly documented extension doesn't cause a crash
Simon Farnsworth <simonfar@fb.com>
parents: 27538
diff changeset
    36
  > EOF
550097d01ca3 tests: confirm that a badly documented extension doesn't cause a crash
Simon Farnsworth <simonfar@fb.com>
parents: 27538
diff changeset
    37
  $ abspathdoc=`pwd`/baddocext.py
3014
01454af644b8 load extensions only after the ui object has been completely initialized
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    38
23172
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 14286
diff changeset
    39
  $ cat <<EOF >> $HGRCPATH
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 14286
diff changeset
    40
  > [extensions]
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 14286
diff changeset
    41
  > gpg =
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 14286
diff changeset
    42
  > hgext.gpg =
28083
550097d01ca3 tests: confirm that a badly documented extension doesn't cause a crash
Simon Farnsworth <simonfar@fb.com>
parents: 27538
diff changeset
    43
  > badext = $abspathexc
550097d01ca3 tests: confirm that a badly documented extension doesn't cause a crash
Simon Farnsworth <simonfar@fb.com>
parents: 27538
diff changeset
    44
  > baddocext = $abspathdoc
23172
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 14286
diff changeset
    45
  > badext2 =
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 14286
diff changeset
    46
  > EOF
3014
01454af644b8 load extensions only after the ui object has been completely initialized
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    47
26239
f39953663cc9 test-bad-extension: reduce dependencies on other things
timeless@mozdev.org
parents: 25364
diff changeset
    48
  $ hg -q help help 2>&1 |grep extension
12640
6cc4b14fb76b tests: remove redundant globs
Mads Kiilerich <mads@kiilerich.com>
parents: 12376
diff changeset
    49
  *** failed to import extension badext from $TESTTMP/badext.py: bit bucket overflow
12375
02990e22150b tests: require regexes in unified tests to be marked with " (re)"
Brodie Rao <brodie@bitheap.org>
parents: 11858
diff changeset
    50
  *** failed to import extension badext2: No module named badext2
25364
de23a552fc23 extensions: show traceback on load failure if --traceback flag is set
Yuya Nishihara <yuya@tcha.org>
parents: 23172
diff changeset
    51
de23a552fc23 extensions: show traceback on load failure if --traceback flag is set
Yuya Nishihara <yuya@tcha.org>
parents: 23172
diff changeset
    52
show traceback
de23a552fc23 extensions: show traceback on load failure if --traceback flag is set
Yuya Nishihara <yuya@tcha.org>
parents: 23172
diff changeset
    53
26239
f39953663cc9 test-bad-extension: reduce dependencies on other things
timeless@mozdev.org
parents: 25364
diff changeset
    54
  $ hg -q help help --traceback 2>&1 | egrep ' extension|^Exception|Traceback|ImportError'
25364
de23a552fc23 extensions: show traceback on load failure if --traceback flag is set
Yuya Nishihara <yuya@tcha.org>
parents: 23172
diff changeset
    55
  *** failed to import extension badext from $TESTTMP/badext.py: bit bucket overflow
de23a552fc23 extensions: show traceback on load failure if --traceback flag is set
Yuya Nishihara <yuya@tcha.org>
parents: 23172
diff changeset
    56
  Traceback (most recent call last):
de23a552fc23 extensions: show traceback on load failure if --traceback flag is set
Yuya Nishihara <yuya@tcha.org>
parents: 23172
diff changeset
    57
  Exception: bit bucket overflow
de23a552fc23 extensions: show traceback on load failure if --traceback flag is set
Yuya Nishihara <yuya@tcha.org>
parents: 23172
diff changeset
    58
  *** failed to import extension badext2: No module named badext2
de23a552fc23 extensions: show traceback on load failure if --traceback flag is set
Yuya Nishihara <yuya@tcha.org>
parents: 23172
diff changeset
    59
  Traceback (most recent call last):
de23a552fc23 extensions: show traceback on load failure if --traceback flag is set
Yuya Nishihara <yuya@tcha.org>
parents: 23172
diff changeset
    60
  ImportError: No module named badext2
de23a552fc23 extensions: show traceback on load failure if --traceback flag is set
Yuya Nishihara <yuya@tcha.org>
parents: 23172
diff changeset
    61
28155
7f430b2ac7fd extensions: add notloaded method to return extensions failed to load
Jun Wu <quark@fb.com>
parents: 28083
diff changeset
    62
names of extensions failed to load can be accessed via extensions.notloaded()
7f430b2ac7fd extensions: add notloaded method to return extensions failed to load
Jun Wu <quark@fb.com>
parents: 28083
diff changeset
    63
7f430b2ac7fd extensions: add notloaded method to return extensions failed to load
Jun Wu <quark@fb.com>
parents: 28083
diff changeset
    64
  $ cat <<EOF > showbadexts.py
32337
46ba2cdda476 registrar: move cmdutil.command to registrar module (API)
Yuya Nishihara <yuya@tcha.org>
parents: 31957
diff changeset
    65
  > from mercurial import commands, extensions, registrar
28155
7f430b2ac7fd extensions: add notloaded method to return extensions failed to load
Jun Wu <quark@fb.com>
parents: 28083
diff changeset
    66
  > cmdtable = {}
32337
46ba2cdda476 registrar: move cmdutil.command to registrar module (API)
Yuya Nishihara <yuya@tcha.org>
parents: 31957
diff changeset
    67
  > command = registrar.command(cmdtable)
33097
fce4ed2912bb py3: make sure commands name are bytes in tests
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32337
diff changeset
    68
  > @command(b'showbadexts', norepo=True)
28155
7f430b2ac7fd extensions: add notloaded method to return extensions failed to load
Jun Wu <quark@fb.com>
parents: 28083
diff changeset
    69
  > def showbadexts(ui, *pats, **opts):
28338
9974b8236cac tests: Solaris grep doesn't add a trailing newline when it's missing
Danek Duvall <danek.duvall@oracle.com>
parents: 28155
diff changeset
    70
  >     ui.write('BADEXTS: %s\n' % ' '.join(sorted(extensions.notloaded())))
28155
7f430b2ac7fd extensions: add notloaded method to return extensions failed to load
Jun Wu <quark@fb.com>
parents: 28083
diff changeset
    71
  > EOF
7f430b2ac7fd extensions: add notloaded method to return extensions failed to load
Jun Wu <quark@fb.com>
parents: 28083
diff changeset
    72
  $ hg --config extensions.badexts=showbadexts.py showbadexts 2>&1 | grep '^BADEXTS'
7f430b2ac7fd extensions: add notloaded method to return extensions failed to load
Jun Wu <quark@fb.com>
parents: 28083
diff changeset
    73
  BADEXTS: badext badext2
7f430b2ac7fd extensions: add notloaded method to return extensions failed to load
Jun Wu <quark@fb.com>
parents: 28083
diff changeset
    74
38727
fcb517ff9562 debug: move extensions debug behind a dedicated flag
Boris Feld <boris.feld@octobus.net>
parents: 38532
diff changeset
    75
show traceback for ImportError of hgext.name if devel.debug.extensions is set
25364
de23a552fc23 extensions: show traceback on load failure if --traceback flag is set
Yuya Nishihara <yuya@tcha.org>
parents: 23172
diff changeset
    76
38727
fcb517ff9562 debug: move extensions debug behind a dedicated flag
Boris Feld <boris.feld@octobus.net>
parents: 38532
diff changeset
    77
  $ (hg help help --traceback --debug --config devel.debug.extensions=yes 2>&1) \
26239
f39953663cc9 test-bad-extension: reduce dependencies on other things
timeless@mozdev.org
parents: 25364
diff changeset
    78
  > | grep -v '^ ' \
f39953663cc9 test-bad-extension: reduce dependencies on other things
timeless@mozdev.org
parents: 25364
diff changeset
    79
  > | egrep 'extension..[^p]|^Exception|Traceback|ImportError|not import'
38798
d58958676b3c extensions: add detailed loading information
Martijn Pieters <mj@zopatista.com>
parents: 38727
diff changeset
    80
  debug.extensions: loading extensions
d58958676b3c extensions: add detailed loading information
Martijn Pieters <mj@zopatista.com>
parents: 38727
diff changeset
    81
  debug.extensions: - processing 5 entries
d58958676b3c extensions: add detailed loading information
Martijn Pieters <mj@zopatista.com>
parents: 38727
diff changeset
    82
  debug.extensions:   - loading extension: 'gpg'
d58958676b3c extensions: add detailed loading information
Martijn Pieters <mj@zopatista.com>
parents: 38727
diff changeset
    83
  debug.extensions:   > 'gpg' extension loaded in * (glob)
d58958676b3c extensions: add detailed loading information
Martijn Pieters <mj@zopatista.com>
parents: 38727
diff changeset
    84
  debug.extensions:     - validating extension tables: 'gpg'
d58958676b3c extensions: add detailed loading information
Martijn Pieters <mj@zopatista.com>
parents: 38727
diff changeset
    85
  debug.extensions:     - invoking registered callbacks: 'gpg'
d58958676b3c extensions: add detailed loading information
Martijn Pieters <mj@zopatista.com>
parents: 38727
diff changeset
    86
  debug.extensions:     > callbacks completed in * (glob)
d58958676b3c extensions: add detailed loading information
Martijn Pieters <mj@zopatista.com>
parents: 38727
diff changeset
    87
  debug.extensions:   - loading extension: 'badext'
25364
de23a552fc23 extensions: show traceback on load failure if --traceback flag is set
Yuya Nishihara <yuya@tcha.org>
parents: 23172
diff changeset
    88
  *** failed to import extension badext from $TESTTMP/badext.py: bit bucket overflow
de23a552fc23 extensions: show traceback on load failure if --traceback flag is set
Yuya Nishihara <yuya@tcha.org>
parents: 23172
diff changeset
    89
  Traceback (most recent call last):
de23a552fc23 extensions: show traceback on load failure if --traceback flag is set
Yuya Nishihara <yuya@tcha.org>
parents: 23172
diff changeset
    90
  Exception: bit bucket overflow
38798
d58958676b3c extensions: add detailed loading information
Martijn Pieters <mj@zopatista.com>
parents: 38727
diff changeset
    91
  debug.extensions:   - loading extension: 'baddocext'
d58958676b3c extensions: add detailed loading information
Martijn Pieters <mj@zopatista.com>
parents: 38727
diff changeset
    92
  debug.extensions:   > 'baddocext' extension loaded in * (glob)
d58958676b3c extensions: add detailed loading information
Martijn Pieters <mj@zopatista.com>
parents: 38727
diff changeset
    93
  debug.extensions:     - validating extension tables: 'baddocext'
d58958676b3c extensions: add detailed loading information
Martijn Pieters <mj@zopatista.com>
parents: 38727
diff changeset
    94
  debug.extensions:     - invoking registered callbacks: 'baddocext'
d58958676b3c extensions: add detailed loading information
Martijn Pieters <mj@zopatista.com>
parents: 38727
diff changeset
    95
  debug.extensions:     > callbacks completed in * (glob)
d58958676b3c extensions: add detailed loading information
Martijn Pieters <mj@zopatista.com>
parents: 38727
diff changeset
    96
  debug.extensions:   - loading extension: 'badext2'
d58958676b3c extensions: add detailed loading information
Martijn Pieters <mj@zopatista.com>
parents: 38727
diff changeset
    97
  debug.extensions:     - could not import hgext.badext2 (No module named badext2): trying hgext3rd.badext2
25364
de23a552fc23 extensions: show traceback on load failure if --traceback flag is set
Yuya Nishihara <yuya@tcha.org>
parents: 23172
diff changeset
    98
  Traceback (most recent call last):
27538
50ad3f25fb4c test-bad-extension: account for PyPy/CPython error difference
Bryan O'Sullivan <bos@serpentine.com>
parents: 26239
diff changeset
    99
  ImportError: No module named *badext2 (glob)
38798
d58958676b3c extensions: add detailed loading information
Martijn Pieters <mj@zopatista.com>
parents: 38727
diff changeset
   100
  debug.extensions:     - could not import hgext3rd.badext2 (No module named badext2): trying badext2
28541
4b81487a01d4 extensions: also search for extension in the 'hgext3rd' package
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 28338
diff changeset
   101
  Traceback (most recent call last):
28737
a3a01194a337 pypy: fix overspecific test checks
Maciej Fijalkowski <fijall@gmail.com>
parents: 28541
diff changeset
   102
  ImportError: No module named *badext2 (glob)
25364
de23a552fc23 extensions: show traceback on load failure if --traceback flag is set
Yuya Nishihara <yuya@tcha.org>
parents: 23172
diff changeset
   103
  *** failed to import extension badext2: No module named badext2
de23a552fc23 extensions: show traceback on load failure if --traceback flag is set
Yuya Nishihara <yuya@tcha.org>
parents: 23172
diff changeset
   104
  Traceback (most recent call last):
de23a552fc23 extensions: show traceback on load failure if --traceback flag is set
Yuya Nishihara <yuya@tcha.org>
parents: 23172
diff changeset
   105
  ImportError: No module named badext2
38798
d58958676b3c extensions: add detailed loading information
Martijn Pieters <mj@zopatista.com>
parents: 38727
diff changeset
   106
  debug.extensions: > loaded 2 extensions, total time * (glob)
d58958676b3c extensions: add detailed loading information
Martijn Pieters <mj@zopatista.com>
parents: 38727
diff changeset
   107
  debug.extensions: - loading configtable attributes
d58958676b3c extensions: add detailed loading information
Martijn Pieters <mj@zopatista.com>
parents: 38727
diff changeset
   108
  debug.extensions: - executing uisetup hooks
d58958676b3c extensions: add detailed loading information
Martijn Pieters <mj@zopatista.com>
parents: 38727
diff changeset
   109
  debug.extensions:   - running uisetup for 'gpg'
d58958676b3c extensions: add detailed loading information
Martijn Pieters <mj@zopatista.com>
parents: 38727
diff changeset
   110
  debug.extensions:   > uisetup for 'gpg' took * (glob)
d58958676b3c extensions: add detailed loading information
Martijn Pieters <mj@zopatista.com>
parents: 38727
diff changeset
   111
  debug.extensions:   - running uisetup for 'baddocext'
d58958676b3c extensions: add detailed loading information
Martijn Pieters <mj@zopatista.com>
parents: 38727
diff changeset
   112
  debug.extensions:   > uisetup for 'baddocext' took * (glob)
d58958676b3c extensions: add detailed loading information
Martijn Pieters <mj@zopatista.com>
parents: 38727
diff changeset
   113
  debug.extensions: - executing extsetup hooks
d58958676b3c extensions: add detailed loading information
Martijn Pieters <mj@zopatista.com>
parents: 38727
diff changeset
   114
  debug.extensions:   - running extsetup for 'gpg'
d58958676b3c extensions: add detailed loading information
Martijn Pieters <mj@zopatista.com>
parents: 38727
diff changeset
   115
  debug.extensions:   > extsetup for 'gpg' took * (glob)
d58958676b3c extensions: add detailed loading information
Martijn Pieters <mj@zopatista.com>
parents: 38727
diff changeset
   116
  debug.extensions:   - running extsetup for 'baddocext'
d58958676b3c extensions: add detailed loading information
Martijn Pieters <mj@zopatista.com>
parents: 38727
diff changeset
   117
  debug.extensions:   > extsetup for 'baddocext' took * (glob)
d58958676b3c extensions: add detailed loading information
Martijn Pieters <mj@zopatista.com>
parents: 38727
diff changeset
   118
  debug.extensions: - executing remaining aftercallbacks
d58958676b3c extensions: add detailed loading information
Martijn Pieters <mj@zopatista.com>
parents: 38727
diff changeset
   119
  debug.extensions: > remaining aftercallbacks completed in * (glob)
d58958676b3c extensions: add detailed loading information
Martijn Pieters <mj@zopatista.com>
parents: 38727
diff changeset
   120
  debug.extensions: - loading extension registration objects
d58958676b3c extensions: add detailed loading information
Martijn Pieters <mj@zopatista.com>
parents: 38727
diff changeset
   121
  debug.extensions: > extension registration object loading took * (glob)
d58958676b3c extensions: add detailed loading information
Martijn Pieters <mj@zopatista.com>
parents: 38727
diff changeset
   122
  debug.extensions: extension loading complete
28083
550097d01ca3 tests: confirm that a badly documented extension doesn't cause a crash
Simon Farnsworth <simonfar@fb.com>
parents: 27538
diff changeset
   123
550097d01ca3 tests: confirm that a badly documented extension doesn't cause a crash
Simon Farnsworth <simonfar@fb.com>
parents: 27538
diff changeset
   124
confirm that there's no crash when an extension's documentation is bad
550097d01ca3 tests: confirm that a badly documented extension doesn't cause a crash
Simon Farnsworth <simonfar@fb.com>
parents: 27538
diff changeset
   125
550097d01ca3 tests: confirm that a badly documented extension doesn't cause a crash
Simon Farnsworth <simonfar@fb.com>
parents: 27538
diff changeset
   126
  $ hg help --keyword baddocext
550097d01ca3 tests: confirm that a badly documented extension doesn't cause a crash
Simon Farnsworth <simonfar@fb.com>
parents: 27538
diff changeset
   127
  *** failed to import extension badext from $TESTTMP/badext.py: bit bucket overflow
550097d01ca3 tests: confirm that a badly documented extension doesn't cause a crash
Simon Farnsworth <simonfar@fb.com>
parents: 27538
diff changeset
   128
  *** failed to import extension badext2: No module named badext2
550097d01ca3 tests: confirm that a badly documented extension doesn't cause a crash
Simon Farnsworth <simonfar@fb.com>
parents: 27538
diff changeset
   129
  Topics:
550097d01ca3 tests: confirm that a badly documented extension doesn't cause a crash
Simon Farnsworth <simonfar@fb.com>
parents: 27538
diff changeset
   130
  
550097d01ca3 tests: confirm that a badly documented extension doesn't cause a crash
Simon Farnsworth <simonfar@fb.com>
parents: 27538
diff changeset
   131
   extensions Using Additional Features