#!/bin/sh -xe
+user_dir=/srv/cloudstore/users/test/
+rm -Rvf $user_dir/log/* #$user_dir/blob/*
+
+RSYNC_LOGIN=u2000
+
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://$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
+
+RSYNC_LOGIN=`sudo ./create-user.sh test@example.com secret 200k`
+RSYNC_LOGIN2=`sudo ./create-user.sh test2@example.com secret 20k`
+
dir=/tmp/test
rm -Rf "$dir"
mkdir /tmp/test
cd $dir
+push . --recursive --delete -v
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 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
+
+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 send
+
+ps ax >> sent-to-$RSYNC_LOGIN2
+push sent-to-$RSYNC_LOGIN2 # must be done before first send
+
+mkdir -p .send/$RSYNC_LOGIN2/received
+ln -s ../../../sent-to-$RSYNC_LOGIN2 .send/$RSYNC_LOGIN2/received/new-name
+
+push .send -rvl