Merge branch 'master' of git.rot13.org:/git/cloudstore
[cloudstore.git] / test.sh
diff --git a/test.sh b/test.sh
index 77781c0..5667336 100755 (executable)
--- a/test.sh
+++ b/test.sh
@@ -1,4 +1,88 @@
-#!/bin/sh
+#!/bin/sh -xe
 
-ps ax > /tmp/foo
-RSYNC_PASSWORD=secret rsync /tmp/foo rsync://dpavlin@127.0.0.1:6501/dpavlin
+user_dir=/srv/cloudstore/users/test/
+rm -Rvf $user_dir/log/* #$user_dir/blob/*
+
+push() {
+       file=`shift`
+       RSYNC_PASSWORD=secret rsync $* $file rsync://test+localhost@127.0.0.1:6501/test/localhost/$file
+}
+pull() {
+       from=$1
+       to=$2
+       test -z "$to" && to=$1
+       RSYNC_PASSWORD=secret rsync rsync://test+localhost@127.0.0.1:6501/test/localhost/$from $to
+}
+
+
+./remove-user.sh test
+
+./create-user.sh test secret
+./create-user.sh test secret localhost
+./store-fsck.pl test
+
+./remove-user.sh test2
+./create-user.sh test2 secret
+
+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
+
+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-test2
+push sent-to-test2 # must be done before first send
+
+mkdir -p .send/test2/received
+ln -s ../../../sent-to-test2 .send/test2/received/new-name
+
+push .send -rvl
+
+tail -20 $user_dir/log/*
+
+#diff -urw $user_dir/blob $dir/
+#diff -urw $user_dir/json $dir/
+
+ls -al $user_dir/blob