[Tarantool-patches] [PATCH v2 luajit 7/7] test: set LD_PRELOAD only when necessary

Sergey Bronnikov sergeyb at tarantool.org
Tue Sep 24 17:13:06 MSK 2024


Hi, Sergey,

On 24.09.2024 13:29, Sergey Kaplun wrote:
> 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.
> -  # Seehttps://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()
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.tarantool.org/pipermail/tarantool-patches/attachments/20240924/2cb2e6e1/attachment.htm>


More information about the Tarantool-patches mailing list