glusterfs/tests/bugs/bug-893378.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

74 lines
1.5 KiB
Bash
Executable File

#!/bin/bash
. $(dirname $0)/../include.rc
cleanup;
BRICK_COUNT=3
function file_has_linkfile()
{
i=0
j=0
while [ $i -lt $BRICK_COUNT ]
do
stat=`stat $B0/${V0}$i/$1 2>/dev/null`
if [ $? -eq 0 ]
then
let j++
let "BRICK${j}=$i"
fi
let i++
done
return $j
}
function get_cached_brick()
{
i=1
while [ $i -lt 3 ]
do
test=`getfattr -n trusted.glusterfs.dht.linkto -e text $B0/${V0}$BRICK$i 2>&1`
if [ $? -eq 1 ]
then
cached=$BRICK"$i"
i=$(( $i+3 ))
fi
let i++
done
return $cached
}
TEST glusterd
TEST pidof glusterd
TEST $CLI volume create $V0 $H0:$B0/${V0}0 $H0:$B0/${V0}1 $H0:$B0/${V0}2
TEST $CLI volume start $V0
## Mount FUSE
TEST glusterfs --attribute-timeout=0 --entry-timeout=0 -s $H0 --volfile-id $V0 $M0;
## create a linkfile on subvolume 0
TEST touch $M0/1
TEST mv $M0/1 $M0/2
file_has_linkfile 2
has_link=$?
if [ $has_link -eq 2 ]
then
get_cached_brick
CACHED=$?
# Kill a brick process
kill -9 `cat /var/lib/glusterd/vols/$V0/run/$H0-d-backends-${V0}$CACHED.pid`;
fi
## trigger a lookup
ls -l $M0/2 2>/dev/null
## fail dd if file exists.
dd if=/dev/zero of=$M0/2 bs=1 count=1 conv=excl 2>/dev/null
EXPECT "1" echo $?
cleanup;