##// END OF EJS Templates
run-tests: give each child its own tmp dir (issue1911)...
run-tests: give each child its own tmp dir (issue1911) Fixes bug introduced by f8b4df4b033d (issue1911: --tmpdir plus parallel mode = fail), and also fixes the long-standing quirk that parallel mode created multiple /tmp/hgtests.XXXXXX directories. Now there is only one /tmp/hgtests.XXXXXX, with child0, child1, etc. under it.

File last commit:

r7512:0d488f7f default
r9899:be574a37 stable
Show More
test-acl
113 lines | 2.4 KiB | text/plain | TextLexer
Alexis S. L. Carvalho
Add a test for the acl extension
r3426 #!/bin/sh
do_push()
{
user=$1
shift
echo "Pushing as user $user"
echo 'hgrc = """'
sed -e 1,2d b/.hg/hgrc
echo '"""'
Alexis S. L. Carvalho
Don't use test -e in tests - sh doesn't like it on Solaris
r3469 if test -f acl.config; then
Alexis S. L. Carvalho
Add a test for the acl extension
r3426 echo 'acl.config = """'
cat acl.config
echo '"""'
fi
Jim Hague
Fix test-acl failure on AIX due to read only LOGNAME....
r7512 # On AIX /etc/profile sets LOGNAME read-only. So
# LOGNAME=$user hg --cws a --debug push ../b
# fails with "This variable is read only."
# Use env to work around this.
env LOGNAME=$user hg --cwd a --debug push ../b
Alexis S. L. Carvalho
Add a test for the acl extension
r3426 hg --cwd b rollback
hg --cwd b --quiet tip
echo
}
hg init a
cd a
mkdir foo foo/Bar quux
echo 'in foo' > foo/file.txt
echo 'in foo/Bar' > foo/Bar/file.txt
echo 'in quux' > quux/file.py
Alexis S. L. Carvalho
make test-acl a bit more digestable for windows
r4138 hg add -q
Alexis S. L. Carvalho
Add a test for the acl extension
r3426 hg ci -m 'add files' -d '1000000 0'
echo >> foo/file.txt
hg ci -m 'change foo/file' -d '1000001 0'
echo >> foo/Bar/file.txt
hg ci -m 'change foo/Bar/file' -d '1000002 0'
echo >> quux/file.py
hg ci -m 'change quux/file' -d '1000003 0'
hg tip --quiet
cd ..
hg clone -r 0 a b
echo '[extensions]' >> $HGRCPATH
echo 'hgext.acl =' >> $HGRCPATH
config=b/.hg/hgrc
echo
echo 'Extension disabled for lack of a hook'
do_push fred
echo '[hooks]' >> $config
echo 'pretxnchangegroup.acl = python:hgext.acl.hook' >> $config
echo 'Extension disabled for lack of acl.sources'
do_push fred
echo 'No [acl.allow]/[acl.deny]'
echo '[acl]' >> $config
echo 'sources = push' >> $config
do_push fred
echo 'Empty [acl.allow]'
echo '[acl.allow]' >> $config
do_push fred
echo 'fred is allowed inside foo/'
echo 'foo/** = fred' >> $config
do_push fred
echo 'Empty [acl.deny]'
echo '[acl.deny]' >> $config
do_push barney
echo 'fred is allowed inside foo/, but not foo/bar/ (case matters)'
echo 'foo/bar/** = fred' >> $config
do_push fred
echo 'fred is allowed inside foo/, but not foo/Bar/'
echo 'foo/Bar/** = fred' >> $config
do_push fred
echo 'barney is not mentioned => not allowed anywhere'
do_push barney
echo 'barney is allowed everywhere'
echo '[acl.allow]' >> $config
echo '** = barney' >> $config
do_push barney
echo 'wilma can change files with a .txt extension'
echo '**/*.txt = wilma' >> $config
do_push wilma
echo 'file specified by acl.config does not exist'
echo '[acl]' >> $config
echo 'config = ../acl.config' >> $config
do_push barney
echo 'betty is allowed inside foo/ by a acl.config file'
echo '[acl.allow]' >> acl.config
echo 'foo/** = betty' >> acl.config
do_push betty
Alexis S. L. Carvalho
use ui.readsections in the acl extension
r3436 echo 'acl.config can set only [acl.allow]/[acl.deny]'
echo '[hooks]' >> acl.config
echo 'changegroup.acl = false' >> acl.config
do_push barney