Hi, Sergey,
This patch sets LD_PRELOAD for ASan build for the required tests instead of all tests. Follows up tarantool/tarantool#9898
probably follows up these commits as well:
commit 9f1137bcc890c28c5de24497624553574d371007 "cmake: replace prove with CTest"
commit abe1e0aca3ad01f89f9d184c2a82949314814d04 "ci: execute
LuaJIT tests with GCC 10 and ASAN"
LGTM
--- test/tarantool-tests/CMakeLists.txt | 33 ++++++++++++++++------------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/test/tarantool-tests/CMakeLists.txt b/test/tarantool-tests/CMakeLists.txt index a1aee3a2..74086ca4 100644 --- a/test/tarantool-tests/CMakeLists.txt +++ b/test/tarantool-tests/CMakeLists.txt @@ -82,21 +82,6 @@ make_lua_path(LUA_PATH set(LUA_TEST_SUFFIX .test.lua) -# Some tests use `LD_PRELOAD` to mock system calls (like -# <lj-802-panic-at-mcode-protfail.test.lua> overwrites -# `mprotect()`. When compiling with ASan support under GCC, it is -# required that the ASan library go first in the `LD_PRELOAD` -# list. Set it manually. The test will append it to the executed -# process. -if(LUAJIT_USE_ASAN AND CMAKE_C_COMPILER_ID STREQUAL "GNU") - # FIXME: We should set this environment variable only - # for the corresponding tests to avoid warnings from - # the GNU libc and other libc implementations. - # See https://github.com/tarantool/tarantool/issues/9898. - LibRealPath(LIB_ASAN libasan.so) - list(APPEND LUA_TEST_ENV_MORE LD_PRELOAD=${LIB_ASAN}) -endif() - # FIXME: This is needed for disabling some flaky tests (like # profilers), until LuaJIT/LuaJIT#606 will not be resolved. if(LUAJIT_ENABLE_TABLE_BUMP) @@ -163,3 +148,21 @@ foreach(test_path ${tests}) endforeach() endif() endforeach() + +# Some tests use `LD_PRELOAD` to mock system calls (like +# <lj-802-panic-at-mcode-protfail.test.lua> overwrites +# `mprotect()`). When compiling with ASan support under GCC, it is +# required that the ASan library go first in the `LD_PRELOAD` +# list. Set it manually. The test will append it to the executed +# process. +if(LUAJIT_USE_ASAN AND CMAKE_C_COMPILER_ID STREQUAL "GNU") + LibRealPath(LIB_ASAN libasan.so) + AppendTestEnvVar( + "test/${TEST_SUITE_NAME}/lj-522-fix-dlerror-return-null.test.lua" + LD_PRELOAD ${LIB_ASAN} + ) + AppendTestEnvVar( + "test/${TEST_SUITE_NAME}/lj-802-panic-at-mcode-protfail.test.lua" + LD_PRELOAD ${LIB_ASAN} + ) +endif()