Tests - eventscripts - add some output filtering
authorMartin Schwenke <martin@meltin.net>
Mon, 22 Aug 2011 06:07:36 +0000 (16:07 +1000)
committerMartin Schwenke <martin@meltin.net>
Tue, 30 Aug 2011 06:51:55 +0000 (16:51 +1000)
This allows $OUT_FILTER to be set to one or more sed commands to
filter eventscript output.  This allows expected output to be
generalised.

Signed-off-by: Martin Schwenke <martin@meltin.net>
tests/eventscripts/common.sh

index a2bcd830c92edf6a0f3db82e40df5eb60919b099..0c605e7f4582f1fcc963ac758e3f10de9151d265 100644 (file)
@@ -708,7 +708,13 @@ simple_test ()
     _out=$($EVENTSCRIPTS_TESTS_TRACE "${CTDB_BASE}/events.d/$script" "$event" "$@" 2>&1)
     _rc=$?
 
-    if [ "$_out" = "$required_output" -a $_rc = $required_rc ] ; then
+    if [ -n "$OUT_FILTER" ] ; then
+       _fout=$(echo "$_out" | eval sed -r $OUT_FILTER)
+    else
+       _fout="$_out"
+    fi
+
+    if [ "$_fout" = "$required_output" -a $_rc = $required_rc ] ; then
        _passed=true
     else
        _passed=false
@@ -770,7 +776,13 @@ iterate_test ()
        _out=$($EVENTSCRIPTS_TESTS_TRACE "${CTDB_BASE}/events.d/$script" "$event" $args 2>&1)
        _rc=$?
 
-       if [ "$_out" = "$required_output" -a $_rc = $required_rc ] ; then
+    if [ -n "$OUT_FILTER" ] ; then
+       _fout=$(echo "$_out" | eval sed -r $OUT_FILTER)
+    else
+       _fout="$_out"
+    fi
+
+       if [ "$_fout" = "$required_output" -a $_rc = $required_rc ] ; then
            _passed=true
        else
            _passed=false