aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorJakob Unterwurzacher2017-02-15 23:02:01 +0100
committerJakob Unterwurzacher2017-02-15 23:02:01 +0100
commitce2e610428c940c2bd5ca1790e7375117b1f6015 (patch)
tree08563c5e36b8d285390f897cd122e7e1aa8f6fc4 /tests
parent6be7808992a1d9562b113b13831cd6d6a40114d6 (diff)
OSX compat: replace fusermount calls with fuse-unmount.bash
Mac OS X does not have fusermount and uses umount instead. The fuse-unmount.bash calls the appropriate command.
Diffstat (limited to 'tests')
-rwxr-xr-xtests/fuse-unmount.bash27
-rwxr-xr-xtests/reverse/linux-tarball-test.bash3
-rwxr-xr-xtests/stress_tests/extractloop.bash5
-rwxr-xr-xtests/stress_tests/fsstress-gocryptfs.bash9
-rwxr-xr-xtests/stress_tests/pingpong.bash5
5 files changed, 41 insertions, 8 deletions
diff --git a/tests/fuse-unmount.bash b/tests/fuse-unmount.bash
new file mode 100755
index 0000000..087b6fe
--- /dev/null
+++ b/tests/fuse-unmount.bash
@@ -0,0 +1,27 @@
+#!/bin/bash -eu
+#
+# Compatability wrapper around "fusermount" on Linux and "umount" on
+# Mac OS X and friends.
+#
+# This script can be sourced or executed directly.
+#
+function fuse-unmount {
+ local MYNAME=$(basename "$BASH_SOURCE")
+ if [[ $# -eq 0 ]] ; then
+ echo "$MYNAME: missing argument"
+ exit 1
+ fi
+ if [[ $OSTYPE == linux* ]] ; then
+ fusermount -u "$@"
+ else
+ # Mountpoint is in last argument, ignore anything else
+ # (like additional flags for fusermount).
+ local MNT=${@:$#}
+ umount "$MNT"
+ fi
+}
+# If the process name and the source file name is identical
+# we have been executed, not sourced.
+if [[ $(basename "$0") == $(basename "$BASH_SOURCE") ]] ; then
+ fuse-unmount "$@"
+fi
diff --git a/tests/reverse/linux-tarball-test.bash b/tests/reverse/linux-tarball-test.bash
index 5fbc3fc..e8ecca6 100755
--- a/tests/reverse/linux-tarball-test.bash
+++ b/tests/reverse/linux-tarball-test.bash
@@ -5,6 +5,7 @@ set -eu
cd "$(dirname "$0")"
MD5="$PWD/../stress_tests/linux-3.0.md5sums"
MYNAME=$(basename "$0")
+source ../fuse-unmount.bash
# Setup dirs
cd /tmp
@@ -12,7 +13,7 @@ wget -nv --show-progress -c https://www.kernel.org/pub/linux/kernel/v3.0/linux-3
WD=$(mktemp -d /tmp/$MYNAME.XXX)
# Cleanup trap
-trap "set +u; cd /; fusermount -u -z $WD/c; fusermount -u -z $WD/b; rm -rf $WD" EXIT
+trap "set +u; cd /; fuse-unmount -z $WD/c; fuse-unmount -z $WD/b; rm -rf $WD" EXIT
cd $WD
mkdir a b c
diff --git a/tests/stress_tests/extractloop.bash b/tests/stress_tests/extractloop.bash
index 2c139ab..18fc4ef 100755
--- a/tests/stress_tests/extractloop.bash
+++ b/tests/stress_tests/extractloop.bash
@@ -14,6 +14,7 @@ set -eu
cd "$(dirname "$0")"
MD5="$PWD/linux-3.0.md5sums"
MYNAME=$(basename "$0")
+source ../fuse-unmount.bash
# Setup dirs
cd /tmp
@@ -49,8 +50,8 @@ ln -sTf $CSV /tmp/extractloop.csv
# Cleanup trap
# Note: gocryptfs may have already umounted itself because bash relays SIGINT
-# Just ignore fusermount errors.
-trap "cd /; fusermount -u -z $MNT; rm -rf $CRYPT $MNT" EXIT
+# Just ignore unmount errors.
+trap "cd /; fuse-unmount -z $MNT; rm -rf $CRYPT $MNT" EXIT
function loop {
# Note: In a subshell, $$ returns the PID of the parent shell.
diff --git a/tests/stress_tests/fsstress-gocryptfs.bash b/tests/stress_tests/fsstress-gocryptfs.bash
index 51c68db..432899a 100755
--- a/tests/stress_tests/fsstress-gocryptfs.bash
+++ b/tests/stress_tests/fsstress-gocryptfs.bash
@@ -14,6 +14,10 @@
set -eu
+cd "$(dirname "$0")"
+MYNAME=$(basename $0)
+source ../fuse-unmount.bash
+
# Backing directory
DIR=$(mktemp -d /tmp/fsstress.XXX)
# Mountpoint
@@ -28,13 +32,12 @@ then
fi
# Setup
-fusermount -u -z $MNT &> /dev/null || true
+fuse-unmount -z $MNT &> /dev/null || true
mkdir -p $DIR $MNT
rm -Rf $DIR/*
rm -Rf $MNT/*
# FS-specific compile and mount
-MYNAME=$(basename $0)
if [ $MYNAME = fsstress-loopback.bash ]; then
echo "Recompile go-fuse loopback"
cd $GOPATH/src/github.com/hanwen/go-fuse/example/loopback
@@ -62,7 +65,7 @@ done
echo
# Cleanup trap
-trap "kill %1 ; cd /; fusermount -u -z $MNT; rm -rf $DIR $MNT" EXIT
+trap "kill %1 ; cd /; fuse-unmount -z $MNT; rm -rf $DIR $MNT" EXIT
echo "Starting fsstress loop"
N=1
diff --git a/tests/stress_tests/pingpong.bash b/tests/stress_tests/pingpong.bash
index ebcb8c5..02aabc9 100755
--- a/tests/stress_tests/pingpong.bash
+++ b/tests/stress_tests/pingpong.bash
@@ -11,6 +11,7 @@ set -eu
cd "$(dirname "$0")"
MD5="$PWD/linux-3.0.md5sums"
MYNAME=$(basename $0)
+source ../fuse-unmount.bash
# Setup
cd /tmp
@@ -22,8 +23,8 @@ mkdir $PING.mnt $PONG.mnt
# Cleanup trap
# Note: gocryptfs may have already umounted itself because bash relays SIGINT
-# Just ignore fusermount errors.
-trap "set +e ; cd /tmp; fusermount -u -z $PING.mnt ; fusermount -u -z $PONG.mnt ; rm -rf $PING $PONG $PING.mnt $PONG.mnt" EXIT
+# Just ignore unmount errors.
+trap "set +e ; cd /tmp; fuse-unmount -z $PING.mnt ; fuse-unmount -z $PONG.mnt ; rm -rf $PING $PONG $PING.mnt $PONG.mnt" EXIT
gocryptfs -q -init -extpass="echo test" -scryptn=10 $PING
gocryptfs -q -init -extpass="echo test" -scryptn=10 $PONG