fstests: add GlusterFS support
authorZorro Lang <zlang@redhat.com>
Thu, 16 Mar 2017 05:28:19 +0000 (13:28 +0800)
committerEryu Guan <eguan@redhat.com>
Fri, 17 Mar 2017 04:24:01 +0000 (12:24 +0800)
Add basic GlusterFS support. Neither new GlusterFS specific tests
nor related patches are included. Only support FSTYP=glusterfs or
check -glusterfs XXX.

To test on glusterfs, two gluster volumes and two mountpoint
directories are needed.

Signed-off-by: Zorro Lang <zlang@redhat.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
README.config-sections
check
common/config
common/rc

index df7c929..8c319ba 100644 (file)
@@ -121,3 +121,10 @@ TEST_DIR=/mnt/test
 TEST_DEV=192.168.14.1:6789:/
 TEST_FS_MOUNT_OPTS="-o name=admin,secret=AQDuEBtYKEYRINGSECRETriSC8YJGDZsQHcr7g=="
 FSTYP="ceph"
+
+[glusterfs]
+FSTYP=glusterfs
+TEST_DIR=/mnt/gluster/test
+TEST_DEV=192.168.1.1:testvol
+SCRATCH_MNT=/mnt/gluster/scratch
+SCRATCH_DEV=192.168.1.1:scratchvol
diff --git a/check b/check
index c2c22e2..2fcf385 100755 (executable)
--- a/check
+++ b/check
@@ -65,6 +65,7 @@ usage()
 
 check options
     -nfs                test NFS
+    -glusterfs                test GlusterFS
     -cifs               test CIFS
     -overlay           test overlay
     -tmpfs              test TMPFS
@@ -260,6 +261,7 @@ while [ $# -gt 0 ]; do
        -\? | -h | --help) usage ;;
 
        -nfs)           FSTYP=nfs ;;
+       -glusterfs)     FSTYP=glusterfs ;;
        -cifs)          FSTYP=cifs ;;
        -overlay)       FSTYP=overlay; export OVERLAY=true ;;
        -tmpfs)         FSTYP=tmpfs ;;
index 121f9df..59041a3 100644 (file)
@@ -307,6 +307,9 @@ _mount_opts()
        ceph)
                export MOUNT_OPTIONS=$CEPHFS_MOUNT_OPTIONS
                ;;
+       glusterfs)
+               export MOUNT_OPTIONS=$GLUSTERFS_MOUNT_OPTIONS
+               ;;
        overlay)
                export MOUNT_OPTIONS=$OVERLAY_MOUNT_OPTIONS
                ;;
@@ -350,6 +353,9 @@ _test_mount_opts()
        nfs)
                export TEST_FS_MOUNT_OPTS=$NFS_MOUNT_OPTIONS
                ;;
+       glusterfs)
+               export TEST_FS_MOUNT_OPTS=$GLUSTERFS_MOUNT_OPTIONS
+               ;;
        *)
                ;;
        esac
index d7a5321..edfba5d 100644 (file)
--- a/common/rc
+++ b/common/rc
@@ -167,6 +167,8 @@ case "$FSTYP" in
         ;;
     ceph)
         ;;
+    glusterfs)
+        ;;
     overlay)
         ;;
     reiser4)
@@ -706,6 +708,9 @@ _test_mkfs()
     ceph)
        # do nothing for ceph
        ;;
+    glusterfs)
+       # do nothing for glusterfs
+       ;;
     overlay)
        # do nothing for overlay
        ;;
@@ -788,7 +793,7 @@ _scratch_mkfs()
        local mkfs_status
 
        case $FSTYP in
-       nfs*|cifs|ceph|overlay)
+       nfs*|cifs|ceph|overlay|glusterfs)
                # unable to re-create this fstyp, just remove all files in
                # $SCRATCH_MNT to avoid EEXIST caused by the leftover files
                # created in previous runs
@@ -1307,7 +1312,8 @@ _fs_type()
     # Fix the filesystem type up here so that the callers don't
     # have to bother with this quirk.
     #
-    _df_device $1 | $AWK_PROG '{ print $2 }' | sed -e 's/nfs4/nfs/'
+    _df_device $1 | $AWK_PROG '{ print $2 }' | \
+        sed -e 's/nfs4/nfs/' -e 's/fuse.glusterfs/glusterfs/'
 }
 
 # return the FS mount options of a mounted device
@@ -1489,6 +1495,15 @@ _check_mounted_on()
 _require_scratch_nocheck()
 {
     case "$FSTYP" in
+       glusterfs)
+               echo $SCRATCH_DEV | grep -q "\w:\w" > /dev/null 2>&1
+               if [ -z "$SCRATCH_DEV" -o "$?" != "0" ]; then
+                       _notrun "this test requires a valid \$SCRATCH_DEV"
+               fi
+               if [ ! -d "$SCRATCH_MNT" ]; then
+                       _notrun "this test requires a valid \$SCRATCH_MNT"
+               fi
+               ;;
        nfs*|ceph)
                echo $SCRATCH_DEV | grep -q ":/" > /dev/null 2>&1
                if [ -z "$SCRATCH_DEV" -o "$?" != "0" ]; then
@@ -1568,6 +1583,15 @@ _require_scratch()
 _require_test()
 {
     case "$FSTYP" in
+       glusterfs)
+               echo $TEST_DEV | grep -q "\w:\w" > /dev/null 2>&1
+               if [ -z "$TEST_DEV" -o "$?" != "0" ]; then
+                       _notrun "this test requires a valid \$TEST_DEV"
+               fi
+               if [ ! -d "$TEST_DIR" ]; then
+                       _notrun "this test requires a valid \$TEST_DIR"
+               fi
+               ;;
        nfs*|ceph)
                echo $TEST_DEV | grep -q ":/" > /dev/null 2>&1
                if [ -z "$TEST_DEV" -o "$?" != "0" ]; then
@@ -2421,6 +2445,9 @@ _check_test_fs()
     ceph)
        # no way to check consistency for CephFS
        ;;
+    glusterfs)
+       # no way to check consistency for GlusterFS
+       ;;
     overlay)
        # no way to check consistency for overlay
        ;;
@@ -2468,6 +2495,9 @@ _check_scratch_fs()
     ceph)
        # no way to check consistency for CephFS
        ;;
+    glusterfs)
+       # no way to check consistency for GlusterFS
+       ;;
     overlay)
        # no way to check consistency for overlay
        ;;