aboutsummaryrefslogtreecommitdiffstats
path: root/test_parser.sh
diff options
context:
space:
mode:
authorYann Herklotz <ymherklotz@gmail.com>2017-02-17 17:27:38 +0000
committerYann Herklotz <ymherklotz@gmail.com>2017-02-17 17:27:38 +0000
commitc85746b6a6c3080bac409e0acb8cc8b332b2761e (patch)
tree7e37429cbe6014e2ed6aba6466b69cf914e2af38 /test_parser.sh
parentb81f60d8b523260526af15361d4ce0ac4a7757c8 (diff)
downloadCompiler-c85746b6a6c3080bac409e0acb8cc8b332b2761e.tar.gz
Compiler-c85746b6a6c3080bac409e0acb8cc8b332b2761e.zip
Finished compound statement for function and added test cases
Diffstat (limited to 'test_parser.sh')
-rwxr-xr-xtest_parser.sh29
1 files changed, 26 insertions, 3 deletions
diff --git a/test_parser.sh b/test_parser.sh
index 5f8e606..96644c2 100755
--- a/test_parser.sh
+++ b/test_parser.sh
@@ -9,10 +9,33 @@ echo " Force building lexer"
make -B bin/c_parser
if [[ "$?" -ne 0 ]]; then
- echo "Build failed.";
+ echo "Build failed.";
fi
+echo ""
+echo ""
echo "========================================="
-echo " Testing lexer"
+echo " Testing parser"
-cat c_parser/test/test_parser.c | ./bin/c_parser | tee c_parser/test/output.xml
+PASSED=0
+CHECKED=0
+
+for i in c_parser/test/in/*.c; do
+ echo "==========================="
+ echo ""
+ echo "Input file : ${i}"
+ BASENAME=$(basename $i .c);
+ cat $i | ./bin/c_parser > c_parser/test/out/$BASENAME.stdout.txt 2> c_parser/test/out/$BASENAME.stderr.txt
+
+ diff <(cat c_parser/test/ref/$BASENAME.stdout.txt) <(cat c_parser/test/out/$BASENAME.stdout.txt) > c_parser/test/out/$BASENAME.diff.txt
+ if [[ "$?" -ne "0" ]]; then
+ echo -e "\nERROR"
+ else
+ PASSED=$(( ${PASSED}+1 ));
+ fi
+ CHECKED=$(( ${CHECKED}+1 ));
+done
+
+echo "########################################"
+echo "Passed ${PASSED} out of ${CHECKED}".
+echo ""