glusterfs/tests/bugs/bug-884455.t
Niels de Vos c50aa14008 tests: call 'cleanup' at the end of each test
Some tests do not cleanup after themselves. That is bad behaviour and
makes it difficult to run single tests and verify the state of the
system afterwards.

Change-Id: I4ac5401d790d6bc81e6975fd1384874b21d6cf8a
BUG: 983975
Signed-off-by: Niels de Vos <ndevos@redhat.com>
Reviewed-on: http://review.gluster.org/5328
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Kaleb KEITHLEY <kkeithle@redhat.com>
Reviewed-by: Anand Avati <avati@redhat.com>
2013-07-15 10:44:27 -07:00

85 lines
2.2 KiB
Bash
Executable File

#!/bin/bash
. $(dirname $0)/../include.rc
. $(dirname $0)/../dht.rc
cleanup;
function layout_compare()
{
res=0
if [ "$1" == "$2" ]
then
res=1
fi
if [ "$1" == "$3" ]
then
res=1
fi
if [ "$2" == "$3" ]
then
res=1
fi
echo $res
}
function get_layout()
{
layout1=`getfattr -n trusted.glusterfs.dht -e hex $1 2>&1|grep dht |cut -d = -f2`
layout2=`getfattr -n trusted.glusterfs.dht -e hex $2 2>&1|grep dht |cut -d = -f2`
layout3=`getfattr -n trusted.glusterfs.dht -e hex $3 2>&1|grep dht |cut -d = -f2`
ret=$(layout_compare $layout1 $layout2 $layout3)
if [ $ret -ne 0 ]
then
echo 1
else
echo 0
fi
}
BRICK_COUNT=3
TEST glusterd
TEST pidof glusterd
TEST $CLI volume create $V0 $H0:$B0/${V0}0 $H0:$B0/${V0}1
## set subvols-per-dir option
TEST $CLI volume set $V0 subvols-per-directory 2
TEST $CLI volume start $V0
## Mount FUSE
TEST glusterfs -s $H0 --volfile-id $V0 $M0;
TEST mkdir $M0/dir{1..10} 2>/dev/null;
## Add-brick n run rebalance to force re-write of layout
TEST $CLI volume add-brick $V0 $H0:$B0/${V0}2
sleep 5;
## trigger dir self heal on client
TEST ls -l $M0 2>/dev/null;
TEST $CLI volume rebalance $V0 start force
EXPECT_WITHIN 30 "0" rebalance_completed
## check for layout overlaps.
EXPECT "0" get_layout $B0/${V0}0 $B0/${V0}1 $B0/${V0}2
EXPECT "0" get_layout $B0/${V0}0/dir1 $B0/${V0}1/dir1 $B0/${V0}2/dir1
EXPECT "0" get_layout $B0/${V0}0/dir2 $B0/${V0}1/dir2 $B0/${V0}2/dir2
EXPECT "0" get_layout $B0/${V0}0/dir3 $B0/${V0}1/dir3 $B0/${V0}2/dir3
EXPECT "0" get_layout $B0/${V0}0/dir4 $B0/${V0}1/dir4 $B0/${V0}2/dir4
EXPECT "0" get_layout $B0/${V0}0/dir5 $B0/${V0}1/dir5 $B0/${V0}2/dir5
EXPECT "0" get_layout $B0/${V0}0/dir6 $B0/${V0}1/dir6 $B0/${V0}2/dir6
EXPECT "0" get_layout $B0/${V0}0/dir7 $B0/${V0}1/dir7 $B0/${V0}2/dir7
EXPECT "0" get_layout $B0/${V0}0/dir8 $B0/${V0}1/dir8 $B0/${V0}2/dir8
EXPECT "0" get_layout $B0/${V0}0/dir9 $B0/${V0}1/dir9 $B0/${V0}2/dir9
EXPECT "0" get_layout $B0/${V0}0/dir10 $B0/${V0}1/dir10 $B0/${V0}2/dir10
cleanup;