diff options
Diffstat (limited to 'tests/sshfs-benchmark.bash')
-rwxr-xr-x | tests/sshfs-benchmark.bash | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/tests/sshfs-benchmark.bash b/tests/sshfs-benchmark.bash new file mode 100755 index 0000000..13c7a0f --- /dev/null +++ b/tests/sshfs-benchmark.bash @@ -0,0 +1,91 @@ +#!/bin/bash + +set -eu + +function cleanup { + cd "$LOCAL_TMP" + fusermount -u gocryptfs.mnt + rm -Rf "$SSHFS_TMP" + fusermount -u sshfs.mnt + cd / + rm -Rf "$LOCAL_TMP" +} + +function prepare_mounts { + LOCAL_TMP=$(mktemp -d -t "$MYNAME.XXX") + cd $LOCAL_TMP + echo "working directory: $PWD" + mkdir sshfs.mnt gocryptfs.mnt + sshfs $HOST:/tmp sshfs.mnt + echo "sshfs mounted: $HOST:/tmp -> sshfs.mnt" + trap cleanup EXIT + SSHFS_TMP=$(mktemp -d "sshfs.mnt/$MYNAME.XXX") + mkdir $SSHFS_TMP/gocryptfs.crypt + gocryptfs -q -init -extpass "echo test" -scryptn=10 $SSHFS_TMP/gocryptfs.crypt + gocryptfs -q -extpass "echo test" $SSHFS_TMP/gocryptfs.crypt gocryptfs.mnt + echo "gocryptfs mounted: $SSHFS_TMP/gocryptfs.crypt -> gocryptfs.mnt" +} + +function etime { + T=$(/usr/bin/time -f %e -o /dev/stdout "$@") + LC_ALL=C printf %20.2f "$T" +} + +MYNAME=$(basename "$0") +HOST=$1 + +prepare_mounts + +echo +echo "$MYNAME: sshfs gocryptfs-on-sshfs" +echo -n "git init " +etime git init -q "$SSHFS_TMP/git1" +etime git init -q gocryptfs.mnt/git1 +echo + +git init -q git2 +echo -n "rsync " +etime rsync -a --no-group git2 "$SSHFS_TMP" +etime rsync -a --no-group git2 gocryptfs.mnt +echo + +echo -n "rm -R " +etime rm -R "$SSHFS_TMP/git1" "$SSHFS_TMP/git2" +etime rm -R gocryptfs.mnt/git1 gocryptfs.mnt/git2 +echo + +echo -n "mkdir " +pushd "$SSHFS_TMP" > /dev/null +etime mkdir $(seq 1 20) +popd > /dev/null +cd gocryptfs.mnt +etime mkdir $(seq 1 20) +cd .. +echo + +echo -n "rmdir " +pushd "$SSHFS_TMP" > /dev/null +etime rmdir $(seq 1 20) +popd > /dev/null +cd gocryptfs.mnt +etime rmdir $(seq 1 20) +cd .. +echo + +echo -n "touch " +pushd "$SSHFS_TMP" > /dev/null +etime touch $(seq 101 120) +popd > /dev/null +cd gocryptfs.mnt +etime touch $(seq 101 120) +cd .. +echo + +echo -n "rm " +pushd "$SSHFS_TMP" > /dev/null +etime rm $(seq 101 120) +popd > /dev/null +cd gocryptfs.mnt +etime rm $(seq 101 120) +cd .. +echo |