From: Bernhard Urban Date: Wed, 17 Mar 2010 23:09:56 +0000 (+0100) Subject: parser: testsuite ;) X-Git-Url: http://wien.tomnetworks.com/gitweb/?p=uebersetzerbau-ss10.git;a=commitdiff_plain;h=aeb6bd60e1977f4fdd0c3bf041ae484026b115f7 parser: testsuite ;) 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 --- diff --git a/parser/09test.sh b/parser/09test.sh new file mode 100755 index 0000000..548ac36 --- /dev/null +++ b/parser/09test.sh @@ -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" diff --git a/parser/Makefile b/parser/Makefile index 176a9f5..6a9ff6f 100644 --- a/parser/Makefile +++ b/parser/Makefile @@ -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 index 0000000..639c766 --- /dev/null +++ b/parser/test/a.0 @@ -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 index 0000000..48d19b3 --- /dev/null +++ b/parser/test/a.1 @@ -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 index 0000000..a59ac9c --- /dev/null +++ b/parser/test/a.2 @@ -0,0 +1,4 @@ +method f () + var muh := 0x10; + muh = muh * -2; +end;