parser: testsuite ;)
authorBernhard Urban <lewurm@gmail.com>
Wed, 17 Mar 2010 23:09:56 +0000 (00:09 +0100)
committerBernhard Urban <lewurm@gmail.com>
Wed, 17 Mar 2010 23:11:36 +0000 (00:11 +0100)
syntax fuer testdateien:
$ident.$returncode
where
$ident = dateiname
$returncode = der erwartete returncode

$returncode in {0,1,2}
where
0 = korrekt
1 = lexer fehler
2 = syntax fehler

parser/09test.sh [new file with mode: 0755]
parser/Makefile
parser/test/a.0 [new file with mode: 0644]
parser/test/a.1 [new file with mode: 0644]
parser/test/a.2 [new file with mode: 0644]

diff --git a/parser/09test.sh b/parser/09test.sh
new file mode 100755 (executable)
index 0000000..548ac36
--- /dev/null
@@ -0,0 +1,40 @@
+#!/bin/sh
+
+beispiel=parser
+allow_null_glob_expansion=1
+shopt -s nullglob
+PROGRAM=./$beispiel
+errnum=0
+prgnum=0
+
+LOC=~/abgabe/$beispiel/test
+
+for i in $LOC/*.[012]
+do
+       echo "---------------------------------------------------------------------"
+       echo "Test file: $i"
+       echo "Input:"
+       echo "======"
+       echo
+       cat $i
+       echo
+       let prgnum=prgnum+1
+       $PROGRAM <$i >/dev/null 2>/dev/null
+       retval=$?
+       if test $retval -eq ${i##*.}
+       then
+               echo "Correct exit status."
+       else
+                echo "[Error] Status is $retval but ${i##*.} was expected!"
+                echo   
+                let errnum=errnum+1   
+       fi
+done
+echo "---------------------------------------------------------------------"
+echo
+let corrnum=prgnum-errnum
+echo "Statistics:"
+echo "==========="
+echo "           $prgnum Tests total"
+echo "           $corrnum Tests passed"
+echo "           $errnum Tests failed"
index 176a9f511c150a366bdf6eb9befabb9e06b12422..6a9ff6f314409532d72c88b692b0e1202ff457e4 100644 (file)
@@ -33,6 +33,9 @@ $(PARSER).h: $(PARSER).c
 clean:
        rm -f $(PARSER){,.o,.c,.h,.output} $(SCANNER).{c,o}
 
+1test: clean $(NAME)
+       @./09test.sh
+
 2test:
        /usr/ftp/pub/ublu/test/$(NAME)/test 2>&1
 
diff --git a/parser/test/a.0 b/parser/test/a.0
new file mode 100644 (file)
index 0000000..639c766
--- /dev/null
@@ -0,0 +1,4 @@
+method f ()
+       var muh := 0x10;
+       muh := muh * -2;
+end;
diff --git a/parser/test/a.1 b/parser/test/a.1
new file mode 100644 (file)
index 0000000..48d19b3
--- /dev/null
@@ -0,0 +1,4 @@
+method f ()
+       var muh # 0x10;
+       muh := muh * -2;
+end;
diff --git a/parser/test/a.2 b/parser/test/a.2
new file mode 100644 (file)
index 0000000..a59ac9c
--- /dev/null
@@ -0,0 +1,4 @@
+method f ()
+       var muh := 0x10;
+       muh = muh * -2;
+end;