Mercurial > hg
annotate tests/test-inherit-mode @ 9021:2ccb527c7b1a
gendoc: fix localization of help topic
When a topic provides a callable method for its text, most likely
this text will be generated from different parts, so it does not
make sense to apply gettext on the whole result, rather the method
should provide translation by itself.
This is the case with the extensions topic, which triggers a double
gettext call, making the ASCII codec fail when it encounters 8 bit
characters, and prevents the documentation from being built.
author | Cédric Duval <cedricduval@free.fr> |
---|---|
date | Sat, 04 Jul 2009 12:12:36 +0200 |
parents | 68cfd7d208a5 |
children |
rev | line source |
---|---|
6064
c608f67a87c0
add test-inherit-mode
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
1 #!/bin/sh |
c608f67a87c0
add test-inherit-mode
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
2 |
c608f67a87c0
add test-inherit-mode
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
3 # test that new files created in .hg inherit the permissions from .hg/store |
c608f67a87c0
add test-inherit-mode
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
4 |
c608f67a87c0
add test-inherit-mode
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
5 "$TESTDIR/hghave" unix-permissions || exit 80 |
c608f67a87c0
add test-inherit-mode
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
6 |
c608f67a87c0
add test-inherit-mode
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
7 mkdir dir |
c608f67a87c0
add test-inherit-mode
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
8 # just in case somebody has a strange $TMPDIR |
c608f67a87c0
add test-inherit-mode
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
9 chmod g-s dir |
c608f67a87c0
add test-inherit-mode
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
10 cd dir |
c608f67a87c0
add test-inherit-mode
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
11 |
c608f67a87c0
add test-inherit-mode
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
12 cat >printmodes.py <<EOF |
c608f67a87c0
add test-inherit-mode
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
13 import os, sys |
c608f67a87c0
add test-inherit-mode
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
14 |
c608f67a87c0
add test-inherit-mode
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
15 allnames = [] |
c608f67a87c0
add test-inherit-mode
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
16 isdir = {} |
c608f67a87c0
add test-inherit-mode
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
17 for root, dirs, files in os.walk(sys.argv[1]): |
c608f67a87c0
add test-inherit-mode
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
18 for d in dirs: |
c608f67a87c0
add test-inherit-mode
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
19 name = os.path.join(root, d) |
c608f67a87c0
add test-inherit-mode
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
20 isdir[name] = 1 |
c608f67a87c0
add test-inherit-mode
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
21 allnames.append(name) |
c608f67a87c0
add test-inherit-mode
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
22 for f in files: |
c608f67a87c0
add test-inherit-mode
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
23 name = os.path.join(root, f) |
c608f67a87c0
add test-inherit-mode
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
24 allnames.append(name) |
c608f67a87c0
add test-inherit-mode
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
25 allnames.sort() |
c608f67a87c0
add test-inherit-mode
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
26 for name in allnames: |
c608f67a87c0
add test-inherit-mode
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
27 suffix = name in isdir and '/' or '' |
c608f67a87c0
add test-inherit-mode
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
28 print '%05o %s%s' % (os.lstat(name).st_mode & 07777, name, suffix) |
c608f67a87c0
add test-inherit-mode
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
29 EOF |
c608f67a87c0
add test-inherit-mode
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
30 |
6113
8ca25589e960
try to fix test-inherit-mode on HFS+
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
6073
diff
changeset
|
31 cat >mode.py <<EOF |
8ca25589e960
try to fix test-inherit-mode on HFS+
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
6073
diff
changeset
|
32 import sys |
8ca25589e960
try to fix test-inherit-mode on HFS+
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
6073
diff
changeset
|
33 import os |
8ca25589e960
try to fix test-inherit-mode on HFS+
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
6073
diff
changeset
|
34 print '%05o' % os.lstat(sys.argv[1]).st_mode |
8ca25589e960
try to fix test-inherit-mode on HFS+
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
6073
diff
changeset
|
35 EOF |
8ca25589e960
try to fix test-inherit-mode on HFS+
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
6073
diff
changeset
|
36 |
6064
c608f67a87c0
add test-inherit-mode
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
37 umask 077 |
c608f67a87c0
add test-inherit-mode
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
38 |
c608f67a87c0
add test-inherit-mode
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
39 hg init repo |
c608f67a87c0
add test-inherit-mode
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
40 cd repo |
c608f67a87c0
add test-inherit-mode
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
41 |
6073
89c70d496175
Use chmod 0770 and g+s instead of 02770 which does't work on Solaris 8.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
6065
diff
changeset
|
42 chmod 0770 .hg/store |
6064
c608f67a87c0
add test-inherit-mode
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
43 |
c608f67a87c0
add test-inherit-mode
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
44 echo '% before commit' |
c608f67a87c0
add test-inherit-mode
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
45 echo '% store can be written by the group, other files cannot' |
c608f67a87c0
add test-inherit-mode
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
46 echo '% store is setgid' |
c608f67a87c0
add test-inherit-mode
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
47 python ../printmodes.py . |
c608f67a87c0
add test-inherit-mode
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
48 |
c608f67a87c0
add test-inherit-mode
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
49 mkdir dir |
c608f67a87c0
add test-inherit-mode
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
50 touch foo dir/bar |
c608f67a87c0
add test-inherit-mode
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
51 hg ci -qAm 'add files' |
c608f67a87c0
add test-inherit-mode
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
52 |
c608f67a87c0
add test-inherit-mode
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
53 echo |
c608f67a87c0
add test-inherit-mode
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
54 echo '% after commit' |
c608f67a87c0
add test-inherit-mode
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
55 echo '% working dir files can only be written by the owner' |
c608f67a87c0
add test-inherit-mode
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
56 echo '% files created in .hg can be written by the group' |
6160
3ee3bc5d06c5
tests: hide the name of the branch cache file
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
6113
diff
changeset
|
57 echo '% (in particular, store/**, dirstate, branch cache file, undo files)' |
6064
c608f67a87c0
add test-inherit-mode
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
58 echo '% new directories are setgid' |
c608f67a87c0
add test-inherit-mode
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
59 python ../printmodes.py . |
c608f67a87c0
add test-inherit-mode
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
60 |
c608f67a87c0
add test-inherit-mode
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
61 umask 007 |
c608f67a87c0
add test-inherit-mode
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
62 hg init ../push |
c608f67a87c0
add test-inherit-mode
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
63 echo |
c608f67a87c0
add test-inherit-mode
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
64 echo '% before push' |
c608f67a87c0
add test-inherit-mode
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
65 echo '% group can write everything' |
c608f67a87c0
add test-inherit-mode
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
66 python ../printmodes.py ../push |
c608f67a87c0
add test-inherit-mode
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
67 |
c608f67a87c0
add test-inherit-mode
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
68 umask 077 |
c608f67a87c0
add test-inherit-mode
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
69 hg -q push ../push |
c608f67a87c0
add test-inherit-mode
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
70 echo |
c608f67a87c0
add test-inherit-mode
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
71 echo '% after push' |
c608f67a87c0
add test-inherit-mode
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
72 echo '% group can still write everything' |
c608f67a87c0
add test-inherit-mode
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
73 python ../printmodes.py ../push |
6113
8ca25589e960
try to fix test-inherit-mode on HFS+
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
6073
diff
changeset
|
74 |
8ca25589e960
try to fix test-inherit-mode on HFS+
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
6073
diff
changeset
|
75 # Test that we don't lose the setgid bit when we call chmod. |
8ca25589e960
try to fix test-inherit-mode on HFS+
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
6073
diff
changeset
|
76 # Not all systems support setgid directories (e.g. HFS+), so |
8ca25589e960
try to fix test-inherit-mode on HFS+
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
6073
diff
changeset
|
77 # just check that directories have the same mode. |
8ca25589e960
try to fix test-inherit-mode on HFS+
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
6073
diff
changeset
|
78 cd .. |
8ca25589e960
try to fix test-inherit-mode on HFS+
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
6073
diff
changeset
|
79 hg init setgid |
8ca25589e960
try to fix test-inherit-mode on HFS+
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
6073
diff
changeset
|
80 cd setgid |
6301
68cfd7d208a5
Fix thinko in test-inherit-mode
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
6160
diff
changeset
|
81 chmod g+rwx .hg/store |
6113
8ca25589e960
try to fix test-inherit-mode on HFS+
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
6073
diff
changeset
|
82 chmod g+s .hg/store 2> /dev/null |
8ca25589e960
try to fix test-inherit-mode on HFS+
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
6073
diff
changeset
|
83 mkdir dir |
8ca25589e960
try to fix test-inherit-mode on HFS+
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
6073
diff
changeset
|
84 touch dir/file |
8ca25589e960
try to fix test-inherit-mode on HFS+
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
6073
diff
changeset
|
85 hg ci -qAm 'add dir/file' |
8ca25589e960
try to fix test-inherit-mode on HFS+
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
6073
diff
changeset
|
86 storemode=`python ../mode.py .hg/store` |
8ca25589e960
try to fix test-inherit-mode on HFS+
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
6073
diff
changeset
|
87 dirmode=`python ../mode.py .hg/store/data/dir` |
8ca25589e960
try to fix test-inherit-mode on HFS+
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
6073
diff
changeset
|
88 if [ "$storemode" != "$dirmode" ]; then |
8ca25589e960
try to fix test-inherit-mode on HFS+
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
6073
diff
changeset
|
89 echo "$storemode != $dirmode" |
8ca25589e960
try to fix test-inherit-mode on HFS+
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
6073
diff
changeset
|
90 fi |
8ca25589e960
try to fix test-inherit-mode on HFS+
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
6073
diff
changeset
|
91 |