Mercurial > hg
annotate tests/test-eolfilename.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 | 2fc86d92c4a9 |
children | 2def402bd16d |
rev | line source |
---|---|
22046
7a9cbb315d84
tests: replace exit 80 with #require
Matt Mackall <mpm@selenic.com>
parents:
17910
diff
changeset
|
1 #require eol-in-paths |
3607
f4c9bb4ad7b1
issue352: disallow '\n' and '\r' in filenames (dirstate and manifest)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff
changeset
|
2 |
26420
2fc86d92c4a9
urls: bulk-change BTS urls to new location
Matt Mackall <mpm@selenic.com>
parents:
23172
diff
changeset
|
3 https://bz.mercurial-scm.org/352 |
3607
f4c9bb4ad7b1
issue352: disallow '\n' and '\r' in filenames (dirstate and manifest)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff
changeset
|
4 |
12425
fcf55506c2f4
tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents:
10475
diff
changeset
|
5 test issue352 |
3607
f4c9bb4ad7b1
issue352: disallow '\n' and '\r' in filenames (dirstate and manifest)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff
changeset
|
6 |
12425
fcf55506c2f4
tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents:
10475
diff
changeset
|
7 $ hg init foo |
fcf55506c2f4
tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents:
10475
diff
changeset
|
8 $ cd foo |
fcf55506c2f4
tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents:
10475
diff
changeset
|
9 $ A=`printf 'he\rllo'` |
fcf55506c2f4
tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents:
10475
diff
changeset
|
10 $ echo foo > "$A" |
fcf55506c2f4
tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents:
10475
diff
changeset
|
11 $ hg add |
17742
405b6bd015df
run-tests: allow test output lines to be terminated with \r in addition to \n
Mads Kiilerich <mads@kiilerich.com>
parents:
16913
diff
changeset
|
12 adding he\r (no-eol) (esc) |
405b6bd015df
run-tests: allow test output lines to be terminated with \r in addition to \n
Mads Kiilerich <mads@kiilerich.com>
parents:
16913
diff
changeset
|
13 llo |
12425
fcf55506c2f4
tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents:
10475
diff
changeset
|
14 abort: '\n' and '\r' disallowed in filenames: 'he\rllo' |
fcf55506c2f4
tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents:
10475
diff
changeset
|
15 [255] |
fcf55506c2f4
tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents:
10475
diff
changeset
|
16 $ hg ci -A -m m |
17742
405b6bd015df
run-tests: allow test output lines to be terminated with \r in addition to \n
Mads Kiilerich <mads@kiilerich.com>
parents:
16913
diff
changeset
|
17 adding he\r (no-eol) (esc) |
405b6bd015df
run-tests: allow test output lines to be terminated with \r in addition to \n
Mads Kiilerich <mads@kiilerich.com>
parents:
16913
diff
changeset
|
18 llo |
12425
fcf55506c2f4
tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents:
10475
diff
changeset
|
19 abort: '\n' and '\r' disallowed in filenames: 'he\rllo' |
fcf55506c2f4
tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents:
10475
diff
changeset
|
20 [255] |
fcf55506c2f4
tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents:
10475
diff
changeset
|
21 $ rm "$A" |
fcf55506c2f4
tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents:
10475
diff
changeset
|
22 $ echo foo > "hell |
fcf55506c2f4
tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents:
10475
diff
changeset
|
23 > o" |
fcf55506c2f4
tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents:
10475
diff
changeset
|
24 $ hg add |
fcf55506c2f4
tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents:
10475
diff
changeset
|
25 adding hell |
fcf55506c2f4
tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents:
10475
diff
changeset
|
26 o |
fcf55506c2f4
tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents:
10475
diff
changeset
|
27 abort: '\n' and '\r' disallowed in filenames: 'hell\no' |
fcf55506c2f4
tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents:
10475
diff
changeset
|
28 [255] |
fcf55506c2f4
tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents:
10475
diff
changeset
|
29 $ hg ci -A -m m |
fcf55506c2f4
tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents:
10475
diff
changeset
|
30 adding hell |
fcf55506c2f4
tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents:
10475
diff
changeset
|
31 o |
fcf55506c2f4
tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents:
10475
diff
changeset
|
32 abort: '\n' and '\r' disallowed in filenames: 'hell\no' |
fcf55506c2f4
tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents:
10475
diff
changeset
|
33 [255] |
fcf55506c2f4
tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents:
10475
diff
changeset
|
34 $ echo foo > "$A" |
fcf55506c2f4
tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents:
10475
diff
changeset
|
35 $ hg debugwalk |
17742
405b6bd015df
run-tests: allow test output lines to be terminated with \r in addition to \n
Mads Kiilerich <mads@kiilerich.com>
parents:
16913
diff
changeset
|
36 f he\r (no-eol) (esc) |
405b6bd015df
run-tests: allow test output lines to be terminated with \r in addition to \n
Mads Kiilerich <mads@kiilerich.com>
parents:
16913
diff
changeset
|
37 llo he\r (no-eol) (esc) |
405b6bd015df
run-tests: allow test output lines to be terminated with \r in addition to \n
Mads Kiilerich <mads@kiilerich.com>
parents:
16913
diff
changeset
|
38 llo |
12425
fcf55506c2f4
tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents:
10475
diff
changeset
|
39 f hell |
fcf55506c2f4
tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents:
10475
diff
changeset
|
40 o hell |
fcf55506c2f4
tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents:
10475
diff
changeset
|
41 o |
10475
2253715fde97
color: don't crash on invalid status codes (issue2036)
Brodie Rao <me+hg@dackz.net>
parents:
8936
diff
changeset
|
42 |
13945
03f3ce7ca2a8
copy: do not copy file if name is disallowed anyway
Adrian Buehlmann <adrian@cadifra.com>
parents:
12942
diff
changeset
|
43 $ echo bla > quickfox |
03f3ce7ca2a8
copy: do not copy file if name is disallowed anyway
Adrian Buehlmann <adrian@cadifra.com>
parents:
12942
diff
changeset
|
44 $ hg add quickfox |
03f3ce7ca2a8
copy: do not copy file if name is disallowed anyway
Adrian Buehlmann <adrian@cadifra.com>
parents:
12942
diff
changeset
|
45 $ hg ci -m 2 |
03f3ce7ca2a8
copy: do not copy file if name is disallowed anyway
Adrian Buehlmann <adrian@cadifra.com>
parents:
12942
diff
changeset
|
46 $ A=`printf 'quick\rfox'` |
03f3ce7ca2a8
copy: do not copy file if name is disallowed anyway
Adrian Buehlmann <adrian@cadifra.com>
parents:
12942
diff
changeset
|
47 $ hg cp quickfox "$A" |
03f3ce7ca2a8
copy: do not copy file if name is disallowed anyway
Adrian Buehlmann <adrian@cadifra.com>
parents:
12942
diff
changeset
|
48 abort: '\n' and '\r' disallowed in filenames: 'quick\rfox' |
03f3ce7ca2a8
copy: do not copy file if name is disallowed anyway
Adrian Buehlmann <adrian@cadifra.com>
parents:
12942
diff
changeset
|
49 [255] |
03f3ce7ca2a8
copy: do not copy file if name is disallowed anyway
Adrian Buehlmann <adrian@cadifra.com>
parents:
12942
diff
changeset
|
50 $ hg mv quickfox "$A" |
03f3ce7ca2a8
copy: do not copy file if name is disallowed anyway
Adrian Buehlmann <adrian@cadifra.com>
parents:
12942
diff
changeset
|
51 abort: '\n' and '\r' disallowed in filenames: 'quick\rfox' |
03f3ce7ca2a8
copy: do not copy file if name is disallowed anyway
Adrian Buehlmann <adrian@cadifra.com>
parents:
12942
diff
changeset
|
52 [255] |
03f3ce7ca2a8
copy: do not copy file if name is disallowed anyway
Adrian Buehlmann <adrian@cadifra.com>
parents:
12942
diff
changeset
|
53 |
26420
2fc86d92c4a9
urls: bulk-change BTS urls to new location
Matt Mackall <mpm@selenic.com>
parents:
23172
diff
changeset
|
54 https://bz.mercurial-scm.org/2036 |
10475
2253715fde97
color: don't crash on invalid status codes (issue2036)
Brodie Rao <me+hg@dackz.net>
parents:
8936
diff
changeset
|
55 |
12425
fcf55506c2f4
tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents:
10475
diff
changeset
|
56 $ cd .. |
fcf55506c2f4
tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents:
10475
diff
changeset
|
57 |
fcf55506c2f4
tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents:
10475
diff
changeset
|
58 test issue2039 |
10475
2253715fde97
color: don't crash on invalid status codes (issue2036)
Brodie Rao <me+hg@dackz.net>
parents:
8936
diff
changeset
|
59 |
12425
fcf55506c2f4
tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents:
10475
diff
changeset
|
60 $ hg init bar |
fcf55506c2f4
tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents:
10475
diff
changeset
|
61 $ cd bar |
23172
e955549cd045
tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents:
22046
diff
changeset
|
62 $ cat <<EOF >> $HGRCPATH |
e955549cd045
tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents:
22046
diff
changeset
|
63 > [extensions] |
e955549cd045
tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents:
22046
diff
changeset
|
64 > color = |
e955549cd045
tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents:
22046
diff
changeset
|
65 > [color] |
e955549cd045
tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents:
22046
diff
changeset
|
66 > mode = ansi |
e955549cd045
tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents:
22046
diff
changeset
|
67 > EOF |
12425
fcf55506c2f4
tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents:
10475
diff
changeset
|
68 $ A=`printf 'foo\nbar'` |
fcf55506c2f4
tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents:
10475
diff
changeset
|
69 $ B=`printf 'foo\nbar.baz'` |
fcf55506c2f4
tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents:
10475
diff
changeset
|
70 $ touch "$A" |
fcf55506c2f4
tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents:
10475
diff
changeset
|
71 $ touch "$B" |
fcf55506c2f4
tests: unify test-eolfilename
Matt Mackall <mpm@selenic.com>
parents:
10475
diff
changeset
|
72 $ hg status --color=always |
17910
c8709ff57ff2
status: use condwrite to avoid zero-width format string hack
Matt Mackall <mpm@selenic.com>
parents:
17742
diff
changeset
|
73 \x1b[0;35;1;4m? \x1b[0m\x1b[0;35;1;4mfoo\x1b[0m (esc) |
12942
05fffd665170
tests: use (esc) for all non-ASCII test output
Mads Kiilerich <mads@kiilerich.com>
parents:
12425
diff
changeset
|
74 \x1b[0;35;1;4mbar\x1b[0m (esc) |
17910
c8709ff57ff2
status: use condwrite to avoid zero-width format string hack
Matt Mackall <mpm@selenic.com>
parents:
17742
diff
changeset
|
75 \x1b[0;35;1;4m? \x1b[0m\x1b[0;35;1;4mfoo\x1b[0m (esc) |
12942
05fffd665170
tests: use (esc) for all non-ASCII test output
Mads Kiilerich <mads@kiilerich.com>
parents:
12425
diff
changeset
|
76 \x1b[0;35;1;4mbar.baz\x1b[0m (esc) |
16913
f2719b387380
tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents:
13987
diff
changeset
|
77 |
f2719b387380
tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents:
13987
diff
changeset
|
78 $ cd .. |