tests/test-extension-timing.t
author Kyle Lippincott <spectral@google.com>
Fri, 24 Jul 2020 15:03:14 -0700
changeset 45388 d71693f799a0
parent 44623 8cab8db59b6c
permissions -rw-r--r--
tests: make test-install.t work on debian systems Debian systems, at least as of their version of python3.8 on my machine, have rewritten some logic in ensurepip to make it not use the wheels in pip._bundled, but instead to use wheels installed in /usr/share/python-wheels. It copies these wheels into the virtual environment when it's created, and installenv/bin/pip is able to see them and use them, so it thinks that 'wheel' is installed, and that it can build the mercurial wheel instead of just installing it. For some reason, when it subprocesses to run `python3 setup.py bdist_wheel`, it setup.py does *not* have the 'wheel' wheel available, and we get an error message. Differential Revision: https://phab.mercurial-scm.org/D8813
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
44623
8cab8db59b6c tests: don't run couple of tests related to extensions loading with chg
Pulkit Goyal <7895pulkit@gmail.com>
parents: 41006
diff changeset
     1
#require no-chg
8cab8db59b6c tests: don't run couple of tests related to extensions loading with chg
Pulkit Goyal <7895pulkit@gmail.com>
parents: 41006
diff changeset
     2
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
     3
Test basic extension support
4064
5d9ede002453 install reposetup hook right after loading the extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
     4
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
     5
  $ cat > foobar.py <<EOF
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
     6
  > import os
32376
46ba2cdda476 registrar: move cmdutil.command to registrar module (API)
Yuya Nishihara <yuya@tcha.org>
parents: 31197
diff changeset
     7
  > from mercurial import commands, registrar
21254
51e5c793a9f4 tests: declare commands using decorator
Gregory Szorc <gregory.szorc@gmail.com>
parents: 20003
diff changeset
     8
  > cmdtable = {}
32376
46ba2cdda476 registrar: move cmdutil.command to registrar module (API)
Yuya Nishihara <yuya@tcha.org>
parents: 31197
diff changeset
     9
  > command = registrar.command(cmdtable)
33139
c467d13334ee configitems: add an official API for extensions to register config item
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 33111
diff changeset
    10
  > configtable = {}
c467d13334ee configitems: add an official API for extensions to register config item
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 33111
diff changeset
    11
  > configitem = registrar.configitem(configtable)
36488
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36302
diff changeset
    12
  > configitem(b'tests', b'foo', default=b"Foo")
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
    13
  > def uisetup(ui):
38535
b86664c81833 debug: process --debug flag earlier
Boris Feld <boris.feld@octobus.net>
parents: 38195
diff changeset
    14
  >     ui.debug(b"uisetup called [debug]\\n")
36488
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36302
diff changeset
    15
  >     ui.write(b"uisetup called\\n")
38535
b86664c81833 debug: process --debug flag earlier
Boris Feld <boris.feld@octobus.net>
parents: 38195
diff changeset
    16
  >     ui.status(b"uisetup called [status]\\n")
28612
6fb1d3c936d2 tests: explicitly flush output streams
Jun Wu <quark@fb.com>
parents: 27990
diff changeset
    17
  >     ui.flush()
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
    18
  > def reposetup(ui, repo):
36488
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36302
diff changeset
    19
  >     ui.write(b"reposetup called for %s\\n" % os.path.basename(repo.root))
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36302
diff changeset
    20
  >     ui.write(b"ui %s= repo.ui\\n" % (ui == repo.ui and b"=" or b"!"))
28612
6fb1d3c936d2 tests: explicitly flush output streams
Jun Wu <quark@fb.com>
parents: 27990
diff changeset
    21
  >     ui.flush()
36488
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36302
diff changeset
    22
  > @command(b'foo', [], b'hg foo')
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
    23
  > def foo(ui, *args, **kwargs):
36488
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36302
diff changeset
    24
  >     foo = ui.config(b'tests', b'foo')
33139
c467d13334ee configitems: add an official API for extensions to register config item
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 33111
diff changeset
    25
  >     ui.write(foo)
36488
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36302
diff changeset
    26
  >     ui.write(b"\\n")
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36302
diff changeset
    27
  > @command(b'bar', [], b'hg bar', norepo=True)
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
    28
  > def bar(ui, *args, **kwargs):
36488
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36302
diff changeset
    29
  >     ui.write(b"Bar\\n")
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
    30
  > EOF
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
    31
  $ abspath=`pwd`/foobar.py
4064
5d9ede002453 install reposetup hook right after loading the extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    32
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
    33
  $ mkdir barfoo
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
    34
  $ cp foobar.py barfoo/__init__.py
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
    35
  $ barfoopath=`pwd`/barfoo
