##// END OF EJS Templates
Don't use test -e in tests - sh doesn't like it on Solaris
Alexis S. L. Carvalho -
r3469:33b6c819 default
parent child Browse files
Show More
@@ -1,109 +1,109 b''
1 #!/bin/sh
1 #!/bin/sh
2
2
3 do_push()
3 do_push()
4 {
4 {
5 user=$1
5 user=$1
6 shift
6 shift
7
7
8 echo "Pushing as user $user"
8 echo "Pushing as user $user"
9 echo 'hgrc = """'
9 echo 'hgrc = """'
10 sed -e 1,2d b/.hg/hgrc
10 sed -e 1,2d b/.hg/hgrc
11 echo '"""'
11 echo '"""'
12 if [ -e acl.config ]; then
12 if test -f acl.config; then
13 echo 'acl.config = """'
13 echo 'acl.config = """'
14 cat acl.config
14 cat acl.config
15 echo '"""'
15 echo '"""'
16 fi
16 fi
17 LOGNAME=$user hg --cwd a --debug push ../b
17 LOGNAME=$user hg --cwd a --debug push ../b
18 hg --cwd b rollback
18 hg --cwd b rollback
19 hg --cwd b --quiet tip
19 hg --cwd b --quiet tip
20 echo
20 echo
21 }
21 }
22
22
23 hg init a
23 hg init a
24 cd a
24 cd a
25 mkdir foo foo/Bar quux
25 mkdir foo foo/Bar quux
26 echo 'in foo' > foo/file.txt
26 echo 'in foo' > foo/file.txt
27 echo 'in foo/Bar' > foo/Bar/file.txt
27 echo 'in foo/Bar' > foo/Bar/file.txt
28 echo 'in quux' > quux/file.py
28 echo 'in quux' > quux/file.py
29 hg add
29 hg add
30 hg ci -m 'add files' -d '1000000 0'
30 hg ci -m 'add files' -d '1000000 0'
31 echo >> foo/file.txt
31 echo >> foo/file.txt
32 hg ci -m 'change foo/file' -d '1000001 0'
32 hg ci -m 'change foo/file' -d '1000001 0'
33 echo >> foo/Bar/file.txt
33 echo >> foo/Bar/file.txt
34 hg ci -m 'change foo/Bar/file' -d '1000002 0'
34 hg ci -m 'change foo/Bar/file' -d '1000002 0'
35 echo >> quux/file.py
35 echo >> quux/file.py
36 hg ci -m 'change quux/file' -d '1000003 0'
36 hg ci -m 'change quux/file' -d '1000003 0'
37 hg tip --quiet
37 hg tip --quiet
38
38
39 cd ..
39 cd ..
40 hg clone -r 0 a b
40 hg clone -r 0 a b
41
41
42 echo '[extensions]' >> $HGRCPATH
42 echo '[extensions]' >> $HGRCPATH
43 echo 'hgext.acl =' >> $HGRCPATH
43 echo 'hgext.acl =' >> $HGRCPATH
44
44
45 config=b/.hg/hgrc
45 config=b/.hg/hgrc
46
46
47 echo
47 echo
48
48
49 echo 'Extension disabled for lack of a hook'
49 echo 'Extension disabled for lack of a hook'
50 do_push fred
50 do_push fred
51
51
52 echo '[hooks]' >> $config
52 echo '[hooks]' >> $config
53 echo 'pretxnchangegroup.acl = python:hgext.acl.hook' >> $config
53 echo 'pretxnchangegroup.acl = python:hgext.acl.hook' >> $config
54
54
55 echo 'Extension disabled for lack of acl.sources'
55 echo 'Extension disabled for lack of acl.sources'
56 do_push fred
56 do_push fred
57
57
58 echo 'No [acl.allow]/[acl.deny]'
58 echo 'No [acl.allow]/[acl.deny]'
59 echo '[acl]' >> $config
59 echo '[acl]' >> $config
60 echo 'sources = push' >> $config
60 echo 'sources = push' >> $config
61 do_push fred
61 do_push fred
62
62
63 echo 'Empty [acl.allow]'
63 echo 'Empty [acl.allow]'
64 echo '[acl.allow]' >> $config
64 echo '[acl.allow]' >> $config
65 do_push fred
65 do_push fred
66
66
67 echo 'fred is allowed inside foo/'
67 echo 'fred is allowed inside foo/'
68 echo 'foo/** = fred' >> $config
68 echo 'foo/** = fred' >> $config
69 do_push fred
69 do_push fred
70
70
71 echo 'Empty [acl.deny]'
71 echo 'Empty [acl.deny]'
72 echo '[acl.deny]' >> $config
72 echo '[acl.deny]' >> $config
73 do_push barney
73 do_push barney
74
74
75 echo 'fred is allowed inside foo/, but not foo/bar/ (case matters)'
75 echo 'fred is allowed inside foo/, but not foo/bar/ (case matters)'
76 echo 'foo/bar/** = fred' >> $config
76 echo 'foo/bar/** = fred' >> $config
77 do_push fred
77 do_push fred
78
78
79 echo 'fred is allowed inside foo/, but not foo/Bar/'
79 echo 'fred is allowed inside foo/, but not foo/Bar/'
80 echo 'foo/Bar/** = fred' >> $config
80 echo 'foo/Bar/** = fred' >> $config
81 do_push fred
81 do_push fred
82
82
83 echo 'barney is not mentioned => not allowed anywhere'
83 echo 'barney is not mentioned => not allowed anywhere'
84 do_push barney
84 do_push barney
85
85
86 echo 'barney is allowed everywhere'
86 echo 'barney is allowed everywhere'
87 echo '[acl.allow]' >> $config
87 echo '[acl.allow]' >> $config
88 echo '** = barney' >> $config
88 echo '** = barney' >> $config
89 do_push barney
89 do_push barney
90
90
91 echo 'wilma can change files with a .txt extension'
91 echo 'wilma can change files with a .txt extension'
92 echo '**/*.txt = wilma' >> $config
92 echo '**/*.txt = wilma' >> $config
93 do_push wilma
93 do_push wilma
94
94
95 echo 'file specified by acl.config does not exist'
95 echo 'file specified by acl.config does not exist'
96 echo '[acl]' >> $config
96 echo '[acl]' >> $config
97 echo 'config = ../acl.config' >> $config
97 echo 'config = ../acl.config' >> $config
98 do_push barney
98 do_push barney
99
99
100 echo 'betty is allowed inside foo/ by a acl.config file'
100 echo 'betty is allowed inside foo/ by a acl.config file'
101 echo '[acl.allow]' >> acl.config
101 echo '[acl.allow]' >> acl.config
102 echo 'foo/** = betty' >> acl.config
102 echo 'foo/** = betty' >> acl.config
103 do_push betty
103 do_push betty
104
104
105 echo 'acl.config can set only [acl.allow]/[acl.deny]'
105 echo 'acl.config can set only [acl.allow]/[acl.deny]'
106 echo '[hooks]' >> acl.config
106 echo '[hooks]' >> acl.config
107 echo 'changegroup.acl = false' >> acl.config
107 echo 'changegroup.acl = false' >> acl.config
108 do_push barney
108 do_push barney
109
109
@@ -1,27 +1,27 b''
1 #!/bin/sh
1 #!/bin/sh
2
2
3 hg clone http://localhost:20059/ copy
3 hg clone http://localhost:20059/ copy
4 echo $?
4 echo $?
5 test -e copy || echo copy: No such file or directory
5 test -d copy || echo copy: No such file or directory
6
6
7 cat > dumb.py <<EOF
7 cat > dumb.py <<EOF
8 import BaseHTTPServer, SimpleHTTPServer, signal
8 import BaseHTTPServer, SimpleHTTPServer, signal
9
9
10 def run(server_class=BaseHTTPServer.HTTPServer,
10 def run(server_class=BaseHTTPServer.HTTPServer,
11 handler_class=SimpleHTTPServer.SimpleHTTPRequestHandler):
11 handler_class=SimpleHTTPServer.SimpleHTTPRequestHandler):
12 server_address = ('localhost', 20059)
12 server_address = ('localhost', 20059)
13 httpd = server_class(server_address, handler_class)
13 httpd = server_class(server_address, handler_class)
14 httpd.serve_forever()
14 httpd.serve_forever()
15
15
16 signal.signal(signal.SIGTERM, lambda x: sys.exit(0))
16 signal.signal(signal.SIGTERM, lambda x: sys.exit(0))
17 run()
17 run()
18 EOF
18 EOF
19
19
20 python dumb.py 2>/dev/null &
20 python dumb.py 2>/dev/null &
21 echo $! >> $DAEMON_PIDS
21 echo $! >> $DAEMON_PIDS
22
22
23 http_proxy= hg clone http://localhost:20059/foo copy2 2>&1 | \
23 http_proxy= hg clone http://localhost:20059/foo copy2 2>&1 | \
24 sed -e 's/404.*/404/' -e 's/Date:.*/Date:/'
24 sed -e 's/404.*/404/' -e 's/Date:.*/Date:/'
25 echo $?
25 echo $?
26
26
27 kill $!
27 kill $!
@@ -1,16 +1,16 b''
1 #!/bin/sh
1 #!/bin/sh
2
2
3 hg init
3 hg init
4 echo 123 > a
4 echo 123 > a
5 hg add a
5 hg add a
6 hg commit -m "first" -d "1000000 0" a
6 hg commit -m "first" -d "1000000 0" a
7 mkdir sub
7 mkdir sub
8 echo 321 > sub/b
8 echo 321 > sub/b
9 hg add sub/b
9 hg add sub/b
10 hg commit -m "second" -d "1000000 0" sub/b
10 hg commit -m "second" -d "1000000 0" sub/b
11 cat sub/b
11 cat sub/b
12 hg co 0
12 hg co 0
13 cat sub/b 2>/dev/null || echo "sub/b not present"
13 cat sub/b 2>/dev/null || echo "sub/b not present"
14 test -e sub || echo "sub not present"
14 test -d sub || echo "sub not present"
15
15
16 true
16 true
@@ -1,50 +1,50 b''
1 #!/bin/sh
1 #!/bin/sh
2
2
3 http_proxy= hg clone static-http://localhost:20059/ copy
3 http_proxy= hg clone static-http://localhost:20059/ copy
4 echo $?
4 echo $?
5 test -e copy || echo copy: No such file or directory
5 test -d copy || echo copy: No such file or directory
6
6
7 # This server doesn't do range requests so it's basically only good for
7 # This server doesn't do range requests so it's basically only good for
8 # one pull
8 # one pull
9 cat > dumb.py <<EOF
9 cat > dumb.py <<EOF
10 import BaseHTTPServer, SimpleHTTPServer, signal
10 import BaseHTTPServer, SimpleHTTPServer, signal
11
11
12 def run(server_class=BaseHTTPServer.HTTPServer,
12 def run(server_class=BaseHTTPServer.HTTPServer,
13 handler_class=SimpleHTTPServer.SimpleHTTPRequestHandler):
13 handler_class=SimpleHTTPServer.SimpleHTTPRequestHandler):
14 server_address = ('localhost', 20059)
14 server_address = ('localhost', 20059)
15 httpd = server_class(server_address, handler_class)
15 httpd = server_class(server_address, handler_class)
16 httpd.serve_forever()
16 httpd.serve_forever()
17
17
18 signal.signal(signal.SIGTERM, lambda x: sys.exit(0))
18 signal.signal(signal.SIGTERM, lambda x: sys.exit(0))
19 run()
19 run()
20 EOF
20 EOF
21
21
22 python dumb.py 2>/dev/null &
22 python dumb.py 2>/dev/null &
23 echo $! >> $DAEMON_PIDS
23 echo $! >> $DAEMON_PIDS
24
24
25 mkdir remote
25 mkdir remote
26 cd remote
26 cd remote
27 hg init
27 hg init
28 echo foo > bar
28 echo foo > bar
29 hg add bar
29 hg add bar
30 hg commit -m"test" -d "1000000 0"
30 hg commit -m"test" -d "1000000 0"
31 hg tip
31 hg tip
32
32
33 cd ..
33 cd ..
34
34
35 http_proxy= hg clone static-http://localhost:20059/remote local
35 http_proxy= hg clone static-http://localhost:20059/remote local
36
36
37 cd local
37 cd local
38 hg verify
38 hg verify
39 cat bar
39 cat bar
40
40
41 cd ../remote
41 cd ../remote
42 echo baz > quux
42 echo baz > quux
43 hg commit -A -mtest2 -d '100000000 0'
43 hg commit -A -mtest2 -d '100000000 0'
44
44
45 cd ../local
45 cd ../local
46 echo '[hooks]' >> .hg/hgrc
46 echo '[hooks]' >> .hg/hgrc
47 echo 'changegroup = echo changegroup: u=$HG_URL' >> .hg/hgrc
47 echo 'changegroup = echo changegroup: u=$HG_URL' >> .hg/hgrc
48 http_proxy= hg pull
48 http_proxy= hg pull
49
49
50 kill $!
50 kill $!
General Comments 0
You need to be logged in to leave comments. Login now