total=0
pass=0
+clean=0
+echo "====== Testing for correctness ======"
for test in *.c; do
echo -n "Testing $test..."
../glcpp < $test > $test.out
fi
done
+echo ""
echo "$pass/$total tests returned correct results"
echo ""
-if [ "$pass" = "$total" ] ; then
+echo "====== Testing for valgrind cleanliness ======"
+for test in *.c; do
+ echo -n "Testing $test with valgrind..."
+ if valgrind --error-exitcode=1 --log-file=$test.valgrind-errors ../glcpp < $test >/dev/null; then
+ echo "CLEAN"
+ clean=$((clean+1))
+ rm $test.valgrind-errors
+ else
+ echo "ERRORS"
+ cat $test.valgrind-errors
+ fi
+done
+
+echo ""
+echo "$pass/$total tests returned correct results"
+echo "$clean/$total tests are valgrind-clean"
+
+if [ "$pass" = "$total" ] && [ "$clean" = "$total" ]; then
exit 0
else
exit 1