Mercurial > hg
annotate tests/test-logtoprocess.t @ 35510:2062f7c2ac83
win32: implement util.getfstype()
This will allow NTFS to be added to the hardlink whitelist, and resume creating
hardlinks in transactions (which was disabled globally in 07a92bbd02e5; see also
e5ce49a30146). I opted to report "cifs" for remote volumes because this shows
in `hg debugfs`, which also reports that hardlinks are supported for these
volumes. So being able to distinguish it from "unknown" seems useful.
The documentation [1] seems to indicate that SMB isn't supported by these
functions, but experimenting shows that mapped drives are reported as "NTFS" on
Windows 7. I don't have a second Windows machine, but instead shared a temp
directory on C:\. In this setup, both of the following were detected as 'cifs'
with the explicit GetDriveType() check:
Z:\repo>hg ci -A
C:\>hg -R \\hostname\temp\repo ci -A # (without Z:\ being mapped)
It looks like this is called 6 times to add and commit a single new file, so I'm
a little surprised this isn't cached.
[1] https://msdn.microsoft.com/en-us/library/windows/desktop/aa364993(v=vs.85).aspx
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Fri, 29 Dec 2017 21:28:19 -0500 |
parents | af43cb56af4e |
children | dfca83594145 |
rev | line source |
---|---|
32915
0afc4206d02b
test-logtoprocess: don't run on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents:
32337
diff
changeset
|
1 #require no-windows |
0afc4206d02b
test-logtoprocess: don't run on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents:
32337
diff
changeset
|
2 |
30991
3844b3299a53
test-logtoprocess: use cat to wait for outputs
Jun Wu <quark@fb.com>
parents:
30978
diff
changeset
|
3 ATTENTION: logtoprocess runs commands asynchronously. Be sure to append "| cat" |
3844b3299a53
test-logtoprocess: use cat to wait for outputs
Jun Wu <quark@fb.com>
parents:
30978
diff
changeset
|
4 to hg commands, to wait for the output, if you want to test its output. |
3844b3299a53
test-logtoprocess: use cat to wait for outputs
Jun Wu <quark@fb.com>
parents:
30978
diff
changeset
|
5 Otherwise the test will be flaky. |
3844b3299a53
test-logtoprocess: use cat to wait for outputs
Jun Wu <quark@fb.com>
parents:
30978
diff
changeset
|
6 |
28901
a368da441b32
logtoprocess: new experimental extension
Martijn Pieters <mjpieters@fb.com>
parents:
diff
changeset
|
7 Test if logtoprocess correctly captures command-related log calls. |
a368da441b32
logtoprocess: new experimental extension
Martijn Pieters <mjpieters@fb.com>
parents:
diff
changeset
|
8 |
a368da441b32
logtoprocess: new experimental extension
Martijn Pieters <mjpieters@fb.com>
parents:
diff
changeset
|
9 $ hg init |
a368da441b32
logtoprocess: new experimental extension
Martijn Pieters <mjpieters@fb.com>
parents:
diff
changeset
|
10 $ cat > $TESTTMP/foocommand.py << EOF |
33966
e98dab3fafbc
tests: update test-logtoprocess to pass our import checker
Augie Fackler <raf@durin42.com>
parents:
33097
diff
changeset
|
11 > from __future__ import absolute_import |
32337
46ba2cdda476
registrar: move cmdutil.command to registrar module (API)
Yuya Nishihara <yuya@tcha.org>
parents:
30991
diff
changeset
|
12 > from mercurial import registrar |
28901
a368da441b32
logtoprocess: new experimental extension
Martijn Pieters <mjpieters@fb.com>
parents:
diff
changeset
|
13 > cmdtable = {} |
32337
46ba2cdda476
registrar: move cmdutil.command to registrar module (API)
Yuya Nishihara <yuya@tcha.org>
parents:
30991
diff
changeset
|
14 > command = registrar.command(cmdtable) |
34764
af43cb56af4e
configitems: register the test 'logtoprocess.foo' config
Boris Feld <boris.feld@octobus.net>
parents:
34444
diff
changeset
|
15 > configtable = {} |
af43cb56af4e
configitems: register the test 'logtoprocess.foo' config
Boris Feld <boris.feld@octobus.net>
parents:
34444
diff
changeset
|
16 > configitem = registrar.configitem(configtable) |
af43cb56af4e
configitems: register the test 'logtoprocess.foo' config
Boris Feld <boris.feld@octobus.net>
parents:
34444
diff
changeset
|
17 > configitem('logtoprocess', 'foo', |
af43cb56af4e
configitems: register the test 'logtoprocess.foo' config
Boris Feld <boris.feld@octobus.net>
parents:
34444
diff
changeset
|
18 > default=None, |
af43cb56af4e
configitems: register the test 'logtoprocess.foo' config
Boris Feld <boris.feld@octobus.net>
parents:
34444
diff
changeset
|
19 > ) |
33097
fce4ed2912bb
py3: make sure commands name are bytes in tests
Pulkit Goyal <7895pulkit@gmail.com>
parents:
32915
diff
changeset
|
20 > @command(b'foo', []) |
28901
a368da441b32
logtoprocess: new experimental extension
Martijn Pieters <mjpieters@fb.com>
parents:
diff
changeset
|
21 > def foo(ui, repo): |
a368da441b32
logtoprocess: new experimental extension
Martijn Pieters <mjpieters@fb.com>
parents:
diff
changeset
|
22 > ui.log('foo', 'a message: %(bar)s\n', bar='spam') |
a368da441b32
logtoprocess: new experimental extension
Martijn Pieters <mjpieters@fb.com>
parents:
diff
changeset
|
23 > EOF |
30976
e92daf156d5c
ui: provide a mechanism to track and log blocked time
Simon Farnsworth <simonfar@fb.com>
parents:
28901
diff
changeset
|
24 $ cp $HGRCPATH $HGRCPATH.bak |
28901
a368da441b32
logtoprocess: new experimental extension
Martijn Pieters <mjpieters@fb.com>
parents:
diff
changeset
|
25 $ cat >> $HGRCPATH << EOF |
a368da441b32
logtoprocess: new experimental extension
Martijn Pieters <mjpieters@fb.com>
parents:
diff
changeset
|
26 > [extensions] |
a368da441b32
logtoprocess: new experimental extension
Martijn Pieters <mjpieters@fb.com>
parents:
diff
changeset
|
27 > logtoprocess= |
a368da441b32
logtoprocess: new experimental extension
Martijn Pieters <mjpieters@fb.com>
parents:
diff
changeset
|
28 > foocommand=$TESTTMP/foocommand.py |
a368da441b32
logtoprocess: new experimental extension
Martijn Pieters <mjpieters@fb.com>
parents:
diff
changeset
|
29 > [logtoprocess] |
a368da441b32
logtoprocess: new experimental extension
Martijn Pieters <mjpieters@fb.com>
parents:
diff
changeset
|
30 > command=echo 'logtoprocess command output:'; |
a368da441b32
logtoprocess: new experimental extension
Martijn Pieters <mjpieters@fb.com>
parents:
diff
changeset
|
31 > echo "\$EVENT"; |
a368da441b32
logtoprocess: new experimental extension
Martijn Pieters <mjpieters@fb.com>
parents:
diff
changeset
|
32 > echo "\$MSG1"; |
a368da441b32
logtoprocess: new experimental extension
Martijn Pieters <mjpieters@fb.com>
parents:
diff
changeset
|
33 > echo "\$MSG2" |
a368da441b32
logtoprocess: new experimental extension
Martijn Pieters <mjpieters@fb.com>
parents:
diff
changeset
|
34 > commandfinish=echo 'logtoprocess commandfinish output:'; |
a368da441b32
logtoprocess: new experimental extension
Martijn Pieters <mjpieters@fb.com>
parents:
diff
changeset
|
35 > echo "\$EVENT"; |
a368da441b32
logtoprocess: new experimental extension
Martijn Pieters <mjpieters@fb.com>
parents:
diff
changeset
|
36 > echo "\$MSG1"; |
a368da441b32
logtoprocess: new experimental extension
Martijn Pieters <mjpieters@fb.com>
parents:
diff
changeset
|
37 > echo "\$MSG2"; |
a368da441b32
logtoprocess: new experimental extension
Martijn Pieters <mjpieters@fb.com>
parents:
diff
changeset
|
38 > echo "\$MSG3" |
a368da441b32
logtoprocess: new experimental extension
Martijn Pieters <mjpieters@fb.com>
parents:
diff
changeset
|
39 > foo=echo 'logtoprocess foo output:'; |
a368da441b32
logtoprocess: new experimental extension
Martijn Pieters <mjpieters@fb.com>
parents:
diff
changeset
|
40 > echo "\$EVENT"; |
a368da441b32
logtoprocess: new experimental extension
Martijn Pieters <mjpieters@fb.com>
parents:
diff
changeset
|
41 > echo "\$MSG1"; |
a368da441b32
logtoprocess: new experimental extension
Martijn Pieters <mjpieters@fb.com>
parents:
diff
changeset
|
42 > echo "\$OPT_BAR" |
a368da441b32
logtoprocess: new experimental extension
Martijn Pieters <mjpieters@fb.com>
parents:
diff
changeset
|
43 > EOF |
a368da441b32
logtoprocess: new experimental extension
Martijn Pieters <mjpieters@fb.com>
parents:
diff
changeset
|
44 |
a368da441b32
logtoprocess: new experimental extension
Martijn Pieters <mjpieters@fb.com>
parents:
diff
changeset
|
45 Running a command triggers both a ui.log('command') and a |
a368da441b32
logtoprocess: new experimental extension
Martijn Pieters <mjpieters@fb.com>
parents:
diff
changeset
|
46 ui.log('commandfinish') call. The foo command also uses ui.log. |
a368da441b32
logtoprocess: new experimental extension
Martijn Pieters <mjpieters@fb.com>
parents:
diff
changeset
|
47 |
30991
3844b3299a53
test-logtoprocess: use cat to wait for outputs
Jun Wu <quark@fb.com>
parents:
30978
diff
changeset
|
48 Use sort to avoid ordering issues between the various processes we spawn: |
3844b3299a53
test-logtoprocess: use cat to wait for outputs
Jun Wu <quark@fb.com>
parents:
30978
diff
changeset
|
49 $ hg foo | cat | sort |
28901
a368da441b32
logtoprocess: new experimental extension
Martijn Pieters <mjpieters@fb.com>
parents:
diff
changeset
|
50 |
a368da441b32
logtoprocess: new experimental extension
Martijn Pieters <mjpieters@fb.com>
parents:
diff
changeset
|
51 |
a368da441b32
logtoprocess: new experimental extension
Martijn Pieters <mjpieters@fb.com>
parents:
diff
changeset
|
52 |
34444
df78b1a24094
test-logtoprocess: make it compatible with chg
Jun Wu <quark@fb.com>
parents:
33966
diff
changeset
|
53 (chg !) |
28901
a368da441b32
logtoprocess: new experimental extension
Martijn Pieters <mjpieters@fb.com>
parents:
diff
changeset
|
54 0 |
a368da441b32
logtoprocess: new experimental extension
Martijn Pieters <mjpieters@fb.com>
parents:
diff
changeset
|
55 a message: spam |
a368da441b32
logtoprocess: new experimental extension
Martijn Pieters <mjpieters@fb.com>
parents:
diff
changeset
|
56 command |
34444
df78b1a24094
test-logtoprocess: make it compatible with chg
Jun Wu <quark@fb.com>
parents:
33966
diff
changeset
|
57 command (chg !) |
28901
a368da441b32
logtoprocess: new experimental extension
Martijn Pieters <mjpieters@fb.com>
parents:
diff
changeset
|
58 commandfinish |
a368da441b32
logtoprocess: new experimental extension
Martijn Pieters <mjpieters@fb.com>
parents:
diff
changeset
|
59 foo |
a368da441b32
logtoprocess: new experimental extension
Martijn Pieters <mjpieters@fb.com>
parents:
diff
changeset
|
60 foo |
a368da441b32
logtoprocess: new experimental extension
Martijn Pieters <mjpieters@fb.com>
parents:
diff
changeset
|
61 foo |
a368da441b32
logtoprocess: new experimental extension
Martijn Pieters <mjpieters@fb.com>
parents:
diff
changeset
|
62 foo |
a368da441b32
logtoprocess: new experimental extension
Martijn Pieters <mjpieters@fb.com>
parents:
diff
changeset
|
63 foo exited 0 after * seconds (glob) |
a368da441b32
logtoprocess: new experimental extension
Martijn Pieters <mjpieters@fb.com>
parents:
diff
changeset
|
64 logtoprocess command output: |
34444
df78b1a24094
test-logtoprocess: make it compatible with chg
Jun Wu <quark@fb.com>
parents:
33966
diff
changeset
|
65 logtoprocess command output: (chg !) |
28901
a368da441b32
logtoprocess: new experimental extension
Martijn Pieters <mjpieters@fb.com>
parents:
diff
changeset
|
66 logtoprocess commandfinish output: |
a368da441b32
logtoprocess: new experimental extension
Martijn Pieters <mjpieters@fb.com>
parents:
diff
changeset
|
67 logtoprocess foo output: |
34444
df78b1a24094
test-logtoprocess: make it compatible with chg
Jun Wu <quark@fb.com>
parents:
33966
diff
changeset
|
68 serve --cmdserver chgunix * (glob) (chg !) |
df78b1a24094
test-logtoprocess: make it compatible with chg
Jun Wu <quark@fb.com>
parents:
33966
diff
changeset
|
69 serve --cmdserver chgunix * (glob) (chg !) |
28901
a368da441b32
logtoprocess: new experimental extension
Martijn Pieters <mjpieters@fb.com>
parents:
diff
changeset
|
70 spam |
30976
e92daf156d5c
ui: provide a mechanism to track and log blocked time
Simon Farnsworth <simonfar@fb.com>
parents:
28901
diff
changeset
|
71 |
e92daf156d5c
ui: provide a mechanism to track and log blocked time
Simon Farnsworth <simonfar@fb.com>
parents:
28901
diff
changeset
|
72 Confirm that logging blocked time catches stdio properly: |
e92daf156d5c
ui: provide a mechanism to track and log blocked time
Simon Farnsworth <simonfar@fb.com>
parents:
28901
diff
changeset
|
73 $ cp $HGRCPATH.bak $HGRCPATH |
e92daf156d5c
ui: provide a mechanism to track and log blocked time
Simon Farnsworth <simonfar@fb.com>
parents:
28901
diff
changeset
|
74 $ cat >> $HGRCPATH << EOF |
e92daf156d5c
ui: provide a mechanism to track and log blocked time
Simon Farnsworth <simonfar@fb.com>
parents:
28901
diff
changeset
|
75 > [extensions] |
e92daf156d5c
ui: provide a mechanism to track and log blocked time
Simon Farnsworth <simonfar@fb.com>
parents:
28901
diff
changeset
|
76 > logtoprocess= |
e92daf156d5c
ui: provide a mechanism to track and log blocked time
Simon Farnsworth <simonfar@fb.com>
parents:
28901
diff
changeset
|
77 > pager= |
e92daf156d5c
ui: provide a mechanism to track and log blocked time
Simon Farnsworth <simonfar@fb.com>
parents:
28901
diff
changeset
|
78 > [logtoprocess] |
30978
fdecd24ca4dc
ui: log time spent blocked on stdio
Simon Farnsworth <simonfar@fb.com>
parents:
30976
diff
changeset
|
79 > uiblocked=echo "\$EVENT stdio \$OPT_STDIO_BLOCKED ms command \$OPT_COMMAND_DURATION ms" |
30976
e92daf156d5c
ui: provide a mechanism to track and log blocked time
Simon Farnsworth <simonfar@fb.com>
parents:
28901
diff
changeset
|
80 > [ui] |
e92daf156d5c
ui: provide a mechanism to track and log blocked time
Simon Farnsworth <simonfar@fb.com>
parents:
28901
diff
changeset
|
81 > logblockedtimes=True |
e92daf156d5c
ui: provide a mechanism to track and log blocked time
Simon Farnsworth <simonfar@fb.com>
parents:
28901
diff
changeset
|
82 > EOF |
e92daf156d5c
ui: provide a mechanism to track and log blocked time
Simon Farnsworth <simonfar@fb.com>
parents:
28901
diff
changeset
|
83 |
30991
3844b3299a53
test-logtoprocess: use cat to wait for outputs
Jun Wu <quark@fb.com>
parents:
30978
diff
changeset
|
84 $ hg log | cat |
30978
fdecd24ca4dc
ui: log time spent blocked on stdio
Simon Farnsworth <simonfar@fb.com>
parents:
30976
diff
changeset
|
85 uiblocked stdio [0-9]+.[0-9]* ms command [0-9]+.[0-9]* ms (re) |