tests/test-extension-timing.t
changeset 39507 a5d6bf6032fb
parent 39221 d7ac6dafc609
child 39508 1a2bfc4d756a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-extension-timing.t	Mon Sep 10 19:36:25 2018 -0700
@@ -0,0 +1,90 @@
+Test basic extension support
+
+  $ cat > foobar.py <<EOF
+  > import os
+  > from mercurial import commands, registrar
+  > cmdtable = {}
+  > command = registrar.command(cmdtable)
+  > configtable = {}
+  > configitem = registrar.configitem(configtable)
+  > configitem(b'tests', b'foo', default=b"Foo")
+  > def uisetup(ui):
+  >     ui.debug(b"uisetup called [debug]\\n")
+  >     ui.write(b"uisetup called\\n")
+  >     ui.status(b"uisetup called [status]\\n")
+  >     ui.flush()
+  > def reposetup(ui, repo):
+  >     ui.write(b"reposetup called for %s\\n" % os.path.basename(repo.root))
+  >     ui.write(b"ui %s= repo.ui\\n" % (ui == repo.ui and b"=" or b"!"))
+  >     ui.flush()
+  > @command(b'foo', [], b'hg foo')
+  > def foo(ui, *args, **kwargs):
+  >     foo = ui.config(b'tests', b'foo')
+  >     ui.write(foo)
+  >     ui.write(b"\\n")
+  > @command(b'bar', [], b'hg bar', norepo=True)
+  > def bar(ui, *args, **kwargs):
+  >     ui.write(b"Bar\\n")
+  > EOF
+  $ abspath=`pwd`/foobar.py
+
+  $ mkdir barfoo
+  $ cp foobar.py barfoo/__init__.py
+  $ barfoopath=`pwd`/barfoo
+
+  $ hg init a
+  $ cd a
+  $ echo foo > file
+  $ hg add file
+  $ hg commit -m 'add file'
+
+  $ echo '[extensions]' >> $HGRCPATH
+  $ echo "foobar = $abspath" >> $HGRCPATH
+
+Test extension setup timings
+
+  $ hg foo --traceback --config devel.debug.extensions=yes --debug 2>&1
+  debug.extensions: loading extensions
+  debug.extensions: - processing 1 entries
+  debug.extensions:   - loading extension: 'foobar'
+  debug.extensions:   > 'foobar' extension loaded in * (glob)
+  debug.extensions:     - validating extension tables: 'foobar'
+  debug.extensions:     - invoking registered callbacks: 'foobar'
+  debug.extensions:     > callbacks completed in * (glob)
+  debug.extensions: > loaded 1 extensions, total time * (glob)
+  debug.extensions: - loading configtable attributes
+  debug.extensions: - executing uisetup hooks
+  debug.extensions:   - running uisetup for 'foobar'
+  uisetup called [debug]
+  uisetup called
+  uisetup called [status]
+  debug.extensions:   > uisetup for 'foobar' took * (glob)
+  debug.extensions: - executing extsetup hooks
+  debug.extensions:   - running extsetup for 'foobar'
+  debug.extensions:   > extsetup for 'foobar' took * (glob)
+  debug.extensions: - executing remaining aftercallbacks
+  debug.extensions: > remaining aftercallbacks completed in * (glob)
+  debug.extensions: - loading extension registration objects
+  debug.extensions: > extension registration object loading took * (glob)
+  debug.extensions: extension loading complete
+  debug.extensions: loading additional extensions
+  debug.extensions: - processing 1 entries
+  debug.extensions: > loaded 0 extensions, total time * (glob)
+  debug.extensions: - loading configtable attributes
+  debug.extensions: - executing uisetup hooks
+  debug.extensions: - executing extsetup hooks
+  debug.extensions: - executing remaining aftercallbacks
+  debug.extensions: > remaining aftercallbacks completed in * (glob)
+  debug.extensions: - loading extension registration objects
+  debug.extensions: > extension registration object loading took * (glob)
+  debug.extensions: extension loading complete
+  debug.extensions: - executing reposetup hooks
+  debug.extensions:   - running reposetup for foobar
+  reposetup called for a
+  ui == repo.ui
+  debug.extensions:   > reposetup for 'foobar' took * (glob)
+  Foo
+
+  $ cd ..
+
+  $ echo 'foobar = !' >> $HGRCPATH