gitolite/t/t67-hub
2011-10-11 13:53:58 +05:30

195 lines
6.3 KiB
Plaintext

# vim: syn=sh:
for bc in 0 1
do
cd $TESTDIR
$TESTDIR/rollback || die "rollback failed"
editrc GL_BIG_CONFIG $bc
editrc GL_WILDREPOS 1
rm -rf $ADC_PATH
mkdir $ADC_PATH || die "mkdir $ADC_PATH failed"
cp ../contrib/adc/* $ADC_PATH
echo "\$GL_ADC_PATH = '$ADC_PATH';" | addrc
runremote rm -f .gitolite.down
# ----------
name "INTERNAL"
echo "
@alice = u1
@bob = u2
@parent = r1
@child = r2
repo @parent
RW+ = @alice
RW = tester
R = @bob
@children = child/CREATOR/..*
repo @children
C = @all
RW+ = CREATOR
" | ugc
expect_push_ok "master -> master"
name "setup: parent gets some branches"
cd ~/td
runlocal git clone u1:r1
cd r1
mdc base1; mdc base2; mdc base3
runlocal git branch p3
runlocal git branch p2
runlocal git branch p1
mdc p1a; mdc p1b; mdc p1c
runlocal git checkout p2
mdc p2a; mdc p2b; mdc p2c
runlocal git checkout p3
mdc p3a; mdc p3b; mdc p3c
runlocal git push origin --all
expect "To u1:r1"
expect "\* \[new branch\] master -> master"
expect "\* \[new branch\] p1 -> p1"
expect "\* \[new branch\] p2 -> p2"
expect "\* \[new branch\] p3 -> p3"
name "setup: child is cloned and adds b1 and b2"
cd ~/td
runlocal ssh u2 fork r1 child/u2/myr1
runremote ls -al $TEST_BASE/child/u2/myr1.git/gl-forked-from
expect "$USER $USER 3 .* $TEST_BASE/child/u2/myr1.git/gl-forked-from"
runremote cat $TEST_BASE/child/u2/myr1.git/gl-forked-from
expect r1
runlocal git clone u2:child/u2/myr1
cd myr1
runlocal git checkout -b b1 origin/p1
mdc c1
runlocal git checkout -b b2 origin/p2
mdc d1; mdc d2
runlocal git checkout -b b3 origin/p3
mdc e1; mdc e2; mdc e3
runlocal git push origin b1 b2 b3
expect "To u2:child/u2/myr1"
expect "\* \[new branch\] b1 -> b1"
expect "\* \[new branch\] b2 -> b2"
expect "\* \[new branch\] b3 -> b3"
name "bob sends in a few pull requests"
printf "hello\nthere" | runlocal ssh u2 hub request-pull child/u2/myr1 b1
notexpect .
printf "hi\nthere" | runlocal ssh u2 hub request-pull child/u2/myr1 b2
notexpect .
printf "hello\nagain" | runlocal ssh u2 hub request-pull child/u2/myr1 b3
notexpect .
name "bob checks his pending requests"
runlocal ssh u2 hub request-status child/u2/myr1
expect "1 child/u2/myr1 (u2) b1 pending"
expect "2 child/u2/myr1 (u2) b2 pending"
expect "3 child/u2/myr1 (u2) b3 pending"
name "alice checks her pull requests"
runlocal ssh u1 hub list-requests r1
expect "1 child/u2/myr1 (u2) b1 pending"
expect "2 child/u2/myr1 (u2) b2 pending"
expect "3 child/u2/myr1 (u2) b3 pending"
name "alice views request 1"
runlocal ssh u1 hub view-request r1 1
expect "1 child/u2/myr1 (u2) b1 pending"
expect ^hello
expect ^there
name "alice views log and diffs"
runlocal ssh u1 hub view-log r1 1
expect "commit [0-9a-f]*$"
expect "Author: gitolite tester .tester@example.com."
expect "setup: child is cloned and adds b1 and b2"
runlocal ssh u1 hub view-log r1 3 --oneline
expect "setup: child is cloned and adds b1 and b2"
notexpect commit
diffargs=`tac ~/1 | cut -f1 -d' ' | sed -n -e1p -e3p`
wc < ~/1 > ~/2; > ~/1
expect "3 30 150"
runlocal ssh u1 hub view-log r1 2 b1
expect "fatal: ambiguous argument 'b1': unknown revision or path not in the working tree."
runlocal ssh u1 hub view-diff r1 3 $diffargs
expect "diff.*e2"
expect "diff.*e3"
expect "new file mode"
name "alice tries to view a SHA she shouldnt"
echo > ~/1
echo > ~/2
runlocal ssh u1 hub view-diff r1 2 $diffargs
notexpect "diff.*e2"
notexpect "diff.*e3"
notexpect "new file mode"
expect "invalid SHA:"
name "alice rejects 2, fetches 3"
echo captain was sober today | runlocal ssh u1 hub reject r1 2
notexpect .
echo | runlocal ssh u1 hub fetch r1 3
expect "user u2 asked you to"
expect "git fetch git://gl.example.com/child/u2/myr1 b3"
expect "From $TEST_BASE_FULL/child/u2/myr1"
expect "\* \[new branch\] b3 -> requests/child/b3"
name "bob checks his pending requests"
runlocal ssh u2 hub request-status child/u2/myr1
expect "1 child/u2/myr1 (u2) b1 pending"
expect "2 child/u2/myr1 (u2) b2 rejected by u1"
expect "3 child/u2/myr1 (u2) b3 fetched by u1"
name "alice checks her pull requests"
runlocal ssh u1 hub list-requests r1
expect "1 child/u2/myr1 (u2) b1 pending"
expect "2 child/u2/myr1 (u2) b2 rejected by u1"
expect "3 child/u2/myr1 (u2) b3 fetched by u1"
name "alice checks her pull requests by pattern"
runlocal ssh u1 hub list-requests r1 rej
notexpect "1 child/u2/myr1 (u2) b1 pending"
expect "2 child/u2/myr1 (u2) b2 rejected by u1"
notexpect "3 child/u2/myr1 (u2) b3 fetched by u1"
runlocal ssh u1 hub list-requests r1 pend rej
expect "1 child/u2/myr1 (u2) b1 pending"
expect "2 child/u2/myr1 (u2) b2 rejected by u1"
notexpect "3 child/u2/myr1 (u2) b3 fetched by u1"
name "alice accepts 3, then checks her pull requests"
echo the rain in spain | runlocal ssh u1 hub accept r1 3
notexpect .
runlocal ssh u1 hub list-requests r1
expect "1 child/u2/myr1 (u2) b1 pending"
expect "2 child/u2/myr1 (u2) b2 rejected by u1"
expect "3 child/u2/myr1 (u2) b3 accepted by u1"
name "bob checks the request-status on each request"
runlocal ssh u2 hub request-status child/u2/myr1 1
expect "1 child/u2/myr1 (u2) b1 pending"
expect "^Message:"
expect "^hello"
expect "^there"
runlocal ssh u2 hub request-status child/u2/myr1 2
expect "1 child/u2/myr1 (u2) b2 rejected by u1"
expect "^Message:"
expect "^hi"
expect "^there"
expect "Rejected. Message to requestor:"
expect "captain was sober today"
runlocal ssh u2 hub request-status child/u2/myr1 3
expect "1 child/u2/myr1 (u2) b3 accepted by u1"
expect "^Message:"
expect "^hello"
expect "^again"
expect "Accepted. Message to requestor:"
expect "the rain in spain"
name "INTERNAL"
done