4064
5d9ede002453 install reposetup hook right after loading the extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    36
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
    37
  $ hg init a
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
    38
  $ cd a
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
    39
  $ echo foo > file
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
    40
  $ hg add file
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
    41
  $ hg commit -m 'add file'
4064
5d9ede002453 install reposetup hook right after loading the extension
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    42
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
    43
  $ echo '[extensions]' >> $HGRCPATH
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
    44
  $ echo "foobar = $abspath" >> $HGRCPATH
39524
a5d6bf6032fb extensions: add timing for extensions reposetup
Boris Feld <boris.feld@octobus.net>
parents: 39249
diff changeset
    45
41006
6f2510b581a0 extensions: use ui.log() interface to provide detailed loading information
Yuya Nishihara <yuya@tcha.org>
parents: 40505
diff changeset
    46
  $ filterlog () {
6f2510b581a0 extensions: use ui.log() interface to provide detailed loading information
Yuya Nishihara <yuya@tcha.org>
parents: 40505
diff changeset
    47
  >   sed -e 's!^[0-9/]* [0-9:]* ([0-9]*)>!YYYY/MM/DD HH:MM:SS (PID)>!'
6f2510b581a0 extensions: use ui.log() interface to provide detailed loading information
Yuya Nishihara <yuya@tcha.org>
parents: 40505
diff changeset
    48
  > }
6f2510b581a0 extensions: use ui.log() interface to provide detailed loading information
Yuya Nishihara <yuya@tcha.org>
parents: 40505
diff changeset
    49
39524
a5d6bf6032fb extensions: add timing for extensions reposetup
Boris Feld <boris.feld@octobus.net>
parents: 39249
diff changeset
    50
Test extension setup timings
a5d6bf6032fb extensions: add timing for extensions reposetup
Boris Feld <boris.feld@octobus.net>
parents: 39249
diff changeset
    51
41006
6f2510b581a0 extensions: use ui.log() interface to provide detailed loading information
Yuya Nishihara <yuya@tcha.org>
parents: 40505
diff changeset
    52
  $ hg foo --traceback --config devel.debug.extensions=yes --debug 2>&1 | filterlog
6f2510b581a0 extensions: use ui.log() interface to provide detailed loading information
Yuya Nishihara <yuya@tcha.org>
parents: 40505
diff changeset
    53
  YYYY/MM/DD HH:MM:SS (PID)> loading extensions
6f2510b581a0 extensions: use ui.log() interface to provide detailed loading information
Yuya Nishihara <yuya@tcha.org>
parents: 40505
diff changeset
    54
  YYYY/MM/DD HH:MM:SS (PID)> - processing 1 entries
6f2510b581a0 extensions: use ui.log() interface to provide detailed loading information
Yuya Nishihara <yuya@tcha.org>
parents: 40505
diff changeset
    55
  YYYY/MM/DD HH:MM:SS (PID)>   - loading extension: foobar
6f2510b581a0 extensions: use ui.log() interface to provide detailed loading information
Yuya Nishihara <yuya@tcha.org>
parents: 40505
diff changeset
    56
  YYYY/MM/DD HH:MM:SS (PID)>   > foobar extension loaded in * (glob)
6f2510b581a0 extensions: use ui.log() interface to provide detailed loading information
Yuya Nishihara <yuya@tcha.org>
parents: 40505
diff changeset
    57
  YYYY/MM/DD HH:MM:SS (PID)>     - validating extension tables: foobar
6f2510b581a0 extensions: use ui.log() interface to provide detailed loading information
Yuya Nishihara <yuya@tcha.org>
parents: 40505
diff changeset
    58
  YYYY/MM/DD HH:MM:SS (PID)>     - invoking registered callbacks: foobar
6f2510b581a0 extensions: use ui.log() interface to provide detailed loading information
Yuya Nishihara <yuya@tcha.org>
parents: 40505
diff changeset
    59
  YYYY/MM/DD HH:MM:SS (PID)>     > callbacks completed in * (glob)
6f2510b581a0 extensions: use ui.log() interface to provide detailed loading information
Yuya Nishihara <yuya@tcha.org>
parents: 40505
diff changeset
    60
  YYYY/MM/DD HH:MM:SS (PID)> > loaded 1 extensions, total time * (glob)
6f2510b581a0 extensions: use ui.log() interface to provide detailed loading information
Yuya Nishihara <yuya@tcha.org>
parents: 40505
diff changeset
    61
  YYYY/MM/DD HH:MM:SS (PID)> - loading configtable attributes
