(tests) t59 to test previous commit...
(the one that distinguishes "repo not found" from "no access")
This commit is contained in:
parent
c25e05d87b
commit
cd0835feb1
114
t/t59-repo-not-on-disk
Normal file
114
t/t59-repo-not-on-disk
Normal file
|
@ -0,0 +1,114 @@
|
|||
# vim: syn=sh:
|
||||
# check basic repo level permissions, including what happens when the repo on
|
||||
# disk is missing (non-wildcard only)
|
||||
|
||||
for bc in 0 1
|
||||
do
|
||||
cd $TESTDIR
|
||||
$TESTDIR/rollback || die "rollback failed"
|
||||
editrc GL_BIG_CONFIG $bc
|
||||
|
||||
name "INTERNAL"
|
||||
echo "
|
||||
@g1 = u1 u2
|
||||
@g2 = u3 u4
|
||||
@g3 = u5 u6
|
||||
repo aa
|
||||
RW+ = tester
|
||||
RW = @g1
|
||||
R = @g2
|
||||
" | ugc
|
||||
expect_push_ok "master -> master"
|
||||
expect "remote: Initialized empty Git repository in /home/gitolite-test/repositories/aa.git/"
|
||||
|
||||
cd ~/td
|
||||
name "check u1 can auto-create and push"
|
||||
runlocal git clone u1:aa
|
||||
expect "Cloning into aa..."
|
||||
expect "warning: You appear to have cloned an empty repository"
|
||||
cd ~/td/aa
|
||||
mdc; mdc; mdc
|
||||
mdc; mdc; mdc
|
||||
mdc; mdc; mdc
|
||||
name "INTERNAL"
|
||||
runlocal git push origin HEAD
|
||||
expect "To u1:aa"
|
||||
expect "\* \[new branch\] HEAD -> master"
|
||||
expect_push_ok "HEAD -> master"
|
||||
|
||||
name "check u1 cant rewind"
|
||||
runlocal git reset --hard HEAD^
|
||||
runlocal git push origin +master
|
||||
expect "remote: + refs/heads/master aa u1 DENIED by fallthru"
|
||||
expect "remote: error: hook declined to update refs/heads/master"
|
||||
expect "\[remote rejected\] master -> master (hook declined)"
|
||||
|
||||
cd ~/td
|
||||
rm -rf aa
|
||||
name "check tester can rewind"
|
||||
runlocal git clone gitolite:aa
|
||||
expect "Cloning into aa..."
|
||||
cd aa
|
||||
runlocal git reset --hard HEAD^
|
||||
runlocal git push origin +master
|
||||
expect_push_ok "master -> master (forced update)"
|
||||
|
||||
cd ~/td
|
||||
rm -rf aa
|
||||
name "check u4 can only read"
|
||||
runlocal git clone u4:aa
|
||||
expect "Cloning into aa..."
|
||||
cd aa
|
||||
mdc; mdc; mdc
|
||||
runlocal git push origin master
|
||||
expect "W access for aa DENIED to u4"
|
||||
|
||||
cd ~/td
|
||||
rm -rf aa
|
||||
name "check u6 cant even read"
|
||||
runlocal git clone u6:aa
|
||||
expect "Cloning into aa..."
|
||||
expect "R access for aa DENIED to u6"
|
||||
|
||||
# now the same thing with the repo-on-disk missing
|
||||
runremote rm -rf repositories/aa.git
|
||||
|
||||
cd ~/td
|
||||
name "repo on disk missing: u1"
|
||||
runlocal git clone u1:aa
|
||||
expect "fatal: 'repositories/aa.git' does not appear to be a git repository"
|
||||
|
||||
name "repo on disk missing: tester"
|
||||
runlocal git clone gitolite:aa
|
||||
expect "fatal: 'repositories/aa.git' does not appear to be a git repository"
|
||||
|
||||
name "repo on disk missing: u4"
|
||||
runlocal git clone u4:aa
|
||||
expect "fatal: 'repositories/aa.git' does not appear to be a git repository"
|
||||
|
||||
name "repo on disk missing: u6"
|
||||
runlocal git clone u6:aa
|
||||
expect "R access for aa DENIED to u6"
|
||||
|
||||
# now the same thing with a repo that is not even in the config
|
||||
|
||||
cd ~/td
|
||||
name "repo on disk missing: u1"
|
||||
runlocal git clone u1:bb
|
||||
expect "R access for bb DENIED to u1"
|
||||
|
||||
name "repo on disk missing: tester"
|
||||
runlocal git clone gitolite:bb
|
||||
expect "R access for bb DENIED to tester"
|
||||
|
||||
name "repo on disk missing: u4"
|
||||
runlocal git clone u4:bb
|
||||
expect "R access for bb DENIED to u4"
|
||||
|
||||
name "repo on disk missing: u6"
|
||||
runlocal git clone u6:bb
|
||||
expect "R access for bb DENIED to u6"
|
||||
|
||||
name INTERNAL
|
||||
done
|
||||
|
Loading…
Reference in a new issue