X-Git-Url: http://git.rot13.org/?p=cloudstore.git;a=blobdiff_plain;f=test.sh;h=8518ecfaee8cae4fe896a246efdbd1401de07fb3;hp=28a5db466f3154c2395567724fbbc884579269ba;hb=HEAD;hpb=b561e8f25f260f223f15e49a9c2271c4db922385 diff --git a/test.sh b/test.sh index 28a5db4..8518ecf 100755 --- a/test.sh +++ b/test.sh @@ -1,43 +1,136 @@ #!/bin/sh -xe -log=/srv/cloudstore/users/dpavlin/log/ -rm -v $log/* +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 -tail -20 $log/* +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"