changeset 689:686c23d69aa2

Add testing script.
author Matti Hamalainen <ccr@tnsp.org>
date Tue, 16 Apr 2013 16:38:25 +0300
parents d4bb017950eb
children 84811c6dd32d
files tests/testeval.sh
diffstat 1 files changed, 35 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/testeval.sh	Tue Apr 16 16:38:25 2013 +0300
@@ -0,0 +1,35 @@
+#!/bin/sh
+ETEST="../evaltest -f -e"
+CTEST=./frm
+
+echo "
+3 * -1 + 5 << 1 + 8 >> 3 * 5
+5 << 1
+8 << 3 * 5
+3200/2 << 5
+3200/(2 << 5)
+15+5/3
+(15+5)/3
+5*-3
+-64 + 5 << 3 * 3 - 1
+-64 + 5 << 3 + 3 - 1
+3 * -1 + 5 << 1
+7 + 3 << 2 * 3
+7 * 3 << 4 - 3
+" | while read f; do
+  if test "x$f" != "x"; then
+     printf "#include <stdio.h>\nint main(int argc, char *argv[])\n{\n  (void) argc; (void) argv;\n  printf(\"%%1.5f\\\\n\", (double) (%s));\n  return 0;\n}\n" "$f" > "$CTEST.c"
+     gcc -g -o "$CTEST" "$CTEST.c"
+     if test $? -eq 0; then
+       RES1=`$CTEST`
+       RES2=`$ETEST "$f"`
+       if test "$RES1" != "$RES2"; then
+         echo "---------------------------------------------"
+         echo "RESULT MISMATCH: '$f'"
+         echo " C test: $RES1"
+         echo "   eval: $RES2"
+       fi
+     fi
+  fi
+done
+rm -f "$CTEST" "$CTEST.c"