summaryrefslogtreecommitdiffstats
path: root/tests/include.rc
diff options
context:
space:
mode:
Diffstat (limited to 'tests/include.rc')
-rw-r--r--tests/include.rc248
1 files changed, 248 insertions, 0 deletions
diff --git a/tests/include.rc b/tests/include.rc
new file mode 100644
index 000000000..80457f124
--- /dev/null
+++ b/tests/include.rc
@@ -0,0 +1,248 @@
+M0=${M0:=/mnt/glusterfs/0}; # 0th mount point for FUSE
+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";
+
+mkdir -p $B0;
+mkdir -p $M0 $M1;
+mkdir -p $N0 $N1;
+
+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
+
+function dbg()
+{
+ [ "x$DEBUG" = "x0" ] || echo "$*" >&2;
+}
+
+
+function test_header()
+{
+ dbg "=========================";
+ dbg "TEST $t (line $TESTLINE): $*";
+}
+
+
+function test_footer()
+{
+ RET=$?
+ local err=$1
+
+ if [ $RET -eq 0 ]; then
+ echo "ok $t";
+ else
+ echo "not ok $t $err";
+ if [ "$EXIT_EARLY" = "1" ]; then
+ exit $RET
+ fi
+ fi
+
+ dbg "RESULT $t: $RET";
+
+ t=`expr $t + 1`;
+}
+
+function test_expect_footer()
+{
+ local e=$1
+ local a=$2
+ local err=""
+
+ if [ "x${e}" != "x${a}" ]; then
+ err="Got \"$a\" instead of \"$e\""
+ fi
+ [[ "x${e}" == "x${a}" ]];
+ test_footer "$err";
+}
+
+function _EXPECT()
+{
+ TESTLINE=$1;
+ shift;
+ local a=""
+
+ test_header "$@";
+
+ e="$1";
+ shift;
+ a=$("$@" | tail -1)
+
+ test_expect_footer "$e" "$a";
+}
+
+function _EXPECT_KEYWORD()
+{
+ TESTLINE=$1;
+ shift;
+
+ test_header "$@";
+
+ e="$1";
+ shift;
+ "$@" | tail -1 | grep -q "$e"
+
+ test_footer;
+}
+
+
+function _TEST()
+{
+ TESTLINE=$1;
+ shift;
+ local redirect=""
+
+ test_header "$@";
+
+ if [ "$1" = "!" ]; then
+ redirect="2>&1"
+ fi
+
+ eval "$@" >/dev/null $redirect
+
+ test_footer;
+}
+
+function _EXPECT_WITHIN()
+{
+ TESTLINE=$1
+ shift;
+
+ local timeout=$1
+ shift;
+
+ test_header "$@"
+
+ e=$1;
+ shift;
+
+ local endtime=$(( ${timeout}+`date +%s` ))
+
+ local success=0
+ while [ `date +%s` -lt $endtime ]; do
+ ("$@") | 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
+ sleep 1;
+ done
+
+ if [ $success -eq 1 ]; then
+ true;
+ else
+ false;
+ fi
+
+ test_footer;
+}
+
+
+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