X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=test.sh;h=8518ecfaee8cae4fe896a246efdbd1401de07fb3;hb=e8bca9ec3bc5683221540586893bdc155c0fe3b6;hp=6d9449e9d9f81044e370954a46b0219a73f775c4;hpb=fb6f4951427327a5edb7f19abfd6d265a5302d48;p=cloudstore.git diff --git a/test.sh b/test.sh index 6d9449e..8518ecf 100755 --- a/test.sh +++ b/test.sh @@ -1,38 +1,136 @@ #!/bin/sh -xe +RSYNC_LOGIN=fake + push() { file=`shift` - RSYNC_PASSWORD=secret rsync $* $file rsync://dpavlin@127.0.0.1:6501/dpavlin/$file + RSYNC_PASSWORD=secret rsync $* $file rsync://$RSYNC_LOGIN@127.0.0.1:6501/$RSYNC_LOGIN/localhost/$file } pull() { from=$1 to=$2 test -z "$to" && to=$1 - RSYNC_PASSWORD=secret rsync rsync://dpavlin@127.0.0.1:6501/dpavlin/$from $to + RSYNC_PASSWORD=secret rsync rsync://$RSYNC_LOGIN@127.0.0.1:6501/$RSYNC_LOGIN/localhost/$from $to } +#sudo ./remove-user.sh test@example.com +#sudo ./remove-user.sh test2@example.com +base_dir=`pwd` + +RSYNC_LOGIN=`sudo ./create-user.sh test@example.com secret 500000` +RSYNC_LOGIN2=`sudo ./create-user.sh test2@example.com secret 100000` + +. ./env.sh + dir=/tmp/test rm -Rf "$dir" mkdir /tmp/test cd $dir + +push . --recursive --delete -v + +if [ ! -z "$ALL" ] ; then # skip tests if false + ps ax > foo push foo -v +push foo -v ps ax > bar push bar -v +touch --date='2000-01-01' bar +push bar -v pull bar baz +push baz -v ps ax >> baz -push bar -v +push baz -v +cp baz baz2 +push baz baz2 -v + mkdir dir-test # deduplicate? cp foo bar dir-test/ +uptime > "dir-test/file with spaces" push dir-test --recursive -v + +find . type -f | xargs -i md5sum {} > /tmp/md5sum + rm foo bar push dir-test --recursive --delete -v rm -Rf dir-test -push . --recursive --delete -v -ls -al /srv/cloudstore/users/dpavlin/data/ +pull non-existing || true + +cp /tmp/md5sum md5sum +mkdir clone +# test md5 import from directory +mv md5sum clone/ +push clone -r -v +# client should hardlink or copy files locally to avoid wastefull pull +# but we test server-side hardlink here +pull clone -r -v + +md5sum clone/* | sed -e 's! ! _import/foo/bar/baz!' > md5sum +cat md5sum +push md5sum -v + +# test unused md5 pool quota + +ps ax > tmp +push tmp -v +rm tmp +push . -r --delete -v + +# test send + +ps ax >> send +mkdir dir1 +ps ax >> dir1/send +mkdir dir2 +ps ax >> dir2/send + +mkdir -p .sync/send +cat << __SEND__ > .sync/send/timestamp +$RSYNC_LOGIN2 send +$RSYNC_LOGIN2 dir1/send +$RSYNC_LOGIN2 dir2/send +__SEND__ + +# order is important! .sync must be last! +push send dir1 dir2 .sync -rv + +# test receiving of sent files +mkdir /tmp/test/$RSYNC_LOGIN2 +RSYNC_PASSWORD=secret rsync -rv rsync://$RSYNC_LOGIN2@127.0.0.1:6501/$RSYNC_LOGIN2/received/ /tmp/test/$RSYNC_LOGIN2 + +fi # skip tests + +# test file move + +ps ax > Jellyfish.jpg +push Jellyfish.jpg + +mkdir -p .sync/pending +cat << __pending__ > .sync/pending/test +MOVED#Jellyfish.jpg#Photos with space/Jellyfish cool.jpg +DELETED#Photos with space/Jellyfish cool.jpg +DELETED#Photos with space +__pending__ + +push .sync -rv + +exit + +ps ax > perms-test +chmod 400 perms-test +push -va perms-test + +sudo sh -xc "ls -al ~$RSYNC_LOGIN/localhost/" + + + + +find $SLICE/2001/ -type f | grep -v '/\.' | xargs md5sum | sort > /tmp/test/1 +FULL=1 $base_dir/user-md5sum.pl u2001 | sort > /tmp/test/2 -pull non-existing # dies, must be last +diff /tmp/test/1 /tmp/test/2 && echo "OK - md5 database consistant with filesystem"