Mercurial > hg
annotate tests/test-tools.t @ 34980:705d0f2bb677 stable
pathutil: add doctests for canonpath()
This is a followup to f445b10dc7fb. Since there's no way to ensure that more
drive letters than C: exist, this seems like the only way to test it. This is
enough to catch the f445b10dc7fb scenario, as well as CWD outside of the repo
when the path isn't prefixed with path/to/repo.
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Fri, 03 Nov 2017 22:22:50 -0400 |
parents | ad230d56db25 |
children | 4441705b7111 |
rev | line source |
---|---|
23860
bead0c7b4f68
tests: add 'f' tool for cross platform file operations in the tests
Mads Kiilerich <madski@unity3d.com>
parents:
diff
changeset
|
1 Tests of the file helper tool |
bead0c7b4f68
tests: add 'f' tool for cross platform file operations in the tests
Mads Kiilerich <madski@unity3d.com>
parents:
diff
changeset
|
2 |
bead0c7b4f68
tests: add 'f' tool for cross platform file operations in the tests
Mads Kiilerich <madski@unity3d.com>
parents:
diff
changeset
|
3 $ f -h |
23909
0760f023a34b
test-tools: fix portability issues
Matt Mackall <mpm@selenic.com>
parents:
23867
diff
changeset
|
4 ?sage: f [options] [filenames] (glob) |
23860
bead0c7b4f68
tests: add 'f' tool for cross platform file operations in the tests
Mads Kiilerich <madski@unity3d.com>
parents:
diff
changeset
|
5 |
23913 | 6 ?ptions: (glob) |
23860
bead0c7b4f68
tests: add 'f' tool for cross platform file operations in the tests
Mads Kiilerich <madski@unity3d.com>
parents:
diff
changeset
|
7 -h, --help show this help message and exit |
bead0c7b4f68
tests: add 'f' tool for cross platform file operations in the tests
Mads Kiilerich <madski@unity3d.com>
parents:
diff
changeset
|
8 -t, --type show file type (file or directory) |
bead0c7b4f68
tests: add 'f' tool for cross platform file operations in the tests
Mads Kiilerich <madski@unity3d.com>
parents:
diff
changeset
|
9 -m, --mode show file mode |
bead0c7b4f68
tests: add 'f' tool for cross platform file operations in the tests
Mads Kiilerich <madski@unity3d.com>
parents:
diff
changeset
|
10 -l, --links show number of links |
bead0c7b4f68
tests: add 'f' tool for cross platform file operations in the tests
Mads Kiilerich <madski@unity3d.com>
parents:
diff
changeset
|
11 -s, --size show size of file |
bead0c7b4f68
tests: add 'f' tool for cross platform file operations in the tests
Mads Kiilerich <madski@unity3d.com>
parents:
diff
changeset
|
12 -n NEWER, --newer=NEWER |
bead0c7b4f68
tests: add 'f' tool for cross platform file operations in the tests
Mads Kiilerich <madski@unity3d.com>
parents:
diff
changeset
|
13 check if file is newer (or same) |
bead0c7b4f68
tests: add 'f' tool for cross platform file operations in the tests
Mads Kiilerich <madski@unity3d.com>
parents:
diff
changeset
|
14 -r, --recurse recurse into directories |
bead0c7b4f68
tests: add 'f' tool for cross platform file operations in the tests
Mads Kiilerich <madski@unity3d.com>
parents:
diff
changeset
|
15 -S, --sha1 show sha1 hash of the content |
bead0c7b4f68
tests: add 'f' tool for cross platform file operations in the tests
Mads Kiilerich <madski@unity3d.com>
parents:
diff
changeset
|
16 -M, --md5 show md5 hash of the content |
bead0c7b4f68
tests: add 'f' tool for cross platform file operations in the tests
Mads Kiilerich <madski@unity3d.com>
parents:
diff
changeset
|
17 -D, --dump dump file content |
bead0c7b4f68
tests: add 'f' tool for cross platform file operations in the tests
Mads Kiilerich <madski@unity3d.com>
parents:
diff
changeset
|
18 -H, --hexdump hexdump file content |
bead0c7b4f68
tests: add 'f' tool for cross platform file operations in the tests
Mads Kiilerich <madski@unity3d.com>
parents:
diff
changeset
|
19 -B BYTES, --bytes=BYTES |
bead0c7b4f68
tests: add 'f' tool for cross platform file operations in the tests
Mads Kiilerich <madski@unity3d.com>
parents:
diff
changeset
|
20 number of characters to dump |
bead0c7b4f68
tests: add 'f' tool for cross platform file operations in the tests
Mads Kiilerich <madski@unity3d.com>
parents:
diff
changeset
|
21 -L LINES, --lines=LINES |
bead0c7b4f68
tests: add 'f' tool for cross platform file operations in the tests
Mads Kiilerich <madski@unity3d.com>
parents:
diff
changeset
|
22 number of lines to dump |
bead0c7b4f68
tests: add 'f' tool for cross platform file operations in the tests
Mads Kiilerich <madski@unity3d.com>
parents:
diff
changeset
|
23 -q, --quiet no default output |
bead0c7b4f68
tests: add 'f' tool for cross platform file operations in the tests
Mads Kiilerich <madski@unity3d.com>
parents:
diff
changeset
|
24 |
bead0c7b4f68
tests: add 'f' tool for cross platform file operations in the tests
Mads Kiilerich <madski@unity3d.com>
parents:
diff
changeset
|
25 $ mkdir dir |
bead0c7b4f68
tests: add 'f' tool for cross platform file operations in the tests
Mads Kiilerich <madski@unity3d.com>
parents:
diff
changeset
|
26 $ cd dir |
bead0c7b4f68
tests: add 'f' tool for cross platform file operations in the tests
Mads Kiilerich <madski@unity3d.com>
parents:
diff
changeset
|
27 |
bead0c7b4f68
tests: add 'f' tool for cross platform file operations in the tests
Mads Kiilerich <madski@unity3d.com>
parents:
diff
changeset
|
28 $ f --size |
bead0c7b4f68
tests: add 'f' tool for cross platform file operations in the tests
Mads Kiilerich <madski@unity3d.com>
parents:
diff
changeset
|
29 size=0 |
bead0c7b4f68
tests: add 'f' tool for cross platform file operations in the tests
Mads Kiilerich <madski@unity3d.com>
parents:
diff
changeset
|
30 |
bead0c7b4f68
tests: add 'f' tool for cross platform file operations in the tests
Mads Kiilerich <madski@unity3d.com>
parents:
diff
changeset
|
31 $ echo hello | f --md5 --size |
bead0c7b4f68
tests: add 'f' tool for cross platform file operations in the tests
Mads Kiilerich <madski@unity3d.com>
parents:
diff
changeset
|
32 size=6, md5=b1946ac92492d2347c6235b4d2611184 |
bead0c7b4f68
tests: add 'f' tool for cross platform file operations in the tests
Mads Kiilerich <madski@unity3d.com>
parents:
diff
changeset
|
33 |
bead0c7b4f68
tests: add 'f' tool for cross platform file operations in the tests
Mads Kiilerich <madski@unity3d.com>
parents:
diff
changeset
|
34 $ f foo |
bead0c7b4f68
tests: add 'f' tool for cross platform file operations in the tests
Mads Kiilerich <madski@unity3d.com>
parents:
diff
changeset
|
35 foo: file not found |
bead0c7b4f68
tests: add 'f' tool for cross platform file operations in the tests
Mads Kiilerich <madski@unity3d.com>
parents:
diff
changeset
|
36 |
bead0c7b4f68
tests: add 'f' tool for cross platform file operations in the tests
Mads Kiilerich <madski@unity3d.com>
parents:
diff
changeset
|
37 $ echo foo > foo |
bead0c7b4f68
tests: add 'f' tool for cross platform file operations in the tests
Mads Kiilerich <madski@unity3d.com>
parents:
diff
changeset
|
38 $ f foo |
bead0c7b4f68
tests: add 'f' tool for cross platform file operations in the tests
Mads Kiilerich <madski@unity3d.com>
parents:
diff
changeset
|
39 foo: |
bead0c7b4f68
tests: add 'f' tool for cross platform file operations in the tests
Mads Kiilerich <madski@unity3d.com>
parents:
diff
changeset
|
40 |
23867
049a9e3a078d
tests: conditionalize test-tools.t for Windows support
Matt Harbison <matt_harbison@yahoo.com>
parents:
23860
diff
changeset
|
41 #if symlink |
23860
bead0c7b4f68
tests: add 'f' tool for cross platform file operations in the tests
Mads Kiilerich <madski@unity3d.com>
parents:
diff
changeset
|
42 $ f foo --mode |
bead0c7b4f68
tests: add 'f' tool for cross platform file operations in the tests
Mads Kiilerich <madski@unity3d.com>
parents:
diff
changeset
|
43 foo: mode=644 |
23867
049a9e3a078d
tests: conditionalize test-tools.t for Windows support
Matt Harbison <matt_harbison@yahoo.com>
parents:
23860
diff
changeset
|
44 #endif |
23860
bead0c7b4f68
tests: add 'f' tool for cross platform file operations in the tests
Mads Kiilerich <madski@unity3d.com>
parents:
diff
changeset
|
45 |
26950
6686ae524f94
tests: make 'f' tool open files in binary mode when hexdumping
Matt Harbison <matt_harbison@yahoo.com>
parents:
24361
diff
changeset
|
46 #if no-windows |
32940
75be14993fda
cleanup: use $PYTHON to run python in many more tests
Augie Fackler <augie@google.com>
parents:
26950
diff
changeset
|
47 $ $PYTHON $TESTDIR/seq.py 10 > bar |
26950
6686ae524f94
tests: make 'f' tool open files in binary mode when hexdumping
Matt Harbison <matt_harbison@yahoo.com>
parents:
24361
diff
changeset
|
48 #else |
6686ae524f94
tests: make 'f' tool open files in binary mode when hexdumping
Matt Harbison <matt_harbison@yahoo.com>
parents:
24361
diff
changeset
|
49 Convert CRLF -> LF for consistency |
32940
75be14993fda
cleanup: use $PYTHON to run python in many more tests
Augie Fackler <augie@google.com>
parents:
26950
diff
changeset
|
50 $ $PYTHON $TESTDIR/seq.py 10 | sed "s/$//" > bar |
26950
6686ae524f94
tests: make 'f' tool open files in binary mode when hexdumping
Matt Harbison <matt_harbison@yahoo.com>
parents:
24361
diff
changeset
|
51 #endif |
6686ae524f94
tests: make 'f' tool open files in binary mode when hexdumping
Matt Harbison <matt_harbison@yahoo.com>
parents:
24361
diff
changeset
|
52 |
23867
049a9e3a078d
tests: conditionalize test-tools.t for Windows support
Matt Harbison <matt_harbison@yahoo.com>
parents:
23860
diff
changeset
|
53 #if unix-permissions symlink |
23860
bead0c7b4f68
tests: add 'f' tool for cross platform file operations in the tests
Mads Kiilerich <madski@unity3d.com>
parents:
diff
changeset
|
54 $ chmod +x bar |
bead0c7b4f68
tests: add 'f' tool for cross platform file operations in the tests
Mads Kiilerich <madski@unity3d.com>
parents:
diff
changeset
|
55 $ f bar --newer foo --mode --type --size --dump --links --bytes 7 |
bead0c7b4f68
tests: add 'f' tool for cross platform file operations in the tests
Mads Kiilerich <madski@unity3d.com>
parents:
diff
changeset
|
56 bar: file, size=21, mode=755, links=1, newer than foo |
bead0c7b4f68
tests: add 'f' tool for cross platform file operations in the tests
Mads Kiilerich <madski@unity3d.com>
parents:
diff
changeset
|
57 >>> |
bead0c7b4f68
tests: add 'f' tool for cross platform file operations in the tests
Mads Kiilerich <madski@unity3d.com>
parents:
diff
changeset
|
58 1 |
bead0c7b4f68
tests: add 'f' tool for cross platform file operations in the tests
Mads Kiilerich <madski@unity3d.com>
parents:
diff
changeset
|
59 2 |
bead0c7b4f68
tests: add 'f' tool for cross platform file operations in the tests
Mads Kiilerich <madski@unity3d.com>
parents:
diff
changeset
|
60 3 |
bead0c7b4f68
tests: add 'f' tool for cross platform file operations in the tests
Mads Kiilerich <madski@unity3d.com>
parents:
diff
changeset
|
61 4 |
bead0c7b4f68
tests: add 'f' tool for cross platform file operations in the tests
Mads Kiilerich <madski@unity3d.com>
parents:
diff
changeset
|
62 <<< no trailing newline |
23867
049a9e3a078d
tests: conditionalize test-tools.t for Windows support
Matt Harbison <matt_harbison@yahoo.com>
parents:
23860
diff
changeset
|
63 #endif |
23860
bead0c7b4f68
tests: add 'f' tool for cross platform file operations in the tests
Mads Kiilerich <madski@unity3d.com>
parents:
diff
changeset
|
64 |
23914
a2396b0fd608
test-tools: check for unix permissions for hardlinking
Matt Mackall <mpm@selenic.com>
parents:
23913
diff
changeset
|
65 #if unix-permissions |
23860
bead0c7b4f68
tests: add 'f' tool for cross platform file operations in the tests
Mads Kiilerich <madski@unity3d.com>
parents:
diff
changeset
|
66 $ ln bar baz |
bead0c7b4f68
tests: add 'f' tool for cross platform file operations in the tests
Mads Kiilerich <madski@unity3d.com>
parents:
diff
changeset
|
67 $ f bar -n baz -l --hexdump -t --sha1 --lines=9 -B 20 |
bead0c7b4f68
tests: add 'f' tool for cross platform file operations in the tests
Mads Kiilerich <madski@unity3d.com>
parents:
diff
changeset
|
68 bar: file, links=2, newer than baz, sha1=612ca68d0305c821750a |
bead0c7b4f68
tests: add 'f' tool for cross platform file operations in the tests
Mads Kiilerich <madski@unity3d.com>
parents:
diff
changeset
|
69 0000: 31 0a 32 0a 33 0a 34 0a 35 0a 36 0a 37 0a 38 0a |1.2.3.4.5.6.7.8.| |
bead0c7b4f68
tests: add 'f' tool for cross platform file operations in the tests
Mads Kiilerich <madski@unity3d.com>
parents:
diff
changeset
|
70 0010: 39 0a |9.| |
23915
5b20e4c32117
test-tools: another vfat fix
Matt Mackall <mpm@selenic.com>
parents:
23914
diff
changeset
|
71 $ rm baz |
23914
a2396b0fd608
test-tools: check for unix permissions for hardlinking
Matt Mackall <mpm@selenic.com>
parents:
23913
diff
changeset
|
72 #endif |
23860
bead0c7b4f68
tests: add 'f' tool for cross platform file operations in the tests
Mads Kiilerich <madski@unity3d.com>
parents:
diff
changeset
|
73 |
23867
049a9e3a078d
tests: conditionalize test-tools.t for Windows support
Matt Harbison <matt_harbison@yahoo.com>
parents:
23860
diff
changeset
|
74 #if unix-permissions symlink |
23860
bead0c7b4f68
tests: add 'f' tool for cross platform file operations in the tests
Mads Kiilerich <madski@unity3d.com>
parents:
diff
changeset
|
75 $ ln -s yadda l |
bead0c7b4f68
tests: add 'f' tool for cross platform file operations in the tests
Mads Kiilerich <madski@unity3d.com>
parents:
diff
changeset
|
76 $ f . --recurse -MStmsB4 |
23915
5b20e4c32117
test-tools: another vfat fix
Matt Mackall <mpm@selenic.com>
parents:
23914
diff
changeset
|
77 .: directory with 3 files, mode=755 |
23860
bead0c7b4f68
tests: add 'f' tool for cross platform file operations in the tests
Mads Kiilerich <madski@unity3d.com>
parents:
diff
changeset
|
78 ./bar: file, size=21, mode=755, md5=3b03, sha1=612c |
bead0c7b4f68
tests: add 'f' tool for cross platform file operations in the tests
Mads Kiilerich <madski@unity3d.com>
parents:
diff
changeset
|
79 ./foo: file, size=4, mode=644, md5=d3b0, sha1=f1d2 |
23912
7d0aa6269ece
tests: teach f not to report symlink mode bits
Matt Mackall <mpm@selenic.com>
parents:
23911
diff
changeset
|
80 ./l: link, size=5, md5=2faa, sha1=af93 |
23867
049a9e3a078d
tests: conditionalize test-tools.t for Windows support
Matt Harbison <matt_harbison@yahoo.com>
parents:
23860
diff
changeset
|
81 #endif |
23860
bead0c7b4f68
tests: add 'f' tool for cross platform file operations in the tests
Mads Kiilerich <madski@unity3d.com>
parents:
diff
changeset
|
82 |
bead0c7b4f68
tests: add 'f' tool for cross platform file operations in the tests
Mads Kiilerich <madski@unity3d.com>
parents:
diff
changeset
|
83 $ f --quiet bar -DL 3 |
bead0c7b4f68
tests: add 'f' tool for cross platform file operations in the tests
Mads Kiilerich <madski@unity3d.com>
parents:
diff
changeset
|
84 1 |
bead0c7b4f68
tests: add 'f' tool for cross platform file operations in the tests
Mads Kiilerich <madski@unity3d.com>
parents:
diff
changeset
|
85 2 |
bead0c7b4f68
tests: add 'f' tool for cross platform file operations in the tests
Mads Kiilerich <madski@unity3d.com>
parents:
diff
changeset
|
86 3 |
bead0c7b4f68
tests: add 'f' tool for cross platform file operations in the tests
Mads Kiilerich <madski@unity3d.com>
parents:
diff
changeset
|
87 |
bead0c7b4f68
tests: add 'f' tool for cross platform file operations in the tests
Mads Kiilerich <madski@unity3d.com>
parents:
diff
changeset
|
88 $ cd .. |
bead0c7b4f68
tests: add 'f' tool for cross platform file operations in the tests
Mads Kiilerich <madski@unity3d.com>
parents:
diff
changeset
|
89 |
23867
049a9e3a078d
tests: conditionalize test-tools.t for Windows support
Matt Harbison <matt_harbison@yahoo.com>
parents:
23860
diff
changeset
|
90 Yadda is a symlink |
23860
bead0c7b4f68
tests: add 'f' tool for cross platform file operations in the tests
Mads Kiilerich <madski@unity3d.com>
parents:
diff
changeset
|
91 $ f -qr dir -HB 17 |
33339
ad230d56db25
test-tools: conditionalize output instead of tests
Matt Harbison <matt_harbison@yahoo.com>
parents:
32940
diff
changeset
|
92 dir: directory with 3 files (symlink !) |
ad230d56db25
test-tools: conditionalize output instead of tests
Matt Harbison <matt_harbison@yahoo.com>
parents:
32940
diff
changeset
|
93 dir: directory with 2 files (no-symlink !) |
23867
049a9e3a078d
tests: conditionalize test-tools.t for Windows support
Matt Harbison <matt_harbison@yahoo.com>
parents:
23860
diff
changeset
|
94 dir/bar: (glob) |
049a9e3a078d
tests: conditionalize test-tools.t for Windows support
Matt Harbison <matt_harbison@yahoo.com>
parents:
23860
diff
changeset
|
95 0000: 31 0a 32 0a 33 0a 34 0a 35 0a 36 0a 37 0a 38 0a |1.2.3.4.5.6.7.8.| |
049a9e3a078d
tests: conditionalize test-tools.t for Windows support
Matt Harbison <matt_harbison@yahoo.com>
parents:
23860
diff
changeset
|
96 0010: 39 |9| |
049a9e3a078d
tests: conditionalize test-tools.t for Windows support
Matt Harbison <matt_harbison@yahoo.com>
parents:
23860
diff
changeset
|
97 dir/foo: (glob) |
049a9e3a078d
tests: conditionalize test-tools.t for Windows support
Matt Harbison <matt_harbison@yahoo.com>
parents:
23860
diff
changeset
|
98 0000: 66 6f 6f 0a |foo.| |
33339
ad230d56db25
test-tools: conditionalize output instead of tests
Matt Harbison <matt_harbison@yahoo.com>
parents:
32940
diff
changeset
|
99 dir/l: (symlink !) |
ad230d56db25
test-tools: conditionalize output instead of tests
Matt Harbison <matt_harbison@yahoo.com>
parents:
32940
diff
changeset
|
100 0000: 79 61 64 64 61 |yadda| (symlink !) |
23867
049a9e3a078d
tests: conditionalize test-tools.t for Windows support
Matt Harbison <matt_harbison@yahoo.com>
parents:
23860
diff
changeset
|
101 |