]> git.ipfire.org Git - thirdparty/rrdtool-1.x.git/commitdiff
Improve test suite. Allow to have tests run using a local rrdcached instance
authorPeter Stamfest <peter@stamfest.at>
Thu, 4 Sep 2014 06:55:46 +0000 (08:55 +0200)
committerPeter Stamfest <peter@stamfest.at>
Thu, 4 Sep 2014 08:24:19 +0000 (10:24 +0200)
using the TESTS_STLYE environment variable (Set it to 'rrdcached')

tests/create-with-source-1
tests/create-with-source-4
tests/functions

index 9c8ba6fd0b728103b2204c6011a5d6e228bfdb9e..cfa8c9c777626c429be112c04a1bcaaa0c40ca5b 100755 (executable)
@@ -42,6 +42,8 @@ $RRDTOOL update ${PREFIX}a1.rrd  $UPDATE
 $RRDTOOL create ${PREFIX}a2.rrd --start $ST --step 60 --source ${PREFIX}a1.rrd DS:a:GAUGE:120:0:U  RRA:AVERAGE:0.5:1:100 RRA:AVERAGE:0.5:5:2 RRA:MIN:0.5:5:2 RRA:MAX:0.5:5:2 RRA:LAST:0.5:5:2 
 report create-with-source-1
 
+[ -f ${PREFIX}a2.rrd ] || fail "file is missing!!"
+
 $RRDTOOL dump ${PREFIX}a1.rrd > ${PREFIX}a1.xml
 $RRDTOOL dump ${PREFIX}a2.rrd > ${PREFIX}a2.xml
 $DIFF ${PREFIX}a1.xml ${PREFIX}a2.xml
index b4f98aec808942c41ddbc48a78c7421c6cef17e2..2811374f3b7b47bc6ed61164724e4d001202aaa2 100755 (executable)
@@ -80,7 +80,7 @@ AVG2=$2
 
 [ $AVG1 = 1 ] ; report average ab1 == 1
 [ $(dc <<< "$AVG2 1 - 10000 * 1 / p") -lt 10 ] ; report "average ab2 ($AVG2 - 1) < 1/1000"
-[ $STDEV1 = 0 ] ; report std dev ab1 == 0
+[ $STDEV1 = 0 ] ; report "std dev ab1 == 0 ($STDEV1)"
 [ $(dc <<< "$STDEV2 10000 * 1 / p") -lt 20 ] ; report "std dev ab2 ($STDEV2) < 1/500"
 
 
index bea24d0db195e819f5bb40d4939e75baa596657f..86260071203e9db613b7c046e91a7b4cdf6ad06b 100644 (file)
@@ -3,9 +3,13 @@ TZ=CET
 export TZ
 
 BASEDIR="${BASEDIR:-$(dirname $0)}"
+BASEDIR="$(realpath $BASEDIR)"
+
 BUILDDIR="${BUILDDIR:-${BASEDIR}}"
 TOP_BUILDDIR="${TOP_BUILDDIR:-${BASEDIR}/..}"
 
+DIFF="diff -u"
+
 #
 # because valgrind has trouble with glib memory handling
 # (see e.g. https://developer.gnome.org/glib/2.30/glib-running.html or 
@@ -58,40 +62,11 @@ function valgrind {
   return $?
 }
 
-if [ -z "$RRDTOOL" ] ; then 
-       case "$TESTS_STYLE" in
-       valgrind)
-               echo >&2 "# Note: exit code 111 indicates a valgrind detected memory problem" 
-               RRDTOOL="valgrind $TOP_BUILDDIR/src/rrdtool"
-               RRDCACHED="valgrind $TOP_BUILDDIR/src/rrdcached"
-                ;;
-       valgrind-logfile)
-               echo >&2 "# Note: exit code 111 indicates a valgrind detected memory problem" 
-               RRDTOOL="valgrind $TOP_BUILDDIR/src/rrdtool"
-               RRDCACHED="valgrind $TOP_BUILDDIR/src/rrdcached"
-                VALGRIND_LOGFILE="${BASEDIR}/$(basename $0)"-valgrind.log
-                rm -f "$VALGRIND_LOGFILE"
-       ;;
-       *)
-               RRDTOOL=$TOP_BUILDDIR/src/rrdtool
-               RRDCACHED=$TOP_BUILDDIR/src/rrdcached
-               ;;
-       esac
-fi
-
 function verbose_rrdtool {
        echo "$RRDTOOL_V" "$@"
        "$RRDTOOL_V" "$@"
 }
 
