]> git.saurik.com Git - bison.git/blobdiff - examples/calc++/test
Fail on parse error in calc++.
[bison.git] / examples / calc++ / test
index 2f8a0454f9e74021d43202d7eabdcb90e92564ca..b6f0942c722aeedca20749ba6add0edbfe61f76a 100755 (executable)
@@ -5,6 +5,33 @@ test -z "$VERBOSE" && {
    set -x
 }
 
+me=`basename $0`
+
+# Number of the current test.
+number=1
+
+# Exit status of this script.
+exit=true
+
+# run EXPECTED-EXIT-STATUS [PARSER-OPTIONS]
+# -----------------------------------------
+run ()
+{
+  # Effective and expected exit status.
+  local sta_exp=$1
+  shift
+  ./calc++ "$@" input
+  local sta_eff=$?
+  if test $sta_eff -eq $sta_exp; then
+    printf "$me: PASS: %2d\n" $number
+  else
+    printf "$me: FAIL: %2d (expected status: %d, effective: %d\n" \
+        $number $sta_exp $sta_eff
+    exit=false
+  fi
+  number=`expr $number + 1`
+}
+
 cat >input <<EOF
 a := 1
 b := 2
@@ -12,20 +39,22 @@ c := 3
 d := a + b * c
 d
 EOF
+run 0
+run 0 -p
 
-./calc++ input
-./calc++ -p input
 
 cat >input <<EOF
 a := 1
 d := a + b * c
 EOF
-./calc++ input
+run 1 input
+
 
 cat >input <<EOF
 toto := 1
 toto
 EOF
-./calc++ -s input
+run 0 -s
 
 rm input
+$exit