6f2510b581a0 extensions: use ui.log() interface to provide detailed loading information
Yuya Nishihara <yuya@tcha.org>
parents: 40505
diff changeset
    62
  YYYY/MM/DD HH:MM:SS (PID)> - executing uisetup hooks
6f2510b581a0 extensions: use ui.log() interface to provide detailed loading information
Yuya Nishihara <yuya@tcha.org>
parents: 40505
diff changeset
    63
  YYYY/MM/DD HH:MM:SS (PID)>   - running uisetup for foobar
39524
a5d6bf6032fb extensions: add timing for extensions reposetup
Boris Feld <boris.feld@octobus.net>
parents: 39249
diff changeset
    64
  uisetup called [debug]
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
    65
  uisetup called
38535
b86664c81833 debug: process --debug flag earlier
Boris Feld <boris.feld@octobus.net>
parents: 38195
diff changeset
    66
  uisetup called [status]
41006
6f2510b581a0 extensions: use ui.log() interface to provide detailed loading information
Yuya Nishihara <yuya@tcha.org>
parents: 40505
diff changeset
    67
  YYYY/MM/DD HH:MM:SS (PID)>   > uisetup for foobar took * (glob)
6f2510b581a0 extensions: use ui.log() interface to provide detailed loading information
Yuya Nishihara <yuya@tcha.org>
parents: 40505
diff changeset
    68
  YYYY/MM/DD HH:MM:SS (PID)> > all uisetup took * (glob)
6f2510b581a0 extensions: use ui.log() interface to provide detailed loading information
Yuya Nishihara <yuya@tcha.org>
parents: 40505
diff changeset
    69
  YYYY/MM/DD HH:MM:SS (PID)> - executing extsetup hooks
6f2510b581a0 extensions: use ui.log() interface to provide detailed loading information
Yuya Nishihara <yuya@tcha.org>
parents: 40505
diff changeset
    70
  YYYY/MM/DD HH:MM:SS (PID)>   - running extsetup for foobar
6f2510b581a0 extensions: use ui.log() interface to provide detailed loading information
Yuya Nishihara <yuya@tcha.org>
parents: 40505
diff changeset
    71
  YYYY/MM/DD HH:MM:SS (PID)>   > extsetup for foobar took * (glob)
6f2510b581a0 extensions: use ui.log() interface to provide detailed loading information
Yuya Nishihara <yuya@tcha.org>
parents: 40505
diff changeset
    72
  YYYY/MM/DD HH:MM:SS (PID)> > all extsetup took * (glob)
6f2510b581a0 extensions: use ui.log() interface to provide detailed loading information
Yuya Nishihara <yuya@tcha.org>
parents: 40505
diff changeset
    73
  YYYY/MM/DD HH:MM:SS (PID)> - executing remaining aftercallbacks
6f2510b581a0 extensions: use ui.log() interface to provide detailed loading information
Yuya Nishihara <yuya@tcha.org>
parents: 40505
diff changeset
    74
  YYYY/MM/DD HH:MM:SS (PID)> > remaining aftercallbacks completed in * (glob)
6f2510b581a0 extensions: use ui.log() interface to provide detailed loading information
Yuya Nishihara <yuya@tcha.org>
parents: 40505
diff changeset
    75
  YYYY/MM/DD HH:MM:SS (PID)> - loading extension registration objects
6f2510b581a0 extensions: use ui.log() interface to provide detailed loading information
Yuya Nishihara <yuya@tcha.org>
parents: 40505
diff changeset
    76
  YYYY/MM/DD HH:MM:SS (PID)> > extension registration object loading took * (glob)
6f2510b581a0 extensions: use ui.log() interface to provide detailed loading information
Yuya Nishihara <yuya@tcha.org>
parents: 40505
diff changeset
    77
  YYYY/MM/DD HH:MM:SS (PID)> > extension foobar take a total of * to load (glob)
6f2510b581a0 extensions: use ui.log() interface to provide detailed loading information
Yuya Nishihara <yuya@tcha.org>
parents: 40505
diff changeset
    78
  YYYY/MM/DD HH:MM:SS (PID)> extension loading complete
6f2510b581a0 extensions: use ui.log() interface to provide detailed loading information
Yuya Nishihara <yuya@tcha.org>
parents: 40505
diff changeset
    79
  YYYY/MM/DD HH:MM:SS (PID)> loading additional extensions
6f2510b581a0 extensions: use ui.log() interface to provide detailed loading information
Yuya Nishihara <yuya@tcha.org>
parents: 40505
diff changeset
    80
  YYYY/MM/DD HH:MM:SS (PID)> - processing 1 entries