-if [ -n "$VERBOSE" ] ; then
-       RRDTOOL_V="$RRDTOOL"
-       RRDTOOL=verbose_rrdtool
-fi
-
-
-DIFF="diff -u"
-
 function fail {
        RC=$?
        echo >&2 "FAILED: (rc=$RC)" "$@"
@@ -120,3 +95,77 @@ function report {
                fail "$@"
        fi
 }
+
+function run_cached {
+        local D="$1"
+        local CACHED="${D:-$RRDCACHED}"
+
+        stop_cached
+
+        local ADDR
+        ADDR="unix:$BASEDIR/$(basename $0)-rrdcached.sock"
+        CACHED_PID_FILE="$BASEDIR/$(basename $0)-rrdcached.pid"
+
+        $CACHED -p "$CACHED_PID_FILE" -l "$ADDR" -b "$(realpath $BASEDIR)" -F
+
+        RRDCACHED_ADDRESS=$ADDR
+        export RRDCACHED_ADDRESS
+
+        sleep 1
+        trap 'stop_cached' EXIT
+}
+
+function stop_cached {
+        if [ -n "$CACHED_PID_FILE" ] ; then
+                kill $(cat "$CACHED_PID_FILE")
+                rm -f -- "$CACHED_PID_FILE"
+                CACHED_PID_FILE=""
+                RRDCACHED_ADDRESS=""
+        fi
+}
+
+function exit_if_cached_running {
+        local E="$1"
+        local MSG="$2"
+        if [ -n "$RRDCACHED_ADDRESS" ] ; then
+                echo >&2 "$MSG"
+                exit ${E:-1}
+        fi
+}
+
+if [ -n "$VERBOSE" ] ; then
+       RRDTOOL_V="$RRDTOOL"
+       RRDTOOL=verbose_rrdtool
+fi
+
+if [ -z "$RRDTOOL" ] ; then 
+        RRDTOOL=$TOP_BUILDDIR/src/rrdtool
+        RRDCACHED=$TOP_BUILDDIR/src/rrdcached
+
+        NEED_CACHED=
+        for ST in $TESTS_STYLE ; do
+                case "$ST" in
+                rrdcached)
+                        NEED_CACHED=1
+                        STANDARD_RRDCACHED="$RRDCACHED"
+                        ;;
+                valgrind)
+                        echo >&2 "# Note: exit code 111 indicates a valgrind detected memory problem" 
+                        RRDTOOL="valgrind $TOP_BUILDDIR/src/rrdtool"
+                        RRDCACHED="valgrind $TOP_BUILDDIR/src/rrdcached"
+                        ;;
+                valgrind-logfile)
+                        echo >&2 "# Note: exit code 111 indicates a valgrind detected memory problem" 
+                        RRDTOOL="valgrind $TOP_BUILDDIR/src/rrdtool"
+                        RRDCACHED="valgrind $TOP_BUILDDIR/src/rrdcached"
+                        VALGRIND_LOGFILE="${BASEDIR}/$(basename $0)"-valgrind.log
+                        rm -f "$VALGRIND_LOGFILE"
+                        ;;
+                *)
+                        ;;
+                esac
+        done
+        if [ -n "$NEED_CACHED" ] ; then
+                run_cached "$STANDARD_RRDCACHED"
+        fi
+fi