Mercurial > hg
annotate tests/test-debugextensions.t @ 32383:f928d53b687c stable
dispatch: setup color before pager for correct console information on windows
Before this patch, "hg CMD --pager on" on Windows shows output
unintentionally decorated with ANSI color escape sequences, if color
mode is "auto". This issue occurs in steps below.
1. dispatch() invokes ui.pager() at detection of "--pager on"
2. stdout of hg process is redirected into stdin of pager process
3. "ui.formatted" = True, because isatty(stdout) is so before (2)
4. color module is loaded for colorization
5. color.w32effects = None, because GetConsoleScreenBufferInfo()
fails on stdout redirected at (2)
6. "ansi" color mode is chosen, because of "not w32effects"
7. output is colorized in "ansi" mode because of "ui.formatted" = True
Even if "ansi" color mode is chosen, ordinarily redirected stdout
makes ui.formatted() return False, and colorization is avoided. But in
this issue case, "ui.formatted" = True at (3) forces output to be
colorized.
For correct console information on win32, it is needed to ensure that
color module is loaded before redirection of stdout for pagination.
BTW, if any of enabled extensions has "colortable" attribute, this
issue is avoided even before this patch, because color module is
imported as a part of loading such extension, and extension loading
occurs before setting up pager. For example, mq and keyword have
"colortable".
author | FUJIWARA Katsunori <foozy@lares.dti.ne.jp> |
---|---|
date | Tue, 23 May 2017 03:29:23 +0900 |
parents | 4c28ddda5d48 |
children | a543d17dce03 |
rev | line source |
---|---|
26351
8c7d8d5e1e0f
mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents:
diff
changeset
|
1 $ hg debugextensions |
8c7d8d5e1e0f
mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents:
diff
changeset
|
2 |
8c7d8d5e1e0f
mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents:
diff
changeset
|
3 $ debugpath=`pwd`/extwithoutinfos.py |
8c7d8d5e1e0f
mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents:
diff
changeset
|
4 |
8c7d8d5e1e0f
mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents:
diff
changeset
|
5 $ cat > extwithoutinfos.py <<EOF |
8c7d8d5e1e0f
mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents:
diff
changeset
|
6 > EOF |
29891
ca6940515485
test-debugextensions: add dummy extension to make ifcontains() test more solid
Yuya Nishihara <yuya@tcha.org>
parents:
29703
diff
changeset
|
7 $ cat > extwithinfos.py <<EOF |
ca6940515485
test-debugextensions: add dummy extension to make ifcontains() test more solid
Yuya Nishihara <yuya@tcha.org>
parents:
29703
diff
changeset
|
8 > testedwith = '3.0 3.1 3.2.1' |
ca6940515485
test-debugextensions: add dummy extension to make ifcontains() test more solid
Yuya Nishihara <yuya@tcha.org>
parents:
29703
diff
changeset
|
9 > buglink = 'https://example.org/bts' |
ca6940515485
test-debugextensions: add dummy extension to make ifcontains() test more solid
Yuya Nishihara <yuya@tcha.org>
parents:
29703
diff
changeset
|
10 > EOF |
26351
8c7d8d5e1e0f
mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents:
diff
changeset
|
11 |
8c7d8d5e1e0f
mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents:
diff
changeset
|
12 $ cat >> $HGRCPATH <<EOF |
8c7d8d5e1e0f
mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents:
diff
changeset
|
13 > [extensions] |
8c7d8d5e1e0f
mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents:
diff
changeset
|
14 > color= |
8c7d8d5e1e0f
mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents:
diff
changeset
|
15 > histedit= |
8c7d8d5e1e0f
mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents:
diff
changeset
|
16 > patchbomb= |
8c7d8d5e1e0f
mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents:
diff
changeset
|
17 > rebase= |
8c7d8d5e1e0f
mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents:
diff
changeset
|
18 > mq= |
8c7d8d5e1e0f
mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents:
diff
changeset
|
19 > ext1 = $debugpath |
29891
ca6940515485
test-debugextensions: add dummy extension to make ifcontains() test more solid
Yuya Nishihara <yuya@tcha.org>
parents:
29703
diff
changeset
|
20 > ext2 = `pwd`/extwithinfos.py |
26351
8c7d8d5e1e0f
mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents:
diff
changeset
|
21 > EOF |
8c7d8d5e1e0f
mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents:
diff
changeset
|
22 |
8c7d8d5e1e0f
mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents:
diff
changeset
|
23 $ hg debugextensions |
8c7d8d5e1e0f
mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents:
diff
changeset
|
24 color |
8c7d8d5e1e0f
mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents:
diff
changeset
|
25 ext1 (untested!) |
29891
ca6940515485
test-debugextensions: add dummy extension to make ifcontains() test more solid
Yuya Nishihara <yuya@tcha.org>
parents:
29703
diff
changeset
|
26 ext2 (3.2.1!) |
26351
8c7d8d5e1e0f
mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents:
diff
changeset
|
27 histedit |
8c7d8d5e1e0f
mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents:
diff
changeset
|
28 mq |
8c7d8d5e1e0f
mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents:
diff
changeset
|
29 patchbomb |
8c7d8d5e1e0f
mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents:
diff
changeset
|
30 rebase |
8c7d8d5e1e0f
mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents:
diff
changeset
|
31 |
8c7d8d5e1e0f
mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents:
diff
changeset
|
32 $ hg debugextensions -v |
8c7d8d5e1e0f
mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents:
diff
changeset
|
33 color |
28615
a6573503342d
test-debugextensions: passes with byte-compilation disabled (issue5147)
Kevin Bullock <kbullock@ringworld.org>
parents:
26430
diff
changeset
|
34 location: */hgext/color.py* (glob) |
29892
b64eaf947632
debugextensions: show ships-with-hg-core state as a separate field
Yuya Nishihara <yuya@tcha.org>
parents:
29891
diff
changeset
|
35 bundled: yes |
26351
8c7d8d5e1e0f
mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents:
diff
changeset
|
36 ext1 |
28615
a6573503342d
test-debugextensions: passes with byte-compilation disabled (issue5147)
Kevin Bullock <kbullock@ringworld.org>
parents:
26430
diff
changeset
|
37 location: */extwithoutinfos.py* (glob) |
29892
b64eaf947632
debugextensions: show ships-with-hg-core state as a separate field
Yuya Nishihara <yuya@tcha.org>
parents:
29891
diff
changeset
|
38 bundled: no |
29891
ca6940515485
test-debugextensions: add dummy extension to make ifcontains() test more solid
Yuya Nishihara <yuya@tcha.org>
parents:
29703
diff
changeset
|
39 ext2 |
ca6940515485
test-debugextensions: add dummy extension to make ifcontains() test more solid
Yuya Nishihara <yuya@tcha.org>
parents:
29703
diff
changeset
|
40 location: */extwithinfos.py* (glob) |
29892
b64eaf947632
debugextensions: show ships-with-hg-core state as a separate field
Yuya Nishihara <yuya@tcha.org>
parents:
29891
diff
changeset
|
41 bundled: no |
29891
ca6940515485
test-debugextensions: add dummy extension to make ifcontains() test more solid
Yuya Nishihara <yuya@tcha.org>
parents:
29703
diff
changeset
|
42 tested with: 3.0 3.1 3.2.1 |
ca6940515485
test-debugextensions: add dummy extension to make ifcontains() test more solid
Yuya Nishihara <yuya@tcha.org>
parents:
29703
diff
changeset
|
43 bug reporting: https://example.org/bts |
26351
8c7d8d5e1e0f
mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents:
diff
changeset
|
44 histedit |
28615
a6573503342d
test-debugextensions: passes with byte-compilation disabled (issue5147)
Kevin Bullock <kbullock@ringworld.org>
parents:
26430
diff
changeset
|
45 location: */hgext/histedit.py* (glob) |
29892
b64eaf947632
debugextensions: show ships-with-hg-core state as a separate field
Yuya Nishihara <yuya@tcha.org>
parents:
29891
diff
changeset
|
46 bundled: yes |
26351
8c7d8d5e1e0f
mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents:
diff
changeset
|
47 mq |
28615
a6573503342d
test-debugextensions: passes with byte-compilation disabled (issue5147)
Kevin Bullock <kbullock@ringworld.org>
parents:
26430
diff
changeset
|
48 location: */hgext/mq.py* (glob) |
29892
b64eaf947632
debugextensions: show ships-with-hg-core state as a separate field
Yuya Nishihara <yuya@tcha.org>
parents:
29891
diff
changeset
|
49 bundled: yes |
26351
8c7d8d5e1e0f
mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents:
diff
changeset
|
50 patchbomb |
28615
a6573503342d
test-debugextensions: passes with byte-compilation disabled (issue5147)
Kevin Bullock <kbullock@ringworld.org>
parents:
26430
diff
changeset
|
51 location: */hgext/patchbomb.py* (glob) |
29892
b64eaf947632
debugextensions: show ships-with-hg-core state as a separate field
Yuya Nishihara <yuya@tcha.org>
parents:
29891
diff
changeset
|
52 bundled: yes |
26351
8c7d8d5e1e0f
mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents:
diff
changeset
|
53 rebase |
28615
a6573503342d
test-debugextensions: passes with byte-compilation disabled (issue5147)
Kevin Bullock <kbullock@ringworld.org>
parents:
26430
diff
changeset
|
54 location: */hgext/rebase.py* (glob) |
29892
b64eaf947632
debugextensions: show ships-with-hg-core state as a separate field
Yuya Nishihara <yuya@tcha.org>
parents:
29891
diff
changeset
|
55 bundled: yes |
26351
8c7d8d5e1e0f
mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents:
diff
changeset
|
56 |
26430
1f8208a7277e
test-debugextensions: sanitize JSON output for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents:
26351
diff
changeset
|
57 $ hg debugextensions -Tjson | sed 's|\\\\|/|g' |
26351
8c7d8d5e1e0f
mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents:
diff
changeset
|
58 [ |
8c7d8d5e1e0f
mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents:
diff
changeset
|
59 { |
8c7d8d5e1e0f
mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents:
diff
changeset
|
60 "buglink": "", |
29892
b64eaf947632
debugextensions: show ships-with-hg-core state as a separate field
Yuya Nishihara <yuya@tcha.org>
parents:
29891
diff
changeset
|
61 "bundled": true, |
26351
8c7d8d5e1e0f
mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents:
diff
changeset
|
62 "name": "color", |
28615
a6573503342d
test-debugextensions: passes with byte-compilation disabled (issue5147)
Kevin Bullock <kbullock@ringworld.org>
parents:
26430
diff
changeset
|
63 "source": "*/hgext/color.py*", (glob) |
29893
4c28ddda5d48
debugextensions: hide "ships-with-hg-core" magic string (BC)
Yuya Nishihara <yuya@tcha.org>
parents:
29892
diff
changeset
|
64 "testedwith": [] |
26351
8c7d8d5e1e0f
mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents:
diff
changeset
|
65 }, |
8c7d8d5e1e0f
mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents:
diff
changeset
|
66 { |
8c7d8d5e1e0f
mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents:
diff
changeset
|
67 "buglink": "", |
29892
b64eaf947632
debugextensions: show ships-with-hg-core state as a separate field
Yuya Nishihara <yuya@tcha.org>
parents:
29891
diff
changeset
|
68 "bundled": false, |
26351
8c7d8d5e1e0f
mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents:
diff
changeset
|
69 "name": "ext1", |
28615
a6573503342d
test-debugextensions: passes with byte-compilation disabled (issue5147)
Kevin Bullock <kbullock@ringworld.org>
parents:
26430
diff
changeset
|
70 "source": "*/extwithoutinfos.py*", (glob) |
29703
3ef9aa7ad1fc
debugextension: change "testedwith" to a list (BC)
Yuya Nishihara <yuya@tcha.org>
parents:
28615
diff
changeset
|
71 "testedwith": [] |
26351
8c7d8d5e1e0f
mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents:
diff
changeset
|
72 }, |
8c7d8d5e1e0f
mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents:
diff
changeset
|
73 { |
29891
ca6940515485
test-debugextensions: add dummy extension to make ifcontains() test more solid
Yuya Nishihara <yuya@tcha.org>
parents:
29703
diff
changeset
|
74 "buglink": "https://example.org/bts", |
29892
b64eaf947632
debugextensions: show ships-with-hg-core state as a separate field
Yuya Nishihara <yuya@tcha.org>
parents:
29891
diff
changeset
|
75 "bundled": false, |
29891
ca6940515485
test-debugextensions: add dummy extension to make ifcontains() test more solid
Yuya Nishihara <yuya@tcha.org>
parents:
29703
diff
changeset
|
76 "name": "ext2", |
ca6940515485
test-debugextensions: add dummy extension to make ifcontains() test more solid
Yuya Nishihara <yuya@tcha.org>
parents:
29703
diff
changeset
|
77 "source": "*/extwithinfos.py*", (glob) |
ca6940515485
test-debugextensions: add dummy extension to make ifcontains() test more solid
Yuya Nishihara <yuya@tcha.org>
parents:
29703
diff
changeset
|
78 "testedwith": ["3.0", "3.1", "3.2.1"] |
ca6940515485
test-debugextensions: add dummy extension to make ifcontains() test more solid
Yuya Nishihara <yuya@tcha.org>
parents:
29703
diff
changeset
|
79 }, |
ca6940515485
test-debugextensions: add dummy extension to make ifcontains() test more solid
Yuya Nishihara <yuya@tcha.org>
parents:
29703
diff
changeset
|
80 { |
26351
8c7d8d5e1e0f
mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents:
diff
changeset
|
81 "buglink": "", |
29892
b64eaf947632
debugextensions: show ships-with-hg-core state as a separate field
Yuya Nishihara <yuya@tcha.org>
parents:
29891
diff
changeset
|
82 "bundled": true, |
26351
8c7d8d5e1e0f
mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents:
diff
changeset
|
83 "name": "histedit", |
28615
a6573503342d
test-debugextensions: passes with byte-compilation disabled (issue5147)
Kevin Bullock <kbullock@ringworld.org>
parents:
26430
diff
changeset
|
84 "source": "*/hgext/histedit.py*", (glob) |
29893
4c28ddda5d48
debugextensions: hide "ships-with-hg-core" magic string (BC)
Yuya Nishihara <yuya@tcha.org>
parents:
29892
diff
changeset
|
85 "testedwith": [] |
26351
8c7d8d5e1e0f
mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents:
diff
changeset
|
86 }, |
8c7d8d5e1e0f
mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents:
diff
changeset
|
87 { |
8c7d8d5e1e0f
mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents:
diff
changeset
|
88 "buglink": "", |
29892
b64eaf947632
debugextensions: show ships-with-hg-core state as a separate field
Yuya Nishihara <yuya@tcha.org>
parents:
29891
diff
changeset
|
89 "bundled": true, |
26351
8c7d8d5e1e0f
mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents:
diff
changeset
|
90 "name": "mq", |
28615
a6573503342d
test-debugextensions: passes with byte-compilation disabled (issue5147)
Kevin Bullock <kbullock@ringworld.org>
parents:
26430
diff
changeset
|
91 "source": "*/hgext/mq.py*", (glob) |
29893
4c28ddda5d48
debugextensions: hide "ships-with-hg-core" magic string (BC)
Yuya Nishihara <yuya@tcha.org>
parents:
29892
diff
changeset
|
92 "testedwith": [] |
26351
8c7d8d5e1e0f
mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents:
diff
changeset
|
93 }, |
8c7d8d5e1e0f
mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents:
diff
changeset
|
94 { |
8c7d8d5e1e0f
mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents:
diff
changeset
|
95 "buglink": "", |
29892
b64eaf947632
debugextensions: show ships-with-hg-core state as a separate field
Yuya Nishihara <yuya@tcha.org>
parents:
29891
diff
changeset
|
96 "bundled": true, |
26351
8c7d8d5e1e0f
mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents:
diff
changeset
|
97 "name": "patchbomb", |
28615
a6573503342d
test-debugextensions: passes with byte-compilation disabled (issue5147)
Kevin Bullock <kbullock@ringworld.org>
parents:
26430
diff
changeset
|
98 "source": "*/hgext/patchbomb.py*", (glob) |
29893
4c28ddda5d48
debugextensions: hide "ships-with-hg-core" magic string (BC)
Yuya Nishihara <yuya@tcha.org>
parents:
29892
diff
changeset
|
99 "testedwith": [] |
26351
8c7d8d5e1e0f
mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents:
diff
changeset
|
100 }, |
8c7d8d5e1e0f
mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents:
diff
changeset
|
101 { |
8c7d8d5e1e0f
mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents:
diff
changeset
|
102 "buglink": "", |
29892
b64eaf947632
debugextensions: show ships-with-hg-core state as a separate field
Yuya Nishihara <yuya@tcha.org>
parents:
29891
diff
changeset
|
103 "bundled": true, |
26351
8c7d8d5e1e0f
mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents:
diff
changeset
|
104 "name": "rebase", |
28615
a6573503342d
test-debugextensions: passes with byte-compilation disabled (issue5147)
Kevin Bullock <kbullock@ringworld.org>
parents:
26430
diff
changeset
|
105 "source": "*/hgext/rebase.py*", (glob) |
29893
4c28ddda5d48
debugextensions: hide "ships-with-hg-core" magic string (BC)
Yuya Nishihara <yuya@tcha.org>
parents:
29892
diff
changeset
|
106 "testedwith": [] |
26351
8c7d8d5e1e0f
mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents:
diff
changeset
|
107 } |
8c7d8d5e1e0f
mercurial: add debugextensions command (issue4676)
liscju <piotr.listkiewicz@gmail.com>
parents:
diff
changeset
|
108 ] |
29703
3ef9aa7ad1fc
debugextension: change "testedwith" to a list (BC)
Yuya Nishihara <yuya@tcha.org>
parents:
28615
diff
changeset
|
109 |
29891
ca6940515485
test-debugextensions: add dummy extension to make ifcontains() test more solid
Yuya Nishihara <yuya@tcha.org>
parents:
29703
diff
changeset
|
110 $ hg debugextensions -T '{ifcontains("3.1", testedwith, "{name}\n")}' |
ca6940515485
test-debugextensions: add dummy extension to make ifcontains() test more solid
Yuya Nishihara <yuya@tcha.org>
parents:
29703
diff
changeset
|
111 ext2 |
ca6940515485
test-debugextensions: add dummy extension to make ifcontains() test more solid
Yuya Nishihara <yuya@tcha.org>
parents:
29703
diff
changeset
|
112 $ hg debugextensions \ |
ca6940515485
test-debugextensions: add dummy extension to make ifcontains() test more solid
Yuya Nishihara <yuya@tcha.org>
parents:
29703
diff
changeset
|
113 > -T '{ifcontains("3.2", testedwith, "no substring match: {name}\n")}' |