6f2510b581a0 extensions: use ui.log() interface to provide detailed loading information
Yuya Nishihara <yuya@tcha.org>
parents: 40505
diff changeset
    81
  YYYY/MM/DD HH:MM:SS (PID)> > loaded 0 extensions, total time * (glob)
6f2510b581a0 extensions: use ui.log() interface to provide detailed loading information
Yuya Nishihara <yuya@tcha.org>
parents: 40505
diff changeset
    82
  YYYY/MM/DD HH:MM:SS (PID)> - loading configtable attributes
6f2510b581a0 extensions: use ui.log() interface to provide detailed loading information
Yuya Nishihara <yuya@tcha.org>
parents: 40505
diff changeset
    83
  YYYY/MM/DD HH:MM:SS (PID)> - executing uisetup hooks
6f2510b581a0 extensions: use ui.log() interface to provide detailed loading information
Yuya Nishihara <yuya@tcha.org>
parents: 40505
diff changeset
    84
  YYYY/MM/DD HH:MM:SS (PID)> > all uisetup took * (glob)
6f2510b581a0 extensions: use ui.log() interface to provide detailed loading information
Yuya Nishihara <yuya@tcha.org>
parents: 40505
diff changeset
    85
  YYYY/MM/DD HH:MM:SS (PID)> - executing extsetup hooks
6f2510b581a0 extensions: use ui.log() interface to provide detailed loading information
Yuya Nishihara <yuya@tcha.org>
parents: 40505
diff changeset
    86
  YYYY/MM/DD HH:MM:SS (PID)> > all extsetup took * (glob)
6f2510b581a0 extensions: use ui.log() interface to provide detailed loading information
Yuya Nishihara <yuya@tcha.org>
parents: 40505
diff changeset
    87
  YYYY/MM/DD HH:MM:SS (PID)> - executing remaining aftercallbacks
6f2510b581a0 extensions: use ui.log() interface to provide detailed loading information
Yuya Nishihara <yuya@tcha.org>
parents: 40505
diff changeset
    88
  YYYY/MM/DD HH:MM:SS (PID)> > remaining aftercallbacks completed in * (glob)
6f2510b581a0 extensions: use ui.log() interface to provide detailed loading information
Yuya Nishihara <yuya@tcha.org>
parents: 40505
diff changeset
    89
  YYYY/MM/DD HH:MM:SS (PID)> - loading extension registration objects
6f2510b581a0 extensions: use ui.log() interface to provide detailed loading information
Yuya Nishihara <yuya@tcha.org>
parents: 40505
diff changeset
    90
  YYYY/MM/DD HH:MM:SS (PID)> > extension registration object loading took * (glob)
6f2510b581a0 extensions: use ui.log() interface to provide detailed loading information
Yuya Nishihara <yuya@tcha.org>
parents: 40505
diff changeset
    91
  YYYY/MM/DD HH:MM:SS (PID)> extension loading complete
6f2510b581a0 extensions: use ui.log() interface to provide detailed loading information
Yuya Nishihara <yuya@tcha.org>
parents: 40505
diff changeset
    92
  YYYY/MM/DD HH:MM:SS (PID)> - executing reposetup hooks
6f2510b581a0 extensions: use ui.log() interface to provide detailed loading information
Yuya Nishihara <yuya@tcha.org>
parents: 40505
diff changeset
    93
  YYYY/MM/DD HH:MM:SS (PID)>   - running reposetup for foobar
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
    94
  reposetup called for a
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
    95
  ui == repo.ui
41006
6f2510b581a0 extensions: use ui.log() interface to provide detailed loading information
Yuya Nishihara <yuya@tcha.org>
parents: 40505
diff changeset
    96
  YYYY/MM/DD HH:MM:SS (PID)>   > reposetup for foobar took * (glob)
6f2510b581a0 extensions: use ui.log() interface to provide detailed loading information
Yuya Nishihara <yuya@tcha.org>
parents: 40505
diff changeset
    97
  YYYY/MM/DD HH:MM:SS (PID)> > all reposetup took * (glob)
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
    98
  Foo
33957
9d5d040160e6 tests: move baduisetup test inside "#if demandimport"
Martin von Zweigbergk <martinvonz@google.com>
parents: 33762
diff changeset
    99
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
   100
  $ cd ..
9661
c4f6c02e33c4 hgweb: added test case for extension loading phases (issue1824)
Yuya Nishihara <yuya@tcha.org>
parents: 9410
diff changeset
   101
39524
a5d6bf6032fb extensions: add timing for extensions reposetup
Boris Feld <boris.feld@octobus.net>
parents: 39249
diff changeset
   102
  $ echo 'foobar = !' >> $HGRCPATH