]> git.neil.brown.name Git - wiggle.git/commitdiff
Add 'dovtest'.
authorNeilBrown <neilb@suse.de>
Fri, 23 Aug 2013 06:01:27 +0000 (16:01 +1000)
committerNeilBrown <neilb@suse.de>
Fri, 23 Aug 2013 06:01:27 +0000 (16:01 +1000)
This runs 'browser' mode under valgrind to look for errors.

Signed-off-by: NeilBrown <neilb@suse.de>
dovtest [new file with mode: 0755]

diff --git a/dovtest b/dovtest
new file mode 100755 (executable)
index 0000000..b38bb46
--- /dev/null
+++ b/dovtest
@@ -0,0 +1,57 @@
+#!/usr/bin/env bash
+
+dir=$PWD
+
+while [ ! -f $dir/wiggle ]
+do
+  if [ -z "$dir" ]; then
+    echo >&2 Cannot find wiggle program : $WIGGLE
+    exit 1
+  fi
+  dir=${dir%/*}
+done
+export WIGGLE=$dir/wiggle
+
+if [ -d tests ]
+then cd tests
+fi
+
+vallog=/tmp/valg.log-$$
+> $vallog
+VG="valgrind --log-file=$vallog"
+
+status=0
+ok=0
+fail=0
+
+find . -name core | xargs rm -f
+list=$(find . -type f  -name merge )
+
+WIGGLE="$WIGGLE --self-test"
+for path in $list
+do
+  dir=${path%/*}
+  (
+    cd $dir
+
+    if [ -f patch ]
+    then $VG $WIGGLE -B orig patch
+    elif [ -f new ] 
+    then $VG $WIGGLE -B orig new new2
+    else $VG $WIGGLE -B  orig
+    fi
+    if grep 'ERROR SUMMARY: [1-9]' $vallog > /dev/null 2>&1
+    then msg="VALGRIND ERRORS"; xit=1
+    else msg="SUCCESS"; xit=0
+    fi
+    echo $path $msg
+    exit $xit
+  ) 
+  if [ $? = 0 ]
+  then let ok++; 
+  else status=1 ; let fail++ 
+  fi
+done
+find . -name core -ls
+echo $ok succeeded and $fail failed
+exit $status