2010-06-12 07:33:53 +02:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
# see some sample tests for how to use these functions; there is not
|
|
|
|
# documentation
|
|
|
|
|
|
|
|
testnum=0
|
|
|
|
|
|
|
|
# remote local command
|
|
|
|
runlocal() { "$@" > ~/1 2> ~/2; }
|
|
|
|
# remote run command
|
|
|
|
runremote() { ssh gitolite-test@localhost "$@" > ~/1 2> ~/2; }
|
|
|
|
# remote list repositories
|
|
|
|
listrepos() { ssh gitolite-test@localhost find repositories -type d -name "*.git" | sort > ~/1 2> ~/2; }
|
|
|
|
# remote cat compiled pm
|
|
|
|
catconf() { ssh gitolite-test@localhost cat .gitolite/conf/gitolite.conf-compiled.pm > ~/1 2> ~/2; }
|
2011-01-01 10:44:54 +01:00
|
|
|
catconfs() {
|
|
|
|
(
|
|
|
|
ssh gitolite-test@localhost cat .gitolite/conf/gitolite.conf-compiled.pm
|
|
|
|
ssh gitolite-test@localhost find repositories -name gl-conf \| sort
|
|
|
|
ssh gitolite-test@localhost find repositories -name gl-conf \| sort \| xargs cat
|
|
|
|
) > ~/1 2> ~/2
|
|
|
|
}
|
2010-06-12 07:33:53 +02:00
|
|
|
# remote cat ~/.gitolite.rc
|
|
|
|
catrc() { ssh gitolite-test@localhost cat .gitolite.rc > ~/1 2> ~/2; }
|
|
|
|
# tail gitolite logfile
|
|
|
|
taillog() { ssh gitolite-test@localhost tail $1 .gitolite/logs/gitolite-????-??.log > ~/1 2> ~/2; }
|
|
|
|
hl() { # highlight function
|
|
|
|
normal=`tput sgr0`
|
|
|
|
red=`tput sgr0; tput setaf 1; tput bold`
|
2011-01-15 16:39:56 +01:00
|
|
|
echo >&2
|
2010-06-12 07:33:53 +02:00
|
|
|
if [[ -n $1 ]]
|
|
|
|
then
|
2011-01-15 16:39:56 +01:00
|
|
|
echo $red"$@"$normal >&2
|
2010-06-12 07:33:53 +02:00
|
|
|
else
|
2011-01-15 16:39:56 +01:00
|
|
|
echo $red >&2
|
2010-06-12 07:33:53 +02:00
|
|
|
cat
|
2011-01-15 16:39:56 +01:00
|
|
|
echo $normal >&2
|
2010-06-12 07:33:53 +02:00
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
|
|
|
capture() { cf=$1; shift; "$@" >& $TESTDIR/$cf; }
|
|
|
|
|
|
|
|
editrc() {
|
|
|
|
scp gitolite-test@localhost:.gitolite.rc ~/junk >/dev/null
|
2011-01-15 16:39:56 +01:00
|
|
|
perl -pi -e "print STDERR if not /^#/ and /$1\b/ and s/=.*/= $2;/" ~/junk 2> >(sed -e 's/^/# /')
|
2010-06-12 07:33:53 +02:00
|
|
|
scp ~/junk gitolite-test@localhost:.gitolite.rc >/dev/null
|
|
|
|
}
|
|
|
|
|
2010-06-26 02:00:15 +02:00
|
|
|
addrc() {
|
|
|
|
ssh gitolite-test@localhost cat .gitolite.rc < /dev/null > ~/junk
|
|
|
|
tee -a ~/junk
|
|
|
|
echo '1;' >> ~/junk
|
|
|
|
scp ~/junk gitolite-test@localhost:.gitolite.rc >/dev/null
|
|
|
|
}
|
|
|
|
|
2010-06-12 07:33:53 +02:00
|
|
|
ugc ()
|
|
|
|
{
|
|
|
|
(
|
|
|
|
cd ~/gitolite-admin;
|
|
|
|
[[ $1 == -r ]] && {
|
|
|
|
shift
|
|
|
|
cat $TESTDIR/basic.conf > conf/gitolite.conf
|
|
|
|
}
|
|
|
|
cat >> conf/gitolite.conf
|
|
|
|
git add conf keydir;
|
|
|
|
git commit --allow-empty -m "$TESTNAME";
|
|
|
|
git push ${1:-gitolite}:gitolite-admin master
|
|
|
|
git fetch origin >/dev/null 2>&1
|
|
|
|
) >~/1 2>~/2
|
2010-07-20 09:09:06 +02:00
|
|
|
grep DBG: ~/2 >/dev/null && grep . ~/1 ~/2
|
2010-06-12 07:33:53 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
mdc()
|
|
|
|
{
|
|
|
|
(
|
|
|
|
echo $RANDOM > ${1:-$RANDOM}
|
|
|
|
git add .
|
|
|
|
git commit -m "$TESTNAME"
|
|
|
|
) >~/1 2>~/2
|
|
|
|
}
|
|
|
|
|
|
|
|
# set test name/desc
|
|
|
|
name() {
|
2011-01-15 16:39:56 +01:00
|
|
|
export TESTNAME="$*"
|
|
|
|
if [[ $TESTNAME != INTERNAL ]]
|
2010-06-12 07:33:53 +02:00
|
|
|
then
|
2011-01-15 16:39:56 +01:00
|
|
|
echo '#' "$*"
|
2010-06-12 07:33:53 +02:00
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
2011-01-15 16:39:56 +01:00
|
|
|
ok() {
|
|
|
|
(( testnum++ ))
|
|
|
|
echo 'ok' "($testnum) $*"
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2010-06-12 07:33:53 +02:00
|
|
|
notok() {
|
2011-01-15 16:39:56 +01:00
|
|
|
(( testnum++ ))
|
|
|
|
echo 'not ok' "($testnum) $*"
|
2010-06-12 07:33:53 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
expect_filesame() {
|
|
|
|
if cmp ~/1 "$1"
|
|
|
|
then
|
2011-01-15 16:39:56 +01:00
|
|
|
ok
|
2010-06-12 07:33:53 +02:00
|
|
|
else
|
2011-01-15 16:39:56 +01:00
|
|
|
notok files ~/1 and "$1" are different
|
2010-06-12 07:33:53 +02:00
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
|
|
|
die() {
|
2011-01-15 16:39:56 +01:00
|
|
|
echo '***** AAAAARRRGGH! *****' >&2
|
|
|
|
echo ${BASH_LINENO[1]} ${BASH_SOURCE[2]} >&2
|
|
|
|
echo "vim +${BASH_LINENO[1]} \'+r !head ~/1 ~/2 /dev/null\' ${BASH_SOURCE[2]}" >&2
|
2010-06-12 07:33:53 +02:00
|
|
|
exit 1
|
|
|
|
}
|
|
|
|
|
|
|
|
expect() {
|
|
|
|
if cat ~/1 ~/2 | grep "$1" >/dev/null
|
|
|
|
then
|
2011-01-15 16:39:56 +01:00
|
|
|
ok
|
2010-06-12 07:33:53 +02:00
|
|
|
else
|
2011-01-15 16:39:56 +01:00
|
|
|
notok "expecting: $1, got:"
|
|
|
|
cat ~/1 ~/2|sed -e 's/^/# /'
|
2010-06-12 07:33:53 +02:00
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
|
|
|
notexpect() {
|
|
|
|
if cat ~/1 ~/2 | grep "$1" >/dev/null
|
|
|
|
then
|
2011-01-15 16:39:56 +01:00
|
|
|
notok "NOT expecting: $1, got:"
|
|
|
|
cat ~/1 ~/2|sed -e 's/^/# /'
|
2010-06-12 07:33:53 +02:00
|
|
|
else
|
2011-01-15 16:39:56 +01:00
|
|
|
ok
|
2010-06-12 07:33:53 +02:00
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
|
|
|
print_summary() {
|
2011-01-15 16:39:56 +01:00
|
|
|
echo 1..$testnum
|
2010-06-12 07:33:53 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
expect_push_ok() {
|
|
|
|
expect "$1"
|
|
|
|
notexpect "DENIED"
|
|
|
|
notexpect "failed to push"
|
|
|
|
}
|
|
|
|
|
|
|
|
export TESTDIR=$PWD
|
|
|
|
arg1=$1; shift
|
|
|
|
for testfile in ${arg1:-t??-}*
|
|
|
|
do
|
|
|
|
hl $testfile
|
2010-06-18 18:13:53 +02:00
|
|
|
. $testfile "$@" || die "$testfile failed"
|
2010-06-12 07:33:53 +02:00
|
|
|
cd $TESTDIR
|
|
|
|
done
|
|
|
|
|
|
|
|
print_summary
|