summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/basic/ec/nfs.t3
-rwxr-xr-xtests/basic/mount.t16
-rw-r--r--tests/basic/nufa.t6
-rwxr-xr-xtests/basic/quota.t3
-rw-r--r--tests/basic/uss.t3
-rw-r--r--tests/basic/volume-status.t7
-rwxr-xr-xtests/bugs/bug-1043886.t3
-rwxr-xr-xtests/bugs/bug-1070734.t3
-rw-r--r--tests/bugs/bug-867253.t2
-rwxr-xr-xtests/bugs/bug-887145.t2
-rwxr-xr-xtests/bugs/bug-927616.t2
-rw-r--r--tests/include.rc24
-rw-r--r--tests/nfs.rc46
13 files changed, 101 insertions, 19 deletions
diff --git a/tests/basic/ec/nfs.t b/tests/basic/ec/nfs.t
index 53ec30c92b0..b2e51c03af5 100644
--- a/tests/basic/ec/nfs.t
+++ b/tests/basic/ec/nfs.t
@@ -15,4 +15,7 @@ TEST mount_nfs $H0:/$V0 $N0
TEST dd if=/dev/zero of=$N0/test bs=1024k count=1k
+## Before killing daemon to avoid deadlocks
+EXPECT_WITHIN $UMOUNT_TIMEOUT "Y" umount_nfs $N0
+
cleanup
diff --git a/tests/basic/mount.t b/tests/basic/mount.t
index c77317f37f5..d67bc8ab998 100755
--- a/tests/basic/mount.t
+++ b/tests/basic/mount.t
@@ -39,21 +39,21 @@ TEST $CLI volume set $V0 performance.stat-prefetch off;
TEST glusterfs --entry-timeout=0 --attribute-timeout=0 -s $H0 --volfile-id $V0 $M0;
## Check consistent "rw" option
-TEST 'mount -t fuse.glusterfs | grep -E "^$H0:$V0 .+ \(rw,"';
-TEST 'grep -E "^$H0:$V0 .+ ,?rw," /proc/mounts';
+TEST 'mount -t $MOUNT_TYPE_FUSE | grep -E "^$H0:$V0 "|$GREP_MOUNT_OPT_RW';
+TEST 'grep -E "^$H0:$V0 .+ ,?rw,?" /proc/mounts';
## Mount FUSE with caching disabled (read-only)
TEST glusterfs --entry-timeout=0 --attribute-timeout=0 --read-only -s $H0 --volfile-id $V0 $M1;
## Check consistent "ro" option
-TEST 'mount -t fuse.glusterfs | grep -E "^$H0:$V0 .+ \(ro,"';
-TEST 'grep -E "^$H0:$V0 .+ ,?ro,.+" /proc/mounts';
+TEST 'mount -t $MOUNT_TYPE_FUSE | grep -E "^$H0:$V0 "|$GREP_MOUNT_OPT_RO';
+TEST 'grep -E "^$H0:$V0 .+ ,?ro(,.+)?" /proc/mounts';
## Wait for volume to register with rpc.mountd
EXPECT_WITHIN $NFS_EXPORT_TIMEOUT "1" is_nfs_export_available;
## Mount NFS
-TEST mount -t nfs -o nolock,soft,intr $H0:/$V0 $N0;
+TEST mount_nfs $H0:/$V0 $N0 nolock;
## Test for consistent views between NFS and FUSE mounts
@@ -63,11 +63,13 @@ TEST ! touch $M1/newfile;
TEST touch $M0/newfile;
TEST stat $M1/newfile;
TEST stat $N0/newfile;
-TEST ! rm $M1/newfile;
-TEST rm $N0/newfile;
+TEST ! rm -f $M1/newfile;
+TEST rm -f $N0/newfile;
TEST ! stat $M0/newfile;
TEST ! stat $M1/newfile;
+## Before killing daemon to avoid deadlocks
+EXPECT_WITHIN $UMOUNT_TIMEOUT "Y" umount_nfs $N0
## Finish up
TEST $CLI volume stop $V0;
diff --git a/tests/basic/nufa.t b/tests/basic/nufa.t
index 0d4c229a0fa..4235539c658 100644
--- a/tests/basic/nufa.t
+++ b/tests/basic/nufa.t
@@ -2,6 +2,7 @@
. $(dirname $0)/../include.rc
. $(dirname $0)/../volume.rc
+. $(dirname $0)/../nfs.rc
cleanup;
@@ -27,6 +28,9 @@ TEST glusterfs --entry-timeout=0 --attribute-timeout=0 --read-only -s $H0 --volf
sleep 5;
## Mount NFS
-TEST mount -t nfs -o nolock,soft,intr $H0:/$V0 $N0;
+TEST mount_nfs $H0:/$V0 $N0 nolock;
+
+## Before killing daemon to avoid deadlocks
+EXPECT_WITHIN $UMOUNT_TIMEOUT "Y" umount_nfs $N0
cleanup;
diff --git a/tests/basic/quota.t b/tests/basic/quota.t
index 2fef251e485..1d23cfc8688 100755
--- a/tests/basic/quota.t
+++ b/tests/basic/quota.t
@@ -2,6 +2,7 @@
. $(dirname $0)/../include.rc
. $(dirname $0)/../volume.rc
+. $(dirname $0)/../nfs.rc
. $(dirname $0)/../dht.rc
cleanup;
@@ -97,7 +98,7 @@ EXPECT_WITHIN $MARKER_UPDATE_TIMEOUT "0Bytes" usage "/test_dir"
# though this may change.
## -----------------------------
-TEST mount -t nfs -o nolock,soft,intr $H0:/$V0 $N0;
+TEST mount_nfs $H0:/$V0 $N0 nolock;
TEST $CLI volume quota $V0 limit-usage /test_dir 100MB
TEST $CLI volume quota $V0 limit-usage /test_dir/in_test_dir 150MB
diff --git a/tests/basic/uss.t b/tests/basic/uss.t
index 8c6a8982eea..ad7fcaf270a 100644
--- a/tests/basic/uss.t
+++ b/tests/basic/uss.t
@@ -243,4 +243,7 @@ TEST fd_close $fd1;
TEST fd_close $fd2;
TEST fd_close $fd3;
+## Before killing daemon to avoid deadlocks
+EXPECT_WITHIN $UMOUNT_TIMEOUT "Y" umount_nfs $N0
+
cleanup;
diff --git a/tests/basic/volume-status.t b/tests/basic/volume-status.t
index a91db3cc50a..9b636cfa936 100644
--- a/tests/basic/volume-status.t
+++ b/tests/basic/volume-status.t
@@ -2,6 +2,7 @@
. $(dirname $0)/../include.rc
. $(dirname $0)/../volume.rc
+. $(dirname $0)/../nfs.rc
cleanup;
@@ -19,7 +20,7 @@ sleep 2
TEST glusterfs -s $H0 --volfile-id $V0 $M0;
## Mount NFS
-TEST mount -t nfs -o vers=3,nolock,soft,intr $H0:/$V0 $N0;
+TEST mount_nfs $H0:/$V0 $N0 nolock;
TEST $CLI volume status all
TEST $CLI volume status $V0
@@ -62,5 +63,9 @@ TEST test_shd_cmds;
TEST test_nfs_cmds;
TEST test_brick_cmds;
+
+## Before killing daemon to avoid deadlocks
+EXPECT_WITHIN $UMOUNT_TIMEOUT "Y" umount_nfs $N0
+
cleanup;
diff --git a/tests/bugs/bug-1043886.t b/tests/bugs/bug-1043886.t
index 9a125c2de2c..710fcd2064d 100755
--- a/tests/bugs/bug-1043886.t
+++ b/tests/bugs/bug-1043886.t
@@ -46,6 +46,9 @@ TEST [ "$(stat -c %u:%g $N0/other/file)" = "$uid:$gid" ];
TEST mkdir $M0/other/dir 2>/dev/null;
TEST [ "$(stat -c %u:%g $N0/other/dir)" = "$uid:$gid" ];
+## Before killing daemon to avoid deadlocks
+EXPECT_WITHIN $UMOUNT_TIMEOUT "Y" umount_nfs $N0
+
TEST $CLI volume stop $V0;
TEST $CLI volume delete $V0;
diff --git a/tests/bugs/bug-1070734.t b/tests/bugs/bug-1070734.t
index fd7bbe01cf6..3928983c345 100755
--- a/tests/bugs/bug-1070734.t
+++ b/tests/bugs/bug-1070734.t
@@ -68,4 +68,7 @@ TEST [ -f ${OTHERBRICK}/DIR/file ]
EXPECT "0x00000001000000000000000000000000" dht_get_layout $HASHED/DIR ;
EXPECT "0x000000010000000000000000ffffffff" dht_get_layout $OTHERBRICK/DIR;
+## Before killing daemon to avoid deadlocks
+EXPECT_WITHIN $UMOUNT_TIMEOUT "Y" umount_nfs $N0
+
cleanup
diff --git a/tests/bugs/bug-867253.t b/tests/bugs/bug-867253.t
index 6b0332959e9..47c194b4b52 100644
--- a/tests/bugs/bug-867253.t
+++ b/tests/bugs/bug-867253.t
@@ -30,7 +30,7 @@ TEST $CLI volume start $V0
EXPECT_WITHIN $NFS_EXPORT_TIMEOUT "1" is_nfs_export_available;
## Mount nfs, with nocache option
-TEST mount -o vers=3,nolock,noac -t nfs $H0:/$V0 $M0;
+TEST mount_nfs $H0:/$V0 $M0 nolock,noac;
touch $M0/files{1..1000};
diff --git a/tests/bugs/bug-887145.t b/tests/bugs/bug-887145.t
index ee19036e0c1..554e6ce95d6 100755
--- a/tests/bugs/bug-887145.t
+++ b/tests/bugs/bug-887145.t
@@ -80,6 +80,8 @@ TEST [ $? -ne 0 ]
userdel tmp_user;
rm -rf /home/tmp_user;
+EXPECT_WITHIN $UMOUNT_TIMEOUT "Y" umount_nfs $N0
+
TEST $CLI volume stop $V0;
TEST $CLI volume delete $V0;
diff --git a/tests/bugs/bug-927616.t b/tests/bugs/bug-927616.t
index 58f961dc80a..4525ddbb747 100755
--- a/tests/bugs/bug-927616.t
+++ b/tests/bugs/bug-927616.t
@@ -54,6 +54,8 @@ TEST [ $? -eq 0 ]
mkdir $N0/old 2>/dev/null;
TEST [ $? -eq 0 ]
+EXPECT_WITHIN $UMOUNT_TIMEOUT "Y" umount_nfs $N0
+
TEST $CLI volume stop $V0;
TEST $CLI volume delete $V0;
diff --git a/tests/include.rc b/tests/include.rc
index 78488b37975..e6648a7ad73 100644
--- a/tests/include.rc
+++ b/tests/include.rc
@@ -20,12 +20,21 @@ if [ ! -f ${PWD}/tests/env.rc ]; then
fi
. ${PWD}/tests/env.rc
+H0=${H0:=`hostname`}; # hostname
+MOUNT_TYPE_FUSE="fuse.glusterfs"
+GREP_MOUNT_OPT_RO="grep (ro"
+GREP_MOUNT_OPT_RW="grep (rw"
+
case $OSTYPE in
Linux)
H0=${H0:=`hostname --fqdn`}; # hostname
;;
+NetBSD)
+ MOUNT_TYPE_FUSE="puffs|perfuse|fuse.glusterfs"
+ GREP_MOUNT_OPT_RO="grep (read-only"
+ GREP_MOUNT_OPT_RW="grep -v (read-only"
+ ;;
*)
- H0=${H0:=`hostname`}; # hostname
;;
esac
@@ -297,6 +306,13 @@ stat -c %s /dev/null > /dev/null 2>&1 || {
function cleanup()
{
+ # unmount filesystems before killing daemons to avoid deadllocks
+ MOUNTPOINTS=`mount | grep "$B0/" | awk '{print $3}'`
+ for m in $MOUNTPOINTS;
+ do
+ umount $m
+ done
+
killall -15 glusterfs glusterfsd glusterd 2>/dev/null || true;
test "x`uname -s` = "xNetBSD" && pkill -15 perfused || true
# allow completion of signal handlers for SIGTERM before issue SIGKILL
@@ -304,12 +320,6 @@ function cleanup()
killall -9 glusterfs glusterfsd glusterd 2>/dev/null || true;
test "x`uname -s` = "xNetBSD" && pkill -9 perfused || true
- MOUNTPOINTS=`mount | grep "$B0/" | awk '{print $3}'`
- for m in $MOUNTPOINTS;
- do
- umount $m
- done
-
# unregister nfs and related services from portmapper/rpcbind
## nfs
rpcinfo -d 100003 3
diff --git a/tests/nfs.rc b/tests/nfs.rc
index c27452395e1..a2d7c140012 100644
--- a/tests/nfs.rc
+++ b/tests/nfs.rc
@@ -23,5 +23,49 @@ function mount_nfs ()
local m=$2
local opt=$3
if [ ! -z "$opt" ]; then opt=",$opt"; fi
- mount -t nfs -o soft,intr,vers=3"$opt" $e $m
+ opt="soft,intr,vers=3$opt"
+
+ nopt=""
+ for o in ${opt//,/ }; do
+ case $OSTYPE in
+ NetBSD)
+ test "x${nopt}" = "x" && nopt="tcp,"
+
+ case $o in
+ nolock|noac|actimeo=*|mountproto=udp)
+ continue
+ ;;
+ proto=tcp)
+ o="tcp"
+ ;;
+ vers=3)
+ o="nfsv3"
+ ;;
+ retry=*)
+ o=${o/retry=/-R}
+ ;;
+ timeo=*)
+ o=${o/timeo=/-t}
+ ;;
+ retrans=*)
+ o=${o/retrans=/-x}
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ *)
+ ;;
+ esac
+ if [ ! -z "$nopt" ]; then nopt="${nopt},"; fi
+ nopt="${nopt}$o"
+ done
+
+ mount -t nfs -o $nopt $e $m
}
+
+function umount_nfs {
+ umount -f $1
+ if [ $? -eq 0 ]; then echo "Y"; else echo "N"; fi
+}
+