diff options
Diffstat (limited to 'tests/bugs/nfs')
| -rwxr-xr-x | tests/bugs/nfs/bug-1053579.t | 3 | ||||
| -rw-r--r-- | tests/bugs/nfs/bug-1116503.t | 45 | ||||
| -rw-r--r-- | tests/bugs/nfs/bug-1143880-fix-gNFSd-auth-crash.t | 4 | ||||
| -rw-r--r-- | tests/bugs/nfs/bug-1157223-symlink-mounting.t | 4 | ||||
| -rw-r--r-- | tests/bugs/nfs/bug-1161092-nfs-acls.t | 3 | ||||
| -rwxr-xr-x | tests/bugs/nfs/bug-1166862.t | 3 | ||||
| -rw-r--r-- | tests/bugs/nfs/bug-1210338.c | 27 | ||||
| -rw-r--r-- | tests/bugs/nfs/bug-1210338.t | 3 | ||||
| -rwxr-xr-x | tests/bugs/nfs/bug-1302948.t | 13 | ||||
| -rwxr-xr-x | tests/bugs/nfs/bug-847622.t | 3 | ||||
| -rwxr-xr-x | tests/bugs/nfs/bug-877885.t | 3 | ||||
| -rwxr-xr-x | tests/bugs/nfs/bug-904065.t | 11 | ||||
| -rwxr-xr-x | tests/bugs/nfs/bug-915280.t | 3 | ||||
| -rwxr-xr-x | tests/bugs/nfs/bug-974972.t | 4 | ||||
| -rw-r--r-- | tests/bugs/nfs/showmount-many-clients.t | 43 | ||||
| -rwxr-xr-x | tests/bugs/nfs/socket-as-fifo.py | 4 | ||||
| -rw-r--r-- | tests/bugs/nfs/socket-as-fifo.t | 5 | ||||
| -rw-r--r-- | tests/bugs/nfs/subdir-trailing-slash.t | 32 | ||||
| -rwxr-xr-x | tests/bugs/nfs/zero-atime.t | 33 |
19 files changed, 182 insertions, 64 deletions
diff --git a/tests/bugs/nfs/bug-1053579.t b/tests/bugs/nfs/bug-1053579.t index 81e786d2ec6..2f53172e24c 100755 --- a/tests/bugs/nfs/bug-1053579.t +++ b/tests/bugs/nfs/bug-1053579.t @@ -4,6 +4,8 @@ . $(dirname $0)/../../volume.rc . $(dirname $0)/../../nfs.rc +#G_TESTDEF_TEST_STATUS_CENTOS6=NFS_TEST + cleanup # prepare the users and groups @@ -42,6 +44,7 @@ TEST useradd -o -M -u ${NEW_UID} -g ${NEW_GID} -G ${NEW_USER}-${NEW_GIDS} ${NEW_ TEST glusterd TEST pidof glusterd TEST $CLI volume create $V0 $H0:$B0/${V0}1 +TEST $CLI volume set $V0 nfs.disable false TEST $CLI volume set $V0 nfs.server-aux-gids on TEST $CLI volume start $V0 diff --git a/tests/bugs/nfs/bug-1116503.t b/tests/bugs/nfs/bug-1116503.t deleted file mode 100644 index 5527f768b45..00000000000 --- a/tests/bugs/nfs/bug-1116503.t +++ /dev/null @@ -1,45 +0,0 @@ -#!/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; -TEST mkdir -p $N0/foo/bar -TEST ls $N0/foo -TEST ls $N0/foo/bar -EXPECT_WITHIN $UMOUNT_TIMEOUT "Y" force_umount $N0 - -EXPECT_WITHIN $NFS_EXPORT_TIMEOUT "1" is_nfs_export_available; -TEST mount_nfs $H0:/$V0/foo $N0 nolock,mountproto=udp,proto=tcp; -EXPECT_WITHIN $UMOUNT_TIMEOUT "Y" force_umount $N0 - -EXPECT_WITHIN $NFS_EXPORT_TIMEOUT "1" is_nfs_export_available; -TEST mount_nfs $H0:/$V0/foo/bar $N0 nolock,mountproto=udp,proto=tcp; -EXPECT_WITHIN $UMOUNT_TIMEOUT "Y" force_umount $N0 - -TEST $CLI volume set $V0 nfs.addr-namelookup on -TEST $CLI volume set $V0 nfs.rpc-auth-allow $H0 -EXPECT_WITHIN $NFS_EXPORT_TIMEOUT "1" is_nfs_export_available; -TEST mount_nfs $H0:/$V0/foo/bar $N0 nolock,mountproto=udp,proto=tcp; -EXPECT_WITHIN $UMOUNT_TIMEOUT "Y" force_umount $N0 - -TEST $CLI volume set $V0 nfs.rpc-auth-reject $H0 -EXPECT_WITHIN $NFS_EXPORT_TIMEOUT "1" is_nfs_export_available; -TEST ! mount_nfs $H0:/$V0/foo/bar $N0 nolock,mountproto=udp,proto=tcp; - -cleanup; diff --git a/tests/bugs/nfs/bug-1143880-fix-gNFSd-auth-crash.t b/tests/bugs/nfs/bug-1143880-fix-gNFSd-auth-crash.t index 1a9270286fb..c360db4c91c 100644 --- a/tests/bugs/nfs/bug-1143880-fix-gNFSd-auth-crash.t +++ b/tests/bugs/nfs/bug-1143880-fix-gNFSd-auth-crash.t @@ -2,11 +2,15 @@ . $(dirname $0)/../../include.rc . $(dirname $0)/../../nfs.rc + +#G_TESTDEF_TEST_STATUS_CENTOS6=NFS_TEST + cleanup; TEST glusterd TEST pidof glusterd TEST $CLI volume create $V0 replica 2 $H0:$B0/${V0}{1,2} +TEST $CLI volume set $V0 nfs.disable false TEST $CLI volume set $V0 performance.open-behind off TEST $CLI volume start $V0 diff --git a/tests/bugs/nfs/bug-1157223-symlink-mounting.t b/tests/bugs/nfs/bug-1157223-symlink-mounting.t index 469b221f5b3..dea609ed193 100644 --- a/tests/bugs/nfs/bug-1157223-symlink-mounting.t +++ b/tests/bugs/nfs/bug-1157223-symlink-mounting.t @@ -3,6 +3,8 @@ . $(dirname $0)/../../include.rc . $(dirname $0)/../../nfs.rc +#G_TESTDEF_TEST_STATUS_CENTOS6=NFS_TEST + cleanup; ## Start and create a volume @@ -11,7 +13,7 @@ TEST pidof glusterd TEST $CLI volume info; TEST $CLI volume create $V0 $H0:$B0/$V0 - +TEST $CLI volume set $V0 nfs.disable false TEST $CLI volume start $V0; ## Wait for volume to register with rpc.mountd diff --git a/tests/bugs/nfs/bug-1161092-nfs-acls.t b/tests/bugs/nfs/bug-1161092-nfs-acls.t index ed7761db3e3..45a22e79336 100644 --- a/tests/bugs/nfs/bug-1161092-nfs-acls.t +++ b/tests/bugs/nfs/bug-1161092-nfs-acls.t @@ -3,6 +3,8 @@ . $(dirname $0)/../../include.rc . $(dirname $0)/../../nfs.rc +#G_TESTDEF_TEST_STATUS_CENTOS6=NFS_TEST + cleanup; TEST glusterd @@ -11,6 +13,7 @@ TEST $CLI volume info TEST $CLI volume create $V0 $H0:$B0/brick1; EXPECT 'Created' volinfo_field $V0 'Status'; +TEST $CLI volume set $V0 nfs.disable false TEST $CLI volume start $V0; EXPECT 'Started' volinfo_field $V0 'Status'; diff --git a/tests/bugs/nfs/bug-1166862.t b/tests/bugs/nfs/bug-1166862.t index c8f63d50b0c..c4f51a2d446 100755 --- a/tests/bugs/nfs/bug-1166862.t +++ b/tests/bugs/nfs/bug-1166862.t @@ -5,6 +5,8 @@ # Based on: bug-904065.t # +#G_TESTDEF_TEST_STATUS_CENTOS6=NFS_TEST + # count the lines of a file, return 0 if the file does not exist function count_lines() { @@ -28,6 +30,7 @@ TEST pidof glusterd TEST $CLI volume create $V0 $H0:$B0/brick1 EXPECT 'Created' volinfo_field $V0 'Status' +TEST $CLI volume set $V0 nfs.disable false TEST $CLI volume start $V0; EXPECT 'Started' volinfo_field $V0 'Status' diff --git a/tests/bugs/nfs/bug-1210338.c b/tests/bugs/nfs/bug-1210338.c index 7a17b9d68ce..d4099244176 100644 --- a/tests/bugs/nfs/bug-1210338.c +++ b/tests/bugs/nfs/bug-1210338.c @@ -7,26 +7,25 @@ #include <fcntl.h> #include <sys/stat.h> - int -main (int argc, char *argv[]) +main(int argc, char *argv[]) { - int ret = -1; - int fd = -1; + int ret = -1; + int fd = -1; - fd = open (argv[1], O_CREAT|O_EXCL, 0644); + fd = open(argv[1], O_CREAT | O_EXCL, 0644); - if (fd == -1) { - fprintf (stderr, "creation of the file %s failed (%s)\n", argv[1], - strerror (errno)); - goto out; - } + if (fd == -1) { + fprintf(stderr, "creation of the file %s failed (%s)\n", argv[1], + strerror(errno)); + goto out; + } - ret = 0; + ret = 0; out: - if (fd > 0) - close (fd); + if (fd > 0) + close(fd); - return ret; + return ret; } diff --git a/tests/bugs/nfs/bug-1210338.t b/tests/bugs/nfs/bug-1210338.t index cdac24e3e8e..b5c9245affd 100644 --- a/tests/bugs/nfs/bug-1210338.t +++ b/tests/bugs/nfs/bug-1210338.t @@ -4,6 +4,8 @@ . $(dirname $0)/../../volume.rc . $(dirname $0)/../../nfs.rc +#G_TESTDEF_TEST_STATUS_CENTOS6=NFS_TEST + cleanup; NFS_SOURCE=$(dirname $0)/bug-1210338.c @@ -13,6 +15,7 @@ TEST glusterd TEST pidof glusterd TEST $CLI volume create $V0 $H0:$B0/$V0 +TEST $CLI volume set $V0 nfs.disable false TEST $CLI volume start $V0 EXPECT_WITHIN $NFS_EXPORT_TIMEOUT "1" is_nfs_export_available; TEST mount_nfs $H0:/$V0 $N0 nolock diff --git a/tests/bugs/nfs/bug-1302948.t b/tests/bugs/nfs/bug-1302948.t new file mode 100755 index 00000000000..a2fb0e68ff0 --- /dev/null +++ b/tests/bugs/nfs/bug-1302948.t @@ -0,0 +1,13 @@ +#!/bin/bash +# TEST the nfs.rdirplus option +. $(dirname $0)/../../include.rc + +cleanup +TEST glusterd +TEST pidof glusterd + +TEST $CLI volume create $V0 $H0:$B0/$V0 +TEST $CLI volume start $V0 +TEST $CLI volume set $V0 nfs.rdirplus off +TEST $CLI volume set $V0 nfs.rdirplus on +cleanup diff --git a/tests/bugs/nfs/bug-847622.t b/tests/bugs/nfs/bug-847622.t index 22167e87e50..5ccee722ed9 100755 --- a/tests/bugs/nfs/bug-847622.t +++ b/tests/bugs/nfs/bug-847622.t @@ -4,6 +4,8 @@ . $(dirname $0)/../../nfs.rc . $(dirname $0)/../../volume.rc +#G_TESTDEF_TEST_STATUS_CENTOS6=NFS_TEST + case $OSTYPE in NetBSD) echo "Skip test on ACL which are not available on NetBSD" >&2 @@ -19,6 +21,7 @@ cleanup; TEST glusterd TEST pidof glusterd TEST $CLI volume create $V0 $H0:$B0/brick0 +TEST $CLI volume set $V0 nfs.disable false TEST $CLI volume start $V0 EXPECT_WITHIN $NFS_EXPORT_TIMEOUT "1" is_nfs_export_available; diff --git a/tests/bugs/nfs/bug-877885.t b/tests/bugs/nfs/bug-877885.t index 47eb396b532..dca315a3d01 100755 --- a/tests/bugs/nfs/bug-877885.t +++ b/tests/bugs/nfs/bug-877885.t @@ -4,11 +4,14 @@ . $(dirname $0)/../../nfs.rc . $(dirname $0)/../../volume.rc +#G_TESTDEF_TEST_STATUS_CENTOS6=NFS_TEST + cleanup; TEST glusterd TEST pidof glusterd TEST $CLI volume create $V0 replica 2 $H0:$B0/brick0 $H0:$B0/brick1 +TEST $CLI volume set $V0 nfs.disable false TEST $CLI volume start $V0 ## Mount FUSE with caching disabled diff --git a/tests/bugs/nfs/bug-904065.t b/tests/bugs/nfs/bug-904065.t index ff6797bcbec..0eba86e7ee8 100755 --- a/tests/bugs/nfs/bug-904065.t +++ b/tests/bugs/nfs/bug-904065.t @@ -7,6 +7,8 @@ # sufficient. # +#G_TESTDEF_TEST_STATUS_CENTOS6=NFS_TEST + # count the lines of a file, return 0 if the file does not exist function count_lines() { @@ -30,6 +32,7 @@ TEST pidof glusterd TEST $CLI volume create $V0 $H0:$B0/brick1 EXPECT 'Created' volinfo_field $V0 'Status' +TEST $CLI volume set $V0 nfs.disable false TEST $CLI volume start $V0; EXPECT 'Started' volinfo_field $V0 'Status' @@ -76,9 +79,15 @@ TEST gluster volume set $V0 nfs.mount-rmtab $M0/rmtab # glusterfs/nfs needs some time to restart EXPECT_WITHIN $NFS_EXPORT_TIMEOUT 1 is_nfs_export_available +# Apparently "is_nfs_export_available" might return even if the export is +# not, in fact, available. (eyeroll) Give it a bit of extra time. +# +# TBD: fix the broken shell function instead of working around it here +sleep 5 + # a new mount should be added to the rmtab, not overwrite exiting ones TEST mount_nfs $H0:/$V0 $N0 nolock -EXPECT '4' count_lines $M0/rmtab +EXPECT_WITHIN $PROCESS_UP_TIMEOUT '4' count_lines $M0/rmtab EXPECT_WITHIN $UMOUNT_TIMEOUT "Y" force_umount $N0 EXPECT '2' count_lines $M0/rmtab diff --git a/tests/bugs/nfs/bug-915280.t b/tests/bugs/nfs/bug-915280.t index 72bdf2c0d9c..bd279157c25 100755 --- a/tests/bugs/nfs/bug-915280.t +++ b/tests/bugs/nfs/bug-915280.t @@ -4,6 +4,8 @@ . $(dirname $0)/../../volume.rc . $(dirname $0)/../../nfs.rc +#G_TESTDEF_TEST_STATUS_CENTOS6=NFS_TEST + cleanup; TEST glusterd @@ -19,6 +21,7 @@ function volinfo_field() TEST $CLI volume create $V0 $H0:$B0/brick1 $H0:$B0/brick2; EXPECT 'Created' volinfo_field $V0 'Status'; +TEST $CLI volume set $V0 nfs.disable false TEST $CLI volume start $V0; EXPECT 'Started' volinfo_field $V0 'Status'; diff --git a/tests/bugs/nfs/bug-974972.t b/tests/bugs/nfs/bug-974972.t index 9ed19915a67..975c46f85a4 100755 --- a/tests/bugs/nfs/bug-974972.t +++ b/tests/bugs/nfs/bug-974972.t @@ -4,6 +4,8 @@ . $(dirname $0)/../../volume.rc . $(dirname $0)/../../nfs.rc +#G_TESTDEF_TEST_STATUS_CENTOS6=NFS_TEST + #This script checks that nfs mount does not fail lookup on files with split-brain cleanup; @@ -11,6 +13,8 @@ TEST glusterd TEST pidof glusterd TEST $CLI volume create $V0 replica 2 $H0:$B0/${V0}{0,1} TEST $CLI volume set $V0 self-heal-daemon off +TEST $CLI volume set $V0 cluster.eager-lock off +TEST $CLI volume set $V0 nfs.disable false TEST $CLI volume start $V0 EXPECT_WITHIN $NFS_EXPORT_TIMEOUT "1" is_nfs_export_available; TEST mount_nfs $H0:/$V0 $N0 diff --git a/tests/bugs/nfs/showmount-many-clients.t b/tests/bugs/nfs/showmount-many-clients.t new file mode 100644 index 00000000000..c6c9c35d60a --- /dev/null +++ b/tests/bugs/nfs/showmount-many-clients.t @@ -0,0 +1,43 @@ +#!/bin/bash +# +# The nfs.rpc-auth-allow volume option is used to generate the list of clients +# that are displayed as able to mount the export. The "group" in the export +# should be a list of all clients, identified by "name". In previous versions, +# the "name" was the copied string from nfs.rpc-auth-allow. This is not +# correct, as the volume option should be parsed and split into different +# groups. +# +# When the single string is passed, this testcase fails when the +# nfs.rpc-auth-allow volume option is longer than 256 characters. By splitting +# the groups into their own structures, this testcase passes. +# + +#G_TESTDEF_TEST_STATUS_CENTOS6=NFS_TEST + +. $(dirname $0)/../../include.rc +. $(dirname $0)/../../nfs.rc +. $(dirname $0)/../../volume.rc + +cleanup + +TEST glusterd +TEST pidof glusterd + +TEST $CLI volume create $V0 $H0:$B0/brick1 +EXPECT 'Created' volinfo_field $V0 'Status' +TEST $CLI volume set $V0 nfs.disable false + +CLIENTS=$(echo 127.0.0.{1..128} | tr ' ' ,) +TEST $CLI volume set $V0 nfs.rpc-auth-allow ${CLIENTS} +TEST $CLI volume set $V0 nfs.rpc-auth-reject all + +TEST $CLI volume start $V0; +EXPECT 'Started' volinfo_field $V0 'Status' + +# glusterfs/nfs needs some time to start up in the background +EXPECT_WITHIN $NFS_EXPORT_TIMEOUT 1 is_nfs_export_available + +# showmount should not timeout (no reply is sent on error) +TEST showmount -e $H0 + +cleanup diff --git a/tests/bugs/nfs/socket-as-fifo.py b/tests/bugs/nfs/socket-as-fifo.py index 1fce5b96896..eb507e1d30b 100755 --- a/tests/bugs/nfs/socket-as-fifo.py +++ b/tests/bugs/nfs/socket-as-fifo.py @@ -1,10 +1,10 @@ -#!/usr/bin/env python # # Create a unix domain socket and test if it is a socket (and not a fifo/pipe). # # Author: Niels de Vos <ndevos@redhat.com> # +from __future__ import print_function import os import stat import sys @@ -13,7 +13,7 @@ import socket ret = 1 if len(sys.argv) != 2: - print 'Usage: %s <socket>' % (sys.argv[0]) + print('Usage: %s <socket>' % (sys.argv[0])) sys.exit(ret) path = sys.argv[1] diff --git a/tests/bugs/nfs/socket-as-fifo.t b/tests/bugs/nfs/socket-as-fifo.t index 94a800a2ceb..d9b9e959ce3 100644 --- a/tests/bugs/nfs/socket-as-fifo.t +++ b/tests/bugs/nfs/socket-as-fifo.t @@ -4,18 +4,21 @@ . $(dirname $0)/../../volume.rc . $(dirname $0)/../../nfs.rc +#G_TESTDEF_TEST_STATUS_CENTOS6=NFS_TEST + cleanup; TEST glusterd TEST pidof glusterd TEST $CLI volume create $V0 $H0:$B0/$V0 +TEST $CLI volume set $V0 nfs.disable false TEST $CLI volume start $V0 EXPECT_WITHIN $NFS_EXPORT_TIMEOUT "1" is_nfs_export_available; TEST mount_nfs $H0:/$V0 $N0 nolock # this is the actual test -TEST $(dirname $0)/socket-as-fifo.py $N0/not-a-fifo.socket +TEST $PYTHON $(dirname $0)/socket-as-fifo.py $N0/not-a-fifo.socket TEST umount_nfs $N0 diff --git a/tests/bugs/nfs/subdir-trailing-slash.t b/tests/bugs/nfs/subdir-trailing-slash.t new file mode 100644 index 00000000000..6a114877ac7 --- /dev/null +++ b/tests/bugs/nfs/subdir-trailing-slash.t @@ -0,0 +1,32 @@ +#!/bin/bash +# +# Verify that mounting a subdir over NFS works, even with a trailing / +# +# For example: +# mount -t nfs server.example.com:/volume/subdir/ +# + +. $(dirname $0)/../../include.rc +. $(dirname $0)/../../volume.rc +. $(dirname $0)/../../nfs.rc + +#G_TESTDEF_TEST_STATUS_CENTOS6=NFS_TEST + +cleanup; +TEST glusterd +TEST pidof glusterd + +TEST $CLI volume create $V0 $H0:$B0/$V0 +TEST $CLI volume set $V0 nfs.disable false + +TEST $CLI volume start $V0 +EXPECT_WITHIN $NFS_EXPORT_TIMEOUT "1" is_nfs_export_available + +TEST mount_nfs $H0:/$V0 $N0 nolock +TEST mkdir -p $N0/subdir +EXPECT_WITHIN $UMOUNT_TIMEOUT "Y" force_umount $N0 + +TEST mount_nfs $H0:/$V0/subdir/ $N0 nolock +EXPECT_WITHIN $UMOUNT_TIMEOUT "Y" force_umount $N0 + +cleanup diff --git a/tests/bugs/nfs/zero-atime.t b/tests/bugs/nfs/zero-atime.t new file mode 100755 index 00000000000..2a940091ad9 --- /dev/null +++ b/tests/bugs/nfs/zero-atime.t @@ -0,0 +1,33 @@ +#!/bin/bash +# +# posix_do_utimes() sets atime and mtime to the values in the passed IATT. If +# not set, these values are 0 and cause a atime/mtime set to the Epoch. +# + +. $(dirname $0)/../../include.rc +. $(dirname $0)/../../volume.rc +. $(dirname $0)/../../nfs.rc + +#G_TESTDEF_TEST_STATUS_CENTOS6=NFS_TEST + +cleanup + +TEST glusterd +TEST pidof glusterd + +TEST $CLI volume create $V0 $H0:$B0/$V0 +TEST $CLI volume set $V0 nfs.disable false +TEST $CLI volume start $V0 +EXPECT_WITHIN $NFS_EXPORT_TIMEOUT "1" is_nfs_export_available; +TEST mount_nfs $H0:/$V0 $N0 nolock + +# create a file for testing +TEST dd if=/dev/urandom of=$M0/small count=1 bs=1024k + +# timezone in UTC results in atime=0 if not set correctly +TEST TZ=UTC dd if=/dev/urandom of=$M0/small bs=64k count=1 conv=nocreat +TEST [ "$(stat --format=%X $M0/small)" != "0" ] + +TEST rm $M0/small + +cleanup |
