]> ocean-lang.org Git - ocean/blobdiff - csrc/oceani-tests.mdc
oceani: fix valgrind-reported errors.
[ocean] / csrc / oceani-tests.mdc
index bba5156a16b05f1c084afbc7404b975ffacc73ca..8649f6e2e77290fe3dbde90f7d83835d67eee4c0 100644 (file)
@@ -50,9 +50,13 @@ arguments separated from the name by commas.  For each test, there is a section
                    if ! cmp -s .tmp.want .tmp.have; then \
                       echo "FAILED"; diff -u .tmp.want .tmp.have ; exit 1; fi ;\
                    echo -n "passed ... "; \
-                   if ! valgrind ./oceani --section "test: $$t" oceani-tests.mdc $${1+"$$@"} \
-                        > /dev/null 2> .tmp.valg; then \
+                   if ! valgrind --error-exitcode=1 --log-file=.tmp.valg ./oceani --section "test: $$t" oceani-tests.mdc $${1+"$$@"} \
+                        > /dev/null 2>&1 ; then \
                       echo "valgrind FAILED"; cat .tmp.valg; exit 1; fi ; \
+                   if grep 'LEAK SUMMARY' .tmp.valg > /dev/null; then \
+                      echo "valgrind found LEAKS"; cat .tmp.valg ; exit 1 ; fi; \
+                   if grep 'in use at exit [1-9]' .tmp.valg > /dev/null; then \
+                      echo "valgrind found memory in use at exit"; cat .tmp.valg ; exit 1 ; fi; \
                    echo -n "valgrind passed ... "; \
                    echo '``````' > .tmp.code1; echo '``````' > .tmp.code2 ;\
                    ./oceani --noexec --print --section "test: $$t" oceani-tests.mdc >> .tmp.code1; \