Use the Remakefile to perform non-regression tests.
[tatoo.git] / Remakefile.in
index 2903e3e..355b643 100644 (file)
@@ -146,3 +146,36 @@ distclean: clean
                @REMAKE@ -v PACKINCLUDE="$PACKINCLUDE" -v OCAMLDEPNATIVE="$OCAMLDEPNATIVE" -v OCAMLFORPACK="$OCAMLFORPACK" "$obj"
        fi
 
+## Tests
+
+test_suite: tools src/@PACKAGE_TARNAME@.native@EXE@ 
+       for i in tests/*.xml
+       do
+               @REMAKE@ "$i".summary
+       done
+
+
+%.summary:
+               base="${1%.xml.summary}"
+               @REMAKE@ "$base".xml "$base".xml.queries
+               cat "$base".xml.queries | grep -v '^#' | while read q query; do
+                       echo -n "$base"".xml $q $query ... "
+                       REF="$base".xml.results/"$q"_jaxp.xml
+                       @REMAKE@ "$REF"
+                       OUTPUT="$base".xml.results/"$q"_@PACKAGE_TARNAME@.xml
+                       LOG="$base".xml.results/"$q"_@PACKAGE_TARNAME@.log
+                       src/@PACKAGE_TARNAME@.native@EXE@ -s "$base".xml \
+                               "$query" "$OUTPUT" > "$LOG" 2>&1
+                       echo "Query: $q : $query" > "$1"
+                       cat  "$LOG" | grep '^STATS' >> "$1"
+                       echo -n "Diff: " >> "$1"
+                       tools/xml_diff.native "$REF" "$OUTPUT" >/dev/null 2>&1
+                       if [ "$?" -eq 0 ]; then
+                               echo ok
+                               echo ok >> "$1"
+                       else
+                               echo failed
+                               echo failed >> "$1"
+                       fi
+                       echo '-------------------------------------------' >> "$1"
+               done