Mercurial > hg
annotate tests/test-symlink-placeholder.t @ 33116:6c113a7dec52
tests: use the system hg for examining the local repository
Most test scripts use "hg" to interact with a temporary test repository.
However a few tests also want to run hg commands to interact with the local
repository containing the mercurial source code. Notably, many of the
test-check-* tests want to check local files and commit messages.
These tests were previously using the version of hg being tested to query the
source repository. However, this will fail if the source repository requires
extensions or other settings not supported by the version of mercurial being
tested. The source repository was typically initially cloned using the system
hg installation, so we should use the system hg installation to query it.
There was already a helpers-testrepo.sh script designed to help cope with
different requirements for the source repository versus the test repositories.
However, it only handled the evolve extension. This new behavior works with
any extensions that are different between the system installation and the test
installation.
author | Adam Simpkins <simpkins@fb.com> |
---|---|
date | Tue, 27 Jun 2017 17:24:31 -0700 |
parents | 7a9cbb315d84 |
children | 0a10f142299d |
rev | line source |
---|---|
22046
7a9cbb315d84
tests: replace exit 80 with #require
Matt Mackall <mpm@selenic.com>
parents:
19650
diff
changeset
|
1 #require symlink |
15441
e0348815e806
tests: use 'hghave symlink' for tests using symlinks
Mads Kiilerich <mads@kiilerich.com>
parents:
15348
diff
changeset
|
2 |
15348
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
3 Create extension that can disable symlink support: |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
4 |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
5 $ cat > nolink.py <<EOF |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
6 > from mercurial import extensions, util |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
7 > def setflags(orig, f, l, x): |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
8 > pass |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
9 > def checklink(orig, path): |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
10 > return False |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
11 > def extsetup(ui): |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
12 > extensions.wrapfunction(util, 'setflags', setflags) |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
13 > extensions.wrapfunction(util, 'checklink', checklink) |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
14 > EOF |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
15 |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
16 $ hg init unix-repo |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
17 $ cd unix-repo |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
18 $ echo foo > a |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
19 $ ln -s a b |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
20 $ hg ci -Am0 |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
21 adding a |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
22 adding b |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
23 $ cd .. |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
24 |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
25 Simulate a checkout shared on NFS/Samba: |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
26 |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
27 $ hg clone -q unix-repo shared |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
28 $ cd shared |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
29 $ rm b |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
30 $ echo foo > b |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
31 $ hg --config extensions.n=$TESTTMP/nolink.py status --debug |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
32 ignoring suspect symlink placeholder "b" |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
33 |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
34 Make a clone using placeholders: |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
35 |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
36 $ hg --config extensions.n=$TESTTMP/nolink.py clone . ../win-repo |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
37 updating to branch default |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
38 2 files updated, 0 files merged, 0 files removed, 0 files unresolved |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
39 $ cd ../win-repo |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
40 $ cat b |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
41 a (no-eol) |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
42 $ hg --config extensions.n=$TESTTMP/nolink.py st --debug |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
43 |
19650
36f48c7d5944
localrepo.status: ignore empty symlink placeholders
Siddharth Agarwal <sid0@fb.com>
parents:
16913
diff
changeset
|
44 Empty placeholder: |
36f48c7d5944
localrepo.status: ignore empty symlink placeholders
Siddharth Agarwal <sid0@fb.com>
parents:
16913
diff
changeset
|
45 |
36f48c7d5944
localrepo.status: ignore empty symlink placeholders
Siddharth Agarwal <sid0@fb.com>
parents:
16913
diff
changeset
|
46 $ rm b |
36f48c7d5944
localrepo.status: ignore empty symlink placeholders
Siddharth Agarwal <sid0@fb.com>
parents:
16913
diff
changeset
|
47 $ touch b |
36f48c7d5944
localrepo.status: ignore empty symlink placeholders
Siddharth Agarwal <sid0@fb.com>
parents:
16913
diff
changeset
|
48 $ hg --config extensions.n=$TESTTMP/nolink.py st --debug |
36f48c7d5944
localrepo.status: ignore empty symlink placeholders
Siddharth Agarwal <sid0@fb.com>
parents:
16913
diff
changeset
|
49 ignoring suspect symlink placeholder "b" |
36f48c7d5944
localrepo.status: ignore empty symlink placeholders
Siddharth Agarwal <sid0@fb.com>
parents:
16913
diff
changeset
|
50 |
15348
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
51 Write binary data to the placeholder: |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
52 |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
53 >>> open('b', 'w').write('this is a binary\0') |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
54 $ hg --config extensions.n=$TESTTMP/nolink.py st --debug |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
55 ignoring suspect symlink placeholder "b" |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
56 |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
57 Write a long string to the placeholder: |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
58 |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
59 >>> open('b', 'w').write('this' * 1000) |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
60 $ hg --config extensions.n=$TESTTMP/nolink.py st --debug |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
61 ignoring suspect symlink placeholder "b" |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
62 |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
63 Commit shouldn't succeed: |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
64 |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
65 $ hg --config extensions.n=$TESTTMP/nolink.py ci -m1 |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
66 nothing changed |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
67 [1] |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
68 |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
69 Write a valid string to the placeholder: |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
70 |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
71 >>> open('b', 'w').write('this') |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
72 $ hg --config extensions.n=$TESTTMP/nolink.py st --debug |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
73 M b |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
74 $ hg --config extensions.n=$TESTTMP/nolink.py ci -m1 |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
75 $ hg manifest tip --verbose |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
76 644 a |
c681e478c429
windows: sanity-check symlink placeholders
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
77 644 @ b |
16913
f2719b387380
tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents:
15441
diff
changeset
|
78 |
f2719b387380
tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents:
15441
diff
changeset
|
79 $ cd .. |