From aeb6bd60e1977f4fdd0c3bf041ae484026b115f7 Mon Sep 17 00:00:00 2001 From: Bernhard Urban Date: Thu, 18 Mar 2010 00:09:56 +0100 Subject: [PATCH] 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 --- parser/09test.sh | 40 ++++++++++++++++++++++++++++++++++++++++ parser/Makefile | 3 +++ parser/test/a.0 | 4 ++++ parser/test/a.1 | 4 ++++ parser/test/a.2 | 4 ++++ 5 files changed, 55 insertions(+) create mode 100755 parser/09test.sh create mode 100644 parser/test/a.0 create mode 100644 parser/test/a.1 create mode 100644 parser/test/a.2 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; -- 2.25.1