Mercurial > hg
annotate tests/test-audit-path.t @ 33649:377e8ddaebef stable
pathauditor: disable cache of audited paths by default (issue5628)
The initial attempt was to discard cache when appropriate, but it appears
to be error prone. We had to carefully inspect all places where audit() is
called e.g. without actually updating filesystem, before removing files and
directories, etc.
So, this patch disables the cache of audited paths by default, and enables
it only for the following cases:
- short-lived auditor objects
- repo.vfs, repo.svfs, and repo.cachevfs, which are managed directories
and considered sort of append-only (a file/directory would never be
replaced with a symlink)
There would be more cacheable vfs objects (e.g. mq.queue.opener), but I
decided not to inspect all of them in this patch. We can make them cached
later.
Benchmark result:
- using old clone of http://selenic.com/repo/linux-2.6/ (38319 files)
- on tmpfs
- run HGRCPATH=/dev/null hg up -q --time tip && hg up -q null
- try 4 times and take the last three results
original:
real 7.480 secs (user 1.140+22.760 sys 0.150+1.690)
real 8.010 secs (user 1.070+22.280 sys 0.170+2.120)
real 7.470 secs (user 1.120+22.390 sys 0.120+1.910)
clearcache (the other series):
real 7.680 secs (user 1.120+23.420 sys 0.140+1.970)
real 7.670 secs (user 1.110+23.620 sys 0.130+1.810)
real 7.740 secs (user 1.090+23.510 sys 0.160+1.940)
enable cache only for vfs and svfs (this series):
real 8.730 secs (user 1.500+25.190 sys 0.260+2.260)
real 8.750 secs (user 1.490+25.170 sys 0.250+2.340)
real 9.010 secs (user 1.680+25.340 sys 0.280+2.540)
remove cache function at all (for reference):
real 9.620 secs (user 1.440+27.120 sys 0.250+2.980)
real 9.420 secs (user 1.400+26.940 sys 0.320+3.130)
real 9.760 secs (user 1.530+27.270 sys 0.250+2.970)
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Wed, 26 Jul 2017 22:10:15 +0900 |
parents | 20bac46f7744 |
children | 989e884d1be9 |
rev | line source |
---|---|
11855
054b0d9c3f0c
tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents:
7681
diff
changeset
|
1 $ hg init |
054b0d9c3f0c
tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents:
7681
diff
changeset
|
2 |
16908
6a997aacba5d
tests: convert some 'hghave symlink' to #if
Mads Kiilerich <mads@kiilerich.com>
parents:
16350
diff
changeset
|
3 audit of .hg |
11855
054b0d9c3f0c
tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents:
7681
diff
changeset
|
4 |
054b0d9c3f0c
tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents:
7681
diff
changeset
|
5 $ hg add .hg/00changelog.i |
15447
9910f60a37ee
tests: make (glob) on windows accept \ instead of /
Mads Kiilerich <mads@kiilerich.com>
parents:
15441
diff
changeset
|
6 abort: path contains illegal component: .hg/00changelog.i (glob) |
12316
4134686b83e1
tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents:
11855
diff
changeset
|
7 [255] |
5158
d316124ebbea
Make audit_path more stringent.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
8 |
16908
6a997aacba5d
tests: convert some 'hghave symlink' to #if
Mads Kiilerich <mads@kiilerich.com>
parents:
16350
diff
changeset
|
9 #if symlink |
6a997aacba5d
tests: convert some 'hghave symlink' to #if
Mads Kiilerich <mads@kiilerich.com>
parents:
16350
diff
changeset
|
10 |
6a997aacba5d
tests: convert some 'hghave symlink' to #if
Mads Kiilerich <mads@kiilerich.com>
parents:
16350
diff
changeset
|
11 Symlinks |
6a997aacba5d
tests: convert some 'hghave symlink' to #if
Mads Kiilerich <mads@kiilerich.com>
parents:
16350
diff
changeset
|
12 |
11855
054b0d9c3f0c
tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents:
7681
diff
changeset
|
13 $ mkdir a |
054b0d9c3f0c
tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents:
7681
diff
changeset
|
14 $ echo a > a/a |
054b0d9c3f0c
tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents:
7681
diff
changeset
|
15 $ hg ci -Ama |
054b0d9c3f0c
tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents:
7681
diff
changeset
|
16 adding a/a |
054b0d9c3f0c
tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents:
7681
diff
changeset
|
17 $ ln -s a b |
054b0d9c3f0c
tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents:
7681
diff
changeset
|
18 $ echo b > a/b |
054b0d9c3f0c
tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents:
7681
diff
changeset
|
19 $ hg add b/b |
15447
9910f60a37ee
tests: make (glob) on windows accept \ instead of /
Mads Kiilerich <mads@kiilerich.com>
parents:
15441
diff
changeset
|
20 abort: path 'b/b' traverses symbolic link 'b' (glob) |
12316
4134686b83e1
tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents:
11855
diff
changeset
|
21 [255] |
11855
054b0d9c3f0c
tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents:
7681
diff
changeset
|
22 $ hg add b |
054b0d9c3f0c
tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents:
7681
diff
changeset
|
23 |
054b0d9c3f0c
tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents:
7681
diff
changeset
|
24 should still fail - maybe |
5158
d316124ebbea
Make audit_path more stringent.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
25 |
11855
054b0d9c3f0c
tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents:
7681
diff
changeset
|
26 $ hg add b/b |
15447
9910f60a37ee
tests: make (glob) on windows accept \ instead of /
Mads Kiilerich <mads@kiilerich.com>
parents:
15441
diff
changeset
|
27 abort: path 'b/b' traverses symbolic link 'b' (glob) |
12316
4134686b83e1
tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents:
11855
diff
changeset
|
28 [255] |
5158
d316124ebbea
Make audit_path more stringent.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
29 |
27234
15c6eb0a51bd
context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
18506
diff
changeset
|
30 $ hg commit -m 'add symlink b' |
15c6eb0a51bd
context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
18506
diff
changeset
|
31 |
15c6eb0a51bd
context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
18506
diff
changeset
|
32 |
15c6eb0a51bd
context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
18506
diff
changeset
|
33 Test symlink traversing when accessing history: |
15c6eb0a51bd
context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
18506
diff
changeset
|
34 ----------------------------------------------- |
15c6eb0a51bd
context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
18506
diff
changeset
|
35 |
15c6eb0a51bd
context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
18506
diff
changeset
|
36 (build a changeset where the path exists as a directory) |
15c6eb0a51bd
context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
18506
diff
changeset
|
37 |
15c6eb0a51bd
context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
18506
diff
changeset
|
38 $ hg up 0 |
15c6eb0a51bd
context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
18506
diff
changeset
|
39 0 files updated, 0 files merged, 1 files removed, 0 files unresolved |
15c6eb0a51bd
context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
18506
diff
changeset
|
40 $ mkdir b |
15c6eb0a51bd
context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
18506
diff
changeset
|
41 $ echo c > b/a |
15c6eb0a51bd
context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
18506
diff
changeset
|
42 $ hg add b/a |
15c6eb0a51bd
context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
18506
diff
changeset
|
43 $ hg ci -m 'add directory b' |
15c6eb0a51bd
context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
18506
diff
changeset
|
44 created new head |
15c6eb0a51bd
context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
18506
diff
changeset
|
45 |
15c6eb0a51bd
context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
18506
diff
changeset
|
46 Test that hg cat does not do anything wrong the working copy has 'b' as directory |
15c6eb0a51bd
context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
18506
diff
changeset
|
47 |
15c6eb0a51bd
context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
18506
diff
changeset
|
48 $ hg cat b/a |
15c6eb0a51bd
context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
18506
diff
changeset
|
49 c |
15c6eb0a51bd
context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
18506
diff
changeset
|
50 $ hg cat -r "desc(directory)" b/a |
15c6eb0a51bd
context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
18506
diff
changeset
|
51 c |
15c6eb0a51bd
context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
18506
diff
changeset
|
52 $ hg cat -r "desc(symlink)" b/a |
15c6eb0a51bd
context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
18506
diff
changeset
|
53 b/a: no such file in rev bc151a1f53bd |
15c6eb0a51bd
context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
18506
diff
changeset
|
54 [1] |
15c6eb0a51bd
context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
18506
diff
changeset
|
55 |
15c6eb0a51bd
context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
18506
diff
changeset
|
56 Test that hg cat does not do anything wrong the working copy has 'b' as a symlink (issue4749) |
15c6eb0a51bd
context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
18506
diff
changeset
|
57 |
15c6eb0a51bd
context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
18506
diff
changeset
|
58 $ hg up 'desc(symlink)' |
15c6eb0a51bd
context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
18506
diff
changeset
|
59 1 files updated, 0 files merged, 1 files removed, 0 files unresolved |
15c6eb0a51bd
context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
18506
diff
changeset
|
60 $ hg cat b/a |
15c6eb0a51bd
context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
18506
diff
changeset
|
61 b/a: no such file in rev bc151a1f53bd |
15c6eb0a51bd
context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
18506
diff
changeset
|
62 [1] |
15c6eb0a51bd
context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
18506
diff
changeset
|
63 $ hg cat -r "desc(directory)" b/a |
15c6eb0a51bd
context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
18506
diff
changeset
|
64 c |
15c6eb0a51bd
context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
18506
diff
changeset
|
65 $ hg cat -r "desc(symlink)" b/a |
15c6eb0a51bd
context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
18506
diff
changeset
|
66 b/a: no such file in rev bc151a1f53bd |
15c6eb0a51bd
context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
18506
diff
changeset
|
67 [1] |
15c6eb0a51bd
context: use a the nofsauditor when matching file in history (issue4749)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
18506
diff
changeset
|
68 |
16908
6a997aacba5d
tests: convert some 'hghave symlink' to #if
Mads Kiilerich <mads@kiilerich.com>
parents:
16350
diff
changeset
|
69 #endif |
6a997aacba5d
tests: convert some 'hghave symlink' to #if
Mads Kiilerich <mads@kiilerich.com>
parents:
16350
diff
changeset
|
70 |
6a997aacba5d
tests: convert some 'hghave symlink' to #if
Mads Kiilerich <mads@kiilerich.com>
parents:
16350
diff
changeset
|
71 |
11855
054b0d9c3f0c
tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents:
7681
diff
changeset
|
72 unbundle tampered bundle |
5158
d316124ebbea
Make audit_path more stringent.
Bryan O'Sullivan <bos@serpentine.com>
parents:
diff
changeset
|
73 |
11855
054b0d9c3f0c
tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents:
7681
diff
changeset
|
74 $ hg init target |
054b0d9c3f0c
tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents:
7681
diff
changeset
|
75 $ cd target |
16350
4f795f5fbb0b
tests: make tests work if directory contains special characters
Thomas Arendsen Hein <thomas@intevation.de>
parents:
15521
diff
changeset
|
76 $ hg unbundle "$TESTDIR/bundles/tampered.hg" |
11855
054b0d9c3f0c
tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents:
7681
diff
changeset
|
77 adding changesets |
054b0d9c3f0c
tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents:
7681
diff
changeset
|
78 adding manifests |
054b0d9c3f0c
tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents:
7681
diff
changeset
|
79 adding file changes |
054b0d9c3f0c
tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents:
7681
diff
changeset
|
80 added 5 changesets with 6 changes to 6 files (+4 heads) |
054b0d9c3f0c
tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents:
7681
diff
changeset
|
81 (run 'hg heads' to see heads, 'hg merge' to merge) |
054b0d9c3f0c
tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents:
7681
diff
changeset
|
82 |
054b0d9c3f0c
tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents:
7681
diff
changeset
|
83 attack .hg/test |
7554
11a4eb81fb4f
test-audit-path: add more tests (issue 1450)
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
5158
diff
changeset
|
84 |
11855
054b0d9c3f0c
tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents:
7681
diff
changeset
|
85 $ hg manifest -r0 |
054b0d9c3f0c
tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents:
7681
diff
changeset
|
86 .hg/test |
054b0d9c3f0c
tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents:
7681
diff
changeset
|
87 $ hg update -Cr0 |
16908
6a997aacba5d
tests: convert some 'hghave symlink' to #if
Mads Kiilerich <mads@kiilerich.com>
parents:
16350
diff
changeset
|
88 abort: path contains illegal component: .hg/test (glob) |
12316
4134686b83e1
tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents:
11855
diff
changeset
|
89 [255] |
7554
11a4eb81fb4f
test-audit-path: add more tests (issue 1450)
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
5158
diff
changeset
|
90 |
11855
054b0d9c3f0c
tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents:
7681
diff
changeset
|
91 attack foo/.hg/test |
054b0d9c3f0c
tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents:
7681
diff
changeset
|
92 |
054b0d9c3f0c
tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents:
7681
diff
changeset
|
93 $ hg manifest -r1 |
054b0d9c3f0c
tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents:
7681
diff
changeset
|
94 foo/.hg/test |
054b0d9c3f0c
tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents:
7681
diff
changeset
|
95 $ hg update -Cr1 |
16908
6a997aacba5d
tests: convert some 'hghave symlink' to #if
Mads Kiilerich <mads@kiilerich.com>
parents:
16350
diff
changeset
|
96 abort: path 'foo/.hg/test' is inside nested repo 'foo' (glob) |
12316
4134686b83e1
tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents:
11855
diff
changeset
|
97 [255] |
7554
11a4eb81fb4f
test-audit-path: add more tests (issue 1450)
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
5158
diff
changeset
|
98 |
11855
054b0d9c3f0c
tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents:
7681
diff
changeset
|
99 attack back/test where back symlinks to .. |
054b0d9c3f0c
tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents:
7681
diff
changeset
|
100 |
054b0d9c3f0c
tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents:
7681
diff
changeset
|
101 $ hg manifest -r2 |
054b0d9c3f0c
tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents:
7681
diff
changeset
|
102 back |
054b0d9c3f0c
tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents:
7681
diff
changeset
|
103 back/test |
16908
6a997aacba5d
tests: convert some 'hghave symlink' to #if
Mads Kiilerich <mads@kiilerich.com>
parents:
16350
diff
changeset
|
104 #if symlink |
11855
054b0d9c3f0c
tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents:
7681
diff
changeset
|
105 $ hg update -Cr2 |
054b0d9c3f0c
tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents:
7681
diff
changeset
|
106 abort: path 'back/test' traverses symbolic link 'back' |
12316
4134686b83e1
tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents:
11855
diff
changeset
|
107 [255] |
16908
6a997aacba5d
tests: convert some 'hghave symlink' to #if
Mads Kiilerich <mads@kiilerich.com>
parents:
16350
diff
changeset
|
108 #else |
6a997aacba5d
tests: convert some 'hghave symlink' to #if
Mads Kiilerich <mads@kiilerich.com>
parents:
16350
diff
changeset
|
109 ('back' will be a file and cause some other system specific error) |
6a997aacba5d
tests: convert some 'hghave symlink' to #if
Mads Kiilerich <mads@kiilerich.com>
parents:
16350
diff
changeset
|
110 $ hg update -Cr2 |
6a997aacba5d
tests: convert some 'hghave symlink' to #if
Mads Kiilerich <mads@kiilerich.com>
parents:
16350
diff
changeset
|
111 abort: * (glob) |
6a997aacba5d
tests: convert some 'hghave symlink' to #if
Mads Kiilerich <mads@kiilerich.com>
parents:
16350
diff
changeset
|
112 [255] |
6a997aacba5d
tests: convert some 'hghave symlink' to #if
Mads Kiilerich <mads@kiilerich.com>
parents:
16350
diff
changeset
|
113 #endif |
11855
054b0d9c3f0c
tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents:
7681
diff
changeset
|
114 |
054b0d9c3f0c
tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents:
7681
diff
changeset
|
115 attack ../test |
7554
11a4eb81fb4f
test-audit-path: add more tests (issue 1450)
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
5158
diff
changeset
|
116 |
11855
054b0d9c3f0c
tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents:
7681
diff
changeset
|
117 $ hg manifest -r3 |
054b0d9c3f0c
tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents:
7681
diff
changeset
|
118 ../test |
054b0d9c3f0c
tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents:
7681
diff
changeset
|
119 $ hg update -Cr3 |
16908
6a997aacba5d
tests: convert some 'hghave symlink' to #if
Mads Kiilerich <mads@kiilerich.com>
parents:
16350
diff
changeset
|
120 abort: path contains illegal component: ../test (glob) |
12316
4134686b83e1
tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents:
11855
diff
changeset
|
121 [255] |
11855
054b0d9c3f0c
tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents:
7681
diff
changeset
|
122 |
054b0d9c3f0c
tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents:
7681
diff
changeset
|
123 attack /tmp/test |
7554
11a4eb81fb4f
test-audit-path: add more tests (issue 1450)
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
5158
diff
changeset
|
124 |
11855
054b0d9c3f0c
tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents:
7681
diff
changeset
|
125 $ hg manifest -r4 |
054b0d9c3f0c
tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents:
7681
diff
changeset
|
126 /tmp/test |
054b0d9c3f0c
tests: unify test-audit-path
Martin Geisler <mg@lazybytes.net>
parents:
7681
diff
changeset
|
127 $ hg update -Cr4 |
18506
ef60083b5536
tests: fix for windows - slashes and no serve
Mads Kiilerich <madski@unity3d.com>
parents:
18336
diff
changeset
|
128 abort: path contains illegal component: /tmp/test (glob) |
12316
4134686b83e1
tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents:
11855
diff
changeset
|
129 [255] |
16913
f2719b387380
tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents:
16908
diff
changeset
|
130 |
f2719b387380
tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents:
16908
diff
changeset
|
131 $ cd .. |
33632
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
132 |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
133 Test symlink traversal on merge: |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
134 -------------------------------- |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
135 |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
136 #if symlink |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
137 |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
138 set up symlink hell |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
139 |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
140 $ mkdir merge-symlink-out |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
141 $ hg init merge-symlink |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
142 $ cd merge-symlink |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
143 $ touch base |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
144 $ hg commit -qAm base |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
145 $ ln -s ../merge-symlink-out a |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
146 $ hg commit -qAm 'symlink a -> ../merge-symlink-out' |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
147 $ hg up -q 0 |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
148 $ mkdir a |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
149 $ touch a/poisoned |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
150 $ hg commit -qAm 'file a/poisoned' |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
151 $ hg log -G -T '{rev}: {desc}\n' |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
152 @ 2: file a/poisoned |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
153 | |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
154 | o 1: symlink a -> ../merge-symlink-out |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
155 |/ |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
156 o 0: base |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
157 |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
158 |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
159 try trivial merge |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
160 |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
161 $ hg up -qC 1 |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
162 $ hg merge 2 |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
163 abort: path 'a/poisoned' traverses symbolic link 'a' |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
164 [255] |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
165 |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
166 try rebase onto other revision: cache of audited paths should be discarded, |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
167 and the rebase should fail (issue5628) |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
168 |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
169 $ hg up -qC 2 |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
170 $ hg rebase -s 2 -d 1 --config extensions.rebase= |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
171 rebasing 2:e73c21d6b244 "file a/poisoned" (tip) |
33633
20bac46f7744
pathauditor: disable cache of audited paths by default (issue5628)
Yuya Nishihara <yuya@tcha.org>
parents:
33632
diff
changeset
|
172 abort: path 'a/poisoned' traverses symbolic link 'a' |
20bac46f7744
pathauditor: disable cache of audited paths by default (issue5628)
Yuya Nishihara <yuya@tcha.org>
parents:
33632
diff
changeset
|
173 [255] |
33632
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
174 $ ls ../merge-symlink-out |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
175 |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
176 $ cd .. |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
177 |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
178 Test symlink traversal on update: |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
179 --------------------------------- |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
180 |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
181 $ mkdir update-symlink-out |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
182 $ hg init update-symlink |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
183 $ cd update-symlink |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
184 $ ln -s ../update-symlink-out a |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
185 $ hg commit -qAm 'symlink a -> ../update-symlink-out' |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
186 $ hg rm a |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
187 $ mkdir a && touch a/b |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
188 $ hg ci -qAm 'file a/b' a/b |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
189 $ hg up -qC 0 |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
190 $ hg rm a |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
191 $ mkdir a && touch a/c |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
192 $ hg ci -qAm 'rm a, file a/c' |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
193 $ hg log -G -T '{rev}: {desc}\n' |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
194 @ 2: rm a, file a/c |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
195 | |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
196 | o 1: file a/b |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
197 |/ |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
198 o 0: symlink a -> ../update-symlink-out |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
199 |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
200 |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
201 try linear update where symlink already exists: |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
202 |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
203 $ hg up -qC 0 |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
204 $ hg up 1 |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
205 abort: path 'a/b' traverses symbolic link 'a' |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
206 [255] |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
207 |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
208 try linear update including symlinked directory and its content: paths are |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
209 audited first by calculateupdates(), where no symlink is created so both |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
210 'a' and 'a/b' are taken as good paths. still applyupdates() should fail. |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
211 |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
212 $ hg up -qC null |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
213 $ hg up 1 |
33633
20bac46f7744
pathauditor: disable cache of audited paths by default (issue5628)
Yuya Nishihara <yuya@tcha.org>
parents:
33632
diff
changeset
|
214 abort: path 'a/b' traverses symbolic link 'a' |
20bac46f7744
pathauditor: disable cache of audited paths by default (issue5628)
Yuya Nishihara <yuya@tcha.org>
parents:
33632
diff
changeset
|
215 [255] |
33632
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
216 $ ls ../update-symlink-out |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
217 |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
218 try branch update replacing directory with symlink, and its content: the |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
219 path 'a' is audited as a directory first, which should be audited again as |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
220 a symlink. |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
221 |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
222 $ rm -f a |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
223 $ hg up -qC 2 |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
224 $ hg up 1 |
33633
20bac46f7744
pathauditor: disable cache of audited paths by default (issue5628)
Yuya Nishihara <yuya@tcha.org>
parents:
33632
diff
changeset
|
225 abort: path 'a/b' traverses symbolic link 'a' |
20bac46f7744
pathauditor: disable cache of audited paths by default (issue5628)
Yuya Nishihara <yuya@tcha.org>
parents:
33632
diff
changeset
|
226 [255] |
33632
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
227 $ ls ../update-symlink-out |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
228 |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
229 $ cd .. |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
230 |
0134d839444b
tests: show cache of audited paths is never invalidated
Yuya Nishihara <yuya@tcha.org>
parents:
27234
diff
changeset
|
231 #endif |