diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/CMakeLists.txt | 2 | ||||
| -rw-r--r-- | tests/helgrind.supp | 11 |
2 files changed, 12 insertions, 1 deletions
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 068af00..6884473 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -73,7 +73,7 @@ endforeach() if (HELGRIND_TESTING) find_program(VALGRIND_EXECUTABLE valgrind) if (VALGRIND_EXECUTABLE) - set(VALGRIND_HELGRIND_OPTIONS -v --trace-children=yes --tool=helgrind --error-exitcode=1 --read-var-info=yes) + set(VALGRIND_HELGRIND_OPTIONS -v --trace-children=yes --tool=helgrind --error-exitcode=1 --read-var-info=yes --suppressions=${CMAKE_CURRENT_SOURCE_DIR}/helgrind.supp) foreach(_TEST ${SWRAP_THREADED_TESTS}) set(_HELGRIND_TEST "helgrind_${_TEST}") diff --git a/tests/helgrind.supp b/tests/helgrind.supp new file mode 100644 index 0000000..733f714 --- /dev/null +++ b/tests/helgrind.supp @@ -0,0 +1,11 @@ +# The swrap_bind_symbol_lib* macros have a thread race condition on purpose! +# +# As an optimization we do not lock the access. However if the obj is not +# bound, we lock it with a mutex and reread it again. And binding the symbol is +# protected. +{ + SWRAP_SYMBOL_ACCESS + Helgrind:Race + fun:libc_* + fun:swrap_* +} |
