# HG changeset patch # User Matti Hamalainen # Date 1366119505 -10800 # Node ID 686c23d69aa2928a799241c9024686cf2d20afc8 # Parent d4bb017950ebbdb50a76c4010913590068140c8c Add testing script. diff -r d4bb017950eb -r 686c23d69aa2 tests/testeval.sh --- /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 \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"