summaryrefslogtreecommitdiffstats
path: root/tests/include.rc
diff options
context:
space:
mode:
Diffstat (limited to 'tests/include.rc')
-rw-r--r--tests/include.rc91
1 files changed, 87 insertions, 4 deletions
diff --git a/tests/include.rc b/tests/include.rc
index f5cab1f66..80457f124 100644
--- a/tests/include.rc
+++ b/tests/include.rc
@@ -3,9 +3,11 @@ M1=${M1:=/mnt/glusterfs/1}; # 1st mount point for FUSE
N0=${N0:=/mnt/nfs/0}; # 0th mount point for NFS
N1=${N1:=/mnt/nfs/1}; # 1st mount point for NFS
V0=${V0:=patchy}; # volume name to use in tests
+V1=${V1:=patchy1}; # volume name to use in tests
B0=${B0:=/d/backends}; # top level of brick directories
H0=${H0:=`hostname --fqdn`}; # hostname
DEBUG=${DEBUG:=0} # turn on debugging?
+statedumpdir=`gluster --print-statedumpdir`; # Default directory for statedump
CLI="gluster --mode=script";
@@ -13,7 +15,17 @@ mkdir -p $B0;
mkdir -p $M0 $M1;
mkdir -p $N0 $N1;
-testcnt=`egrep '^[[:space:]]*(EXPECT|TEST|EXPECT_WITHIN|EXPECT_KEYWORD)' $0 | wc -l`;
+testcnt=`egrep '^[[:space:]]*(EXPECT|TEST|EXPECT_WITHIN|EXPECT_KEYWORD)[[:space:]]' $0 | wc -l`
+expect_tests=`egrep '^[[:space:]]*TESTS_EXPECTED_IN_LOOP[[:space:]]*' $0`
+
+x_ifs=$IFS
+IFS=$'\n'
+for line in $expect_tests; do
+ expect_tests=`echo $line | cut -f 2 -d =`
+ testcnt=`expr $testcnt + $expect_tests`
+done
+IFS=$x_ifs
+
echo 1..$testcnt
t=1
@@ -101,7 +113,7 @@ function _TEST()
test_header "$@";
- if [ "$1"="!" ]; then
+ if [ "$1" = "!" ]; then
redirect="2>&1"
fi
@@ -127,8 +139,17 @@ function _EXPECT_WITHIN()
local success=0
while [ `date +%s` -lt $endtime ]; do
- "$@" | tail -1 | egrep -q "^${e}\$"
- if [ $? -eq 0 ]; then
+ ("$@") | tail -1 | egrep -q "^${e}\$"
+
+ local pipestatus=(${PIPESTATUS[@]})
+
+ ## Check command success
+ if [ ${pipestatus[0]} -ne 0 ]; then
+ break;
+ fi
+
+ ## Check match success
+ if [ ${pipestatus[2]} -eq 0 ]; then
success=1;
break;
fi
@@ -145,21 +166,83 @@ function _EXPECT_WITHIN()
}
+function SKIP_TESTS()
+{
+ dbg "Skipping tests $t-$testcnt";
+ while [ $t -le $testcnt ]; do
+ true ; test_footer;
+ done
+}
+
+
+function _TEST_IN_LOOP()
+{
+ testcnt=`expr $testcnt + 1`;
+ _TEST $@
+}
+
+
function cleanup()
{
killall -15 glusterfs glusterfsd glusterd 2>/dev/null || true;
killall -9 glusterfs glusterfsd glusterd 2>/dev/null || true;
+
+ type cleanup_lvm &>/dev/null && cleanup_lvm
+
+ MOUNTPOINTS=`mount | grep "$B0/" | awk '{print $3}'`
+ for m in $MOUNTPOINTS;
+ do
+ umount $m
+ done
+
+ LOOPDEVICES=`losetup -a | grep "$B0/" | awk '{print $1}' | tr -d :`
+ for l in $LOOPDEVICES;
+ do
+ losetup -d $l
+ done
+
+
rm -rf /var/lib/glusterd/* $B0/* /etc/glusterd/*;
umount -l $M0 2>/dev/null || true;
umount -l $M1 2>/dev/null || true;
umount -l $N0 2>/dev/null || true;
umount -l $N1 2>/dev/null || true;
+
+}
+
+function volinfo_field()
+{
+ local vol=$1;
+ local field=$2;
+
+ $CLI volume info $vol | grep "^$field: " | sed 's/.*: //';
}
+function cleanup_tester ()
+{
+ local exe=$1
+ rm -f $exe
+}
+
+function build_tester ()
+{
+ local cfile=$1
+ local fname=$(basename "$cfile")
+ local ext="${fname##*.}"
+ local execname="${fname%.*}"
+ gcc -g -o $(dirname $cfile)/$execname $cfile
+}
+
+function process_leak_count ()
+{
+ local pid=$1;
+ return $(ls -lh /proc/$pid/fd | grep "(deleted)"| wc -l)
+}
alias EXPECT='_EXPECT $LINENO'
alias TEST='_TEST $LINENO'
alias EXPECT_WITHIN='_EXPECT_WITHIN $LINENO'
alias EXPECT_KEYWORD='_EXPECT_KEYWORD $LINENO'
+alias TEST_IN_LOOP='_TEST_IN_LOOP $LINENO'
shopt -s expand_aliases