SUMMARY *** `exit-on-first-error` should *not* exit on any error that is not listed in the `errors-for-leak-kinds` list. *** STEPS TO REPRODUCE 1. Build and install in the usual way: ./autogen.sh && ./configure --prefix=$HOME/.local && make -j 20 && make -j 20 check && make install 2. From root directory of valgrind, run: valgrind --error-exitcode=127 --errors-for-leak-kinds=definite --leak-check=full -s --exit-on-first-error=yes memcheck/tests/leak-cases OBSERVED RESULT Despite setting errors-for-leak-kinds to "definite", the test is exiting on a non-"definite" leak. EXPECTED RESULT The test should only exit on leak types listed in the errors-for-leak-kinds. If that list is empty only then should it exit on all types of leaks. SOFTWARE/OS VERSIONS Linux/KDE Plasma: 3.22 git commit c086bbdd6 ADDITIONAL INFORMATION More details here: https://github.com/eyal0/valgrind/pull/5#issuecomment-1705724572 Working fix with unit test here: https://github.com/eyal0/valgrind/pull/5/files
Created attachment 161405 [details] patch with working code and unit test This fixes the issue and adds a unit test. Also here: https://github.com/eyal0/valgrind/pull/5/files
Let me know if there's anything that you'd like me to do here! The patch and testing is pretty straight-forward. I think that the new behavior will be more inline with valgrind user expectation.
Probably next on my list after FreeBSD arm64.
Thanks! Added to NEWS and changed commit message commit ca58f30a5e728cda2802c7fafdc0770a45a5f8cb (HEAD -> master, origin/master, origin/HEAD) Author: Eyal Soha <eyalsoha@gmail.com> Date: Tue Mar 2 14:42:38 2021 -0700 Bug 474160 - If errors-for-leak-kinds is specified, exit-on-first-error should only exit on one of the listed errors. It's possible for the user to specify in the memcheck that some errors should not cause an exit with the error-exitcode value. For those errors which would not cause an error exitcode, do not count them for the purposes of exiting after the first error.