annotate tests/test-extension-timing.t @ 49603:3eda36e9b3d6 stable

matcher: fix issues regex flag contained in pattern (issue6759) Python 3.11 is now enforcing that flag must be at the beginning of the regex This creates a serious regression for people using Python 3.11 with an hgignore using flag in a "relre" pattern. We now detect any flags in such pattern and "prepend" our ".*" pattern after them. In addition, we now insert the flag in the regexp to only affect the pattern we are rewriting. Otherwise, the regex built from the combined pattern would these flags in the middle of it anyway. As a side effect of this last change, we fix a bug… before this change regex flag in a pattern would affect all combined patterns. That was bad and is not longer the case. The Rust code needs to be updated to fix that very bug, but we will do it in another changeset.
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Wed, 16 Nov 2022 13:05:01 +0100
parents 8cab8db59b6c
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
44619
8cab8db59b6c tests: don't run couple of tests related to extensions loading with chg
Pulkit Goyal <7895pulkit@gmail.com>
parents: 40996
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: 40996
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
32337
46ba2cdda476 registrar: move cmdutil.command to registrar module (API)
Yuya Nishihara <yuya@tcha.org>
parents: 31187
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 = {}
32337
46ba2cdda476 registrar: move cmdutil.command to registrar module (API)
Yuya Nishihara <yuya@tcha.org>
parents: 31187
diff changeset
9 > command = registrar.command(cmdtable)
33132
c467d13334ee configitems: add an official API for extensions to register config item
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 33099
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: 33099
diff changeset
11 > configitem = registrar.configitem(configtable)
36458
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36269
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):
38534
b86664c81833 debug: process --debug flag earlier
Boris Feld <boris.feld@octobus.net>
parents: 38162
diff changeset
14 > ui.debug(b"uisetup called [debug]\\n")
36458
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36269
diff changeset
15 > ui.write(b"uisetup called\\n")
38534
b86664c81833 debug: process --debug flag earlier
Boris Feld <boris.feld@octobus.net>
parents: 38162
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):
36458
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36269
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: 36269
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()
36458
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36269
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):
36458
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36269
diff changeset
24 > foo = ui.config(b'tests', b'foo')
33132
c467d13334ee configitems: add an official API for extensions to register config item
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 33099
diff changeset
25 > ui.write(foo)
36458
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36269
diff changeset
26 > ui.write(b"\\n")
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36269
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):
36458
2218f5bfafca py3: add b'' prefixes in tests/test-extension.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36269
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
39507
a5d6bf6032fb extensions: add timing for extensions reposetup
Boris Feld <boris.feld@octobus.net>
parents: 39221
diff changeset
45
40996
6f2510b581a0 extensions: use ui.log() interface to provide detailed loading information
Yuya Nishihara <yuya@tcha.org>
parents: 40440
diff changeset
46 $ filterlog () {
6f2510b581a0 extensions: use ui.log() interface to provide detailed loading information
Yuya Nishihara <yuya@tcha.org>
parents: 40440
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: 40440
diff changeset
48 > }
6f2510b581a0 extensions: use ui.log() interface to provide detailed loading information
Yuya Nishihara <yuya@tcha.org>
parents: 40440
diff changeset
49
39507
a5d6bf6032fb extensions: add timing for extensions reposetup
Boris Feld <boris.feld@octobus.net>
parents: 39221
diff changeset
50 Test extension setup timings
a5d6bf6032fb extensions: add timing for extensions reposetup
Boris Feld <boris.feld@octobus.net>
parents: 39221
diff changeset
51
40996
6f2510b581a0 extensions: use ui.log() interface to provide detailed loading information
Yuya Nishihara <yuya@tcha.org>
parents: 40440
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: 40440
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: 40440
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: 40440
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: 40440
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: 40440
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: 40440
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: 40440
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: 40440
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: 40440
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: 40440
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: 40440
diff changeset
63 YYYY/MM/DD HH:MM:SS (PID)> - running uisetup for foobar
39507
a5d6bf6032fb extensions: add timing for extensions reposetup
Boris Feld <boris.feld@octobus.net>
parents: 39221
diff changeset
64 uisetup called [debug]
12191
56c74b2df53d tests: unify test-extension
Adrian Buehlmann <adrian@cadifra.com>
parents: 11070
diff changeset
65 uisetup called
38534
b86664c81833 debug: process --debug flag earlier
Boris Feld <boris.feld@octobus.net>
parents: 38162
diff changeset
66 uisetup called [status]
40996
6f2510b581a0 extensions: use ui.log() interface to provide detailed loading information
Yuya Nishihara <yuya@tcha.org>
parents: 40440
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: 40440
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: 40440
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: 40440
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: 40440
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: 40440
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: 40440
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: 40440
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: 40440
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: 40440
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: 40440
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: 40440
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: 40440
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: 40440
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: 40440
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: 40440
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: 40440
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: 40440
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: 40440
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: 40440
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: 40440
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: 40440
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: 40440
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: 40440
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: 40440
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: 40440
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: 40440
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
40996
6f2510b581a0 extensions: use ui.log() interface to provide detailed loading information
Yuya Nishihara <yuya@tcha.org>
parents: 40440
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: 40440
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
33939
9d5d040160e6 tests: move baduisetup test inside "#if demandimport"
Martin von Zweigbergk <martinvonz@google.com>
parents: 33736
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
39507
a5d6bf6032fb extensions: add timing for extensions reposetup
Boris Feld <boris.feld@octobus.net>
parents: 39221
diff changeset
102 $ echo 'foobar = !' >> $HGRCPATH