X-Git-Url: https://ocean-lang.org/code/?p=ocean;a=blobdiff_plain;f=csrc%2Foceani-tests.mdc;h=4dceab407eee8c163f4a3e69fedca3b8ccf3afe6;hp=fbc5a2f085e3af5f9ad2b2eaa4a928f24579e9fe;hb=4e45f3adc25339d51b05281710c046591be9dd6e;hpb=b880d8942e1539875d8209e18bf3d21011220ff8 diff --git a/csrc/oceani-tests.mdc b/csrc/oceani-tests.mdc index fbc5a2f..4dceab4 100644 --- a/csrc/oceani-tests.mdc +++ b/csrc/oceani-tests.mdc @@ -94,6 +94,7 @@ arguments separated from the name by commas. For each test, there is a section echo "valgrind found memory in use at exit"; cat .tmp.valg ; exit 1 ; fi; \ echo " passed"; \ done + ## valgrind test code @[ -n "$$SKIP_COVERAGE_CHECK" ] || awk '/NOTEST/ { next } /^ *[1-9]/ {ran+=1} /^ *###/ {skip+=1} \ END {printf "coverage: %6.2f%%\n", ran * 100 / (ran + skip); \ if (ran < (ran + skip) *0.968) exit(1) }' \ @@ -1057,6 +1058,19 @@ command list possible. echo "passed"; \ ./coverage_oceani $${1+"$$@"} > /dev/null 2>&1 ;\ done || true +###### valgrind test code + @[ -n "$$SKIP_VALGRIND" ] || for t in $(oceani_special_tests); do\ + echo -n "Valgrind $$t.. "; \ + i="$$IFS"; IFS=,; set $$t; IFS="$$i"; shift ;\ + if valgrind --error-exitcode=42 --log-file=.tmp.valg ./oceani $${1+"$$@"} > .tmp.have 2>&1 ;\ + [ $$? -eq 42 ]; then \ + echo "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 " passed"; \ + done ###### test list oceani_special_tests += "cmd"