diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/bugs/bug-1116503.t | 24 | ||||
-rw-r--r-- | tests/include.rc | 15 | ||||
-rw-r--r-- | tests/nfs.rc | 27 | ||||
-rw-r--r-- | tests/volume.rc | 6 |
4 files changed, 72 insertions, 0 deletions
diff --git a/tests/bugs/bug-1116503.t b/tests/bugs/bug-1116503.t new file mode 100644 index 00000000000..0aad440560a --- /dev/null +++ b/tests/bugs/bug-1116503.t @@ -0,0 +1,24 @@ +#!/bin/bash +# +# Verify that mounting NFS over UDP (MOUNT service only) works. +# + +. $(dirname $0)/../include.rc +. $(dirname $0)/../volume.rc +. $(dirname $0)/../nfs.rc + + +cleanup; +TEST glusterd +TEST pidof glusterd + +TEST $CLI volume create $V0 $H0:$B0/$V0 +TEST $CLI volume set $V0 nfs.mount-udp on + +TEST $CLI volume start $V0 +EXPECT_WITHIN $NFS_EXPORT_TIMEOUT "1" is_nfs_export_available; + +TEST mount_nfs $H0:/$V0 $N0 nolock,mountproto=udp,proto=tcp; +EXPECT_WITHIN $UMOUNT_TIMEOUT "Y" force_umount $N0 + +cleanup; diff --git a/tests/include.rc b/tests/include.rc index bd64ed9a1a4..54427dbda50 100644 --- a/tests/include.rc +++ b/tests/include.rc @@ -6,6 +6,10 @@ V0=${V0:=patchy}; # volume name to use in tests B0=${B0:=/d/backends}; # top level of brick directories H0=${H0:=`hostname --fqdn`}; # hostname DEBUG=${DEBUG:=0} # turn on debugging? + +NFS_EXPORT_TIMEOUT=20 +UMOUNT_TIMEOUT=5 + statedumpdir=`gluster --print-statedumpdir`; # Default directory for statedump CLI="gluster --mode=script"; @@ -192,6 +196,17 @@ function cleanup() umount $m done + # unregister nfs and related services from portmapper/rpcbind + ## nfs + rpcinfo -d 100003 3 + ## mountd + rpcinfo -d 100005 1 + rpcinfo -d 100005 3 + ## nlockmgr + rpcinfo -d 100021 1 + rpcinfo -d 100021 4 + ## nfs_acl + rpcinfo -d 100027 3 LOOPDEVICES=`losetup -a | grep "$B0/" | awk '{print $1}' | tr -d :` for l in $LOOPDEVICES; diff --git a/tests/nfs.rc b/tests/nfs.rc new file mode 100644 index 00000000000..c27452395e1 --- /dev/null +++ b/tests/nfs.rc @@ -0,0 +1,27 @@ +#!/bin/bash + +# Due to portmap registration NFS takes some time to +# export all volumes. Therefore tests should start only +# after exports are visible by showmount command. This +# routine will check if showmount shows the exports or not +# +function is_nfs_export_available () +{ + local vol=$1 + + if [ "$vol" == "" ]; then + vol=$V0 + fi + + exp=$(showmount -e localhost 2> /dev/null | grep $vol | wc -l) + echo "$exp" +} + +function mount_nfs () +{ + local e=$1 + local m=$2 + local opt=$3 + if [ ! -z "$opt" ]; then opt=",$opt"; fi + mount -t nfs -o soft,intr,vers=3"$opt" $e $m +} diff --git a/tests/volume.rc b/tests/volume.rc index d942e485fa5..c3d51d9c2a6 100644 --- a/tests/volume.rc +++ b/tests/volume.rc @@ -210,3 +210,9 @@ function dht_get_layout { local my_xa=trusted.glusterfs.dht getfattr -d -e hex -n $my_xa $1 2> /dev/null | grep "$my_xa=" | cut -d= -f2 } + +function force_umount { + umount -f $1 + if [ $? -eq 0 ]; then echo "Y"; else echo "N"; fi +} + |