#!/bin/bash # # Copyright (c) 2006-2009 Gluster, Inc. # This file is part of GlusterFS. # # GlusterFS is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published # by the Free Software Foundation; either version 3 of the License, # or (at your option) any later version. # # GlusterFS is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see # . test_kill () { killall -9 glusterfs glusterfsd 2>/dev/null 1>/dev/null; umount -l $FUSE_MOUNT 2>/dev/null 1>/dev/null; umount -l $NFS_MOUNT 2>/dev/null 1>/dev/null; rm -rf /etc/glusterd/vols/*; rm -rf /etc/glusterd/peers/*; rm -rf /etc/glusterd/nfs/*; rm -rf /etc/glusterd/geo-replication/*; } test_cleanup () { rm -rf /regression/export/*; } final_kill () { killall -9 glusterd 2>/dev/null 1>/dev/null; rm -rf /etc/glusterd; } final_cleanup () { rm -rf /regression; } create_directory () { local directory=$1; mkdir -p $directory; } check_glusterd_running () { local ret; pgrep glusterd 2>/dev/null 1>/dev/null; if [ $? -eq 0 ]; then ret=22; else ret=0; fi return $ret; } start_glusterd () { local gluster_path=$1; stat --printf=%i $gluster_path 2>&1 1>/dev/null; if [ $? -ne 0 ]; then echo "glusterfs is not present in the path $gluster_path"; return 22; fi $gluster_path; } mount_glusterfs () { if [ $# -lt 1 ]; then echo "Volume name missing. Please provide gluster volume name to 'mount_glusterfs'" exit 1 else local volname=$1; fi $GLUSTERFSDIR/glusterfs --volfile-server=$(hostname) --volfile-id=$volname $FUSE_MOUNT; sleep 5; } mount_glusterfs_with_acl () { if [ $# -lt 1 ]; then echo "Volume name missing. Please provide gluster volume name to 'mount_glusterfs_with_acl'" exit 1 else local volname=$1; fi $GLUSTERFSDIR/glusterfs --acl --volfile-server=$(hostname) --volfile-id=$volname $FUSE_MOUNT; sleep 5; } mount_nfs () { if [ $# -lt 1 ]; then echo "Volume name missing. Please provide gluster volume name to 'mount_nfs'" exit 1 else local volname=$1; fi mount $(hostname):$volname $NFS_MOUNT; sleep 5; } run_testcase () { local id=; if [ $# -eq 1 ]; then id=$1; fi export global_bug_id=; if [ $id ]; then global_bug_id=$id; export FUSE_MOUNT=$EXPORT_DIR/$global_bug_id/fuse; export NFS_MOUNT=$EXPORT_DIR/$global_bug_id/nfs; if [ -f $cwd/dvm/$id/testcase ]; then create_directory $FUSE_MOUNT; create_directory $NFS_MOUNT; $cwd/dvm/$id/testcase $GLUSTERD; if [ $? -ne 0 ]; then echo -n "$global_bug_id: " not_ok; else echo -n "$global_bug_id: " ok; fi else echo "Regression testcase for the bug $id is not present" fi test_kill; test_cleanup; return 0; fi for i in $(ls $cwd/dvm/ | grep "^[0-9]*$" | sort -n) do if [ -f $cwd/dvm/$i/testcase ]; then run_testcase $i; sleep 1; fi done } function ok () { echo "ok" } function not_ok () { echo "not ok" }