1
0
mirror of https://github.com/gluster/glusterfs.git synced 2026-02-06 18:48:16 +01:00
Files
glusterfs/tests/basic/bd.t
Emmanuel Dreyfus fb2e0a4afb Regression test portability: TAP
Even with successful tests on NetBSD, we had a failure message at
the end: "No plan found in TAP output"

This was caused by a white space left padded numerical variable.
Stripping the white spaces fixes the problem.

While there add SKIP_TEST for NetBSD on unspported tests so that
it does not triger a failure.

BUG: 1129939
Change-Id: I8d0bc125c4208974657977568d838ee2dd19783c
Signed-off-by: Emmanuel Dreyfus <manu@netbsd.org>
Reviewed-on: http://review.gluster.org/8981
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
2014-10-30 01:37:17 -07:00

143 lines
3.0 KiB
Bash
Executable File

#!/bin/bash
. $(dirname $0)/../include.rc
. $(dirname $0)/../volume.rc
function execute()
{
cmd=$1
shift
${cmd} $@ >/dev/null 2>&1
}
function bd_cleanup()
{
execute vgremove -f ${V0}
execute pvremove ${ld}
execute losetup -d ${ld}
execute rm ${BD_DISK}
cleanup
}
function check()
{
if [ $? -ne 0 ]; then
echo prerequsite $@ failed
bd_cleanup
exit
fi
}
SIZE=256 #in MB
bd_cleanup;
## Configure environment needed for BD backend volumes
## Create a file with configured size and
## set it as a temporary loop device to create
## physical volume & VG. These are basic things needed
## for testing BD xlator if anyone of these steps fail,
## test script exits
function configure()
{
GLDIR=`$CLI system:: getwd`
BD_DISK=${GLDIR}/bd_disk
execute truncate -s${SIZE}M ${BD_DISK}
check ${BD_DISK} creation
execute losetup -f
check losetup
ld=`losetup -f`
execute losetup ${ld} ${BD_DISK}
check losetup ${BD_DISK}
execute pvcreate -f ${ld}
check pvcreate ${ld}
execute vgcreate ${V0} ${ld}
check vgcreate ${V0}
execute lvcreate --thin ${V0}/pool --size 128M
}
function volinfo_field()
{
local vol=$1;
local field=$2;
$CLI volume info $vol | grep "^$field: " | sed 's/.*: //';
}
function volume_type()
{
getfattr -n volume.type $M0/. --only-values --absolute-names -e text
}
case $OSTYPE in
NetBSD)
echo "Skip test on LVM which is not available on NetBSD" >&2
SKIP_TESTS
exit 0
;;
*)
;;
esac
TEST glusterd
TEST pidof glusterd
configure
TEST $CLI volume create $V0 ${H0}:/$B0/$V0?${V0}
EXPECT "$V0" volinfo_field $V0 'Volume Name';
EXPECT 'Created' volinfo_field $V0 'Status';
## Start volume and verify
TEST $CLI volume start $V0;
EXPECT 'Started' volinfo_field $V0 'Status'
TEST $GFS --volfile-id=/$V0 --volfile-server=$H0 $M0;
EXPECT '1' volume_type
## Create posix file
TEST touch $M0/posix
TEST touch $M0/lv
gfid=`getfattr -n glusterfs.gfid.string $M0/lv --only-values --absolute-names`
TEST setfattr -n user.glusterfs.bd -v "lv:4MB" $M0/lv
# Check if LV is created
TEST stat /dev/$V0/${gfid}
## Create filesystem
sleep 1
TEST mkfs.ext4 -qF $M0/lv
# Cloning
TEST touch $M0/lv_clone
gfid=`getfattr -n glusterfs.gfid.string $M0/lv_clone --only-values --absolute-names`
TEST setfattr -n clone -v ${gfid} $M0/lv
TEST stat /dev/$V0/${gfid}
sleep 1
## Check mounting
TEST mount -o loop $M0/lv $M1
EXPECT_WITHIN $UMOUNT_TIMEOUT "Y" force_umount $M1
# Snapshot
TEST touch $M0/lv_sn
gfid=`getfattr -n glusterfs.gfid.string $M0/lv_sn --only-values --absolute-names`
TEST setfattr -n snapshot -v ${gfid} $M0/lv
TEST stat /dev/$V0/${gfid}
# Merge
sleep 1
TEST setfattr -n merge -v "$M0/lv_sn" $M0/lv_sn
TEST ! stat $M0/lv_sn
TEST ! stat /dev/$V0/${gfid}
rm $M0/* -f
EXPECT_WITHIN $UMOUNT_TIMEOUT "Y" force_umount $M0
TEST $CLI volume stop ${V0}
EXPECT 'Stopped' volinfo_field $V0 'Status';
TEST $CLI volume delete ${V0}
bd_cleanup