From 9a471495b88ed9950200afeb38a8ddf224f38249 Mon Sep 17 00:00:00 2001 From: Sergey Bronnikov Date: Thu, 5 Dec 2024 15:28:05 +0300 Subject: [PATCH] test: skip sysprof tests with LUAJIT_DISABLE_SYSPROF LuaJIT has a macro LUAJIT_DISABLE_SYSPROF that disables sysprof support. Sysprof tests don't respect this macro, and therefore some of them failed when the macro is enabled. The proposed patch: - Skips sysprof testcases in a suite tarantool-c-tests. - Introduces an environment variable LUAJIT_DISABLE_SYSPROF in a suite tarantool-tests that is set to 1 when sysprof support is disabled. - Propagates a status of sysprof support to Lua tests and skip testing when sysprof is disabled. Reviewed-by: Maxim Kokryashkin Reviewed-by: Sergey Kaplun Signed-off-by: Sergey Kaplun --- test/tarantool-c-tests/gh-8594-sysprof-ffunc-crash.test.c | 4 ++++ test/tarantool-c-tests/misclib-sysprof-capi.test.c | 4 ++++ test/tarantool-tests/CMakeLists.txt | 4 ++++ test/tarantool-tests/profilers/gh-5688-tool-cli-flag.test.lua | 1 + .../profilers/gh-5813-resolving-of-c-symbols.test.lua | 1 + .../gh-7264-add-proto-trace-sysprof-default.test.lua | 1 + .../profilers/gh-9217-profile-parsers-error-handling.test.lua | 1 + test/tarantool-tests/profilers/misclib-sysprof-lapi.test.lua | 1 + 8 files changed, 17 insertions(+) diff --git a/test/tarantool-c-tests/gh-8594-sysprof-ffunc-crash.test.c b/test/tarantool-c-tests/gh-8594-sysprof-ffunc-crash.test.c index a8de33581f..a83a092142 100644 --- a/test/tarantool-c-tests/gh-8594-sysprof-ffunc-crash.test.c +++ b/test/tarantool-c-tests/gh-8594-sysprof-ffunc-crash.test.c @@ -277,8 +277,12 @@ static int test_tostring_call(void *ctx) int main(void) { +#if LUAJIT_DISABLE_SYSPROF + return skip_all("Sysprof is disabled"); +#else /* LUAJIT_DISABLE_SYSPROF */ const struct test_unit tgroup[] = { test_unit_def(test_tostring_call), }; return test_run_group(tgroup, NULL); +#endif /* LUAJIT_DISABLE_SYSPROF */ } diff --git a/test/tarantool-c-tests/misclib-sysprof-capi.test.c b/test/tarantool-c-tests/misclib-sysprof-capi.test.c index 6f53d48841..21e40d22d1 100644 --- a/test/tarantool-c-tests/misclib-sysprof-capi.test.c +++ b/test/tarantool-c-tests/misclib-sysprof-capi.test.c @@ -301,6 +301,9 @@ static int profile_func_jiton(void *test_state) int main(void) { +#if LUAJIT_DISABLE_SYSPROF + return skip_all("Sysprof is disabled"); +#else /* LUAJIT_DISABLE_SYSPROF */ if (LUAJIT_OS != LUAJIT_OS_LINUX) return skip_all("Sysprof is implemented for Linux only"); if (LUAJIT_TARGET != LUAJIT_ARCH_X86 @@ -322,4 +325,5 @@ int main(void) const int test_result = test_run_group(tgroup, L); utils_lua_close(L); return test_result; +#endif /* LUAJIT_DISABLE_SYSPROF */ } diff --git a/test/tarantool-tests/CMakeLists.txt b/test/tarantool-tests/CMakeLists.txt index 8bdb2cf336..a6e39f6ca6 100644 --- a/test/tarantool-tests/CMakeLists.txt +++ b/test/tarantool-tests/CMakeLists.txt @@ -89,6 +89,10 @@ if(LUAJIT_ENABLE_TABLE_BUMP) list(APPEND LUA_TEST_ENV_MORE LUAJIT_TABLE_BUMP=1) endif() +if(LUAJIT_DISABLE_SYSPROF) + list(APPEND LUA_TEST_ENV_MORE LUAJIT_DISABLE_SYSPROF=1) +endif() + set(TEST_SUITE_NAME "tarantool-tests") # XXX: The call produces both test and target diff --git a/test/tarantool-tests/profilers/gh-5688-tool-cli-flag.test.lua b/test/tarantool-tests/profilers/gh-5688-tool-cli-flag.test.lua index f935dc5bc2..e3cb86c016 100644 --- a/test/tarantool-tests/profilers/gh-5688-tool-cli-flag.test.lua +++ b/test/tarantool-tests/profilers/gh-5688-tool-cli-flag.test.lua @@ -7,6 +7,7 @@ local test = tap.test('gh-5688-tool-cli-flag'):skipcond({ ['No profile tools CLI option integration'] = _TARANTOOL, -- See also https://github.com/LuaJIT/LuaJIT/issues/606. ['Disabled due to LuaJIT/LuaJIT#606'] = os.getenv('LUAJIT_TABLE_BUMP'), + ['Sysprof is disabled'] = os.getenv('LUAJIT_DISABLE_SYSPROF'), }) test:plan(3) diff --git a/test/tarantool-tests/profilers/gh-5813-resolving-of-c-symbols.test.lua b/test/tarantool-tests/profilers/gh-5813-resolving-of-c-symbols.test.lua index 74bcd9e8bf..4af1cf794a 100644 --- a/test/tarantool-tests/profilers/gh-5813-resolving-of-c-symbols.test.lua +++ b/test/tarantool-tests/profilers/gh-5813-resolving-of-c-symbols.test.lua @@ -5,6 +5,7 @@ local test = tap.test("gh-5813-resolving-of-c-symbols"):skipcond({ ["Memprof is implemented for Linux only"] = jit.os ~= "Linux", -- See also https://github.com/LuaJIT/LuaJIT/issues/606. ["Disabled due to LuaJIT/LuaJIT#606"] = os.getenv("LUAJIT_TABLE_BUMP"), + ["Sysprof is disabled"] = os.getenv("LUAJIT_DISABLE_SYSPROF") }) test:plan(5) diff --git a/test/tarantool-tests/profilers/gh-7264-add-proto-trace-sysprof-default.test.lua b/test/tarantool-tests/profilers/gh-7264-add-proto-trace-sysprof-default.test.lua index 176c1a1504..0a9098192b 100644 --- a/test/tarantool-tests/profilers/gh-7264-add-proto-trace-sysprof-default.test.lua +++ b/test/tarantool-tests/profilers/gh-7264-add-proto-trace-sysprof-default.test.lua @@ -6,6 +6,7 @@ local test = tap.test('gh-7264-add-proto-trace-sysprof-default'):skipcond({ ['Sysprof is implemented for Linux only'] = jit.os ~= 'Linux', -- See also https://github.com/LuaJIT/LuaJIT/issues/606. ['Disabled due to LuaJIT/LuaJIT#606'] = os.getenv('LUAJIT_TABLE_BUMP'), + ['Sysprof is disabled'] = os.getenv('LUAJIT_DISABLE_SYSPROF'), }) test:plan(2) diff --git a/test/tarantool-tests/profilers/gh-9217-profile-parsers-error-handling.test.lua b/test/tarantool-tests/profilers/gh-9217-profile-parsers-error-handling.test.lua index 65c51198b8..68c1b72644 100644 --- a/test/tarantool-tests/profilers/gh-9217-profile-parsers-error-handling.test.lua +++ b/test/tarantool-tests/profilers/gh-9217-profile-parsers-error-handling.test.lua @@ -7,6 +7,7 @@ local test = tap.test('gh-9217-profile-parsers-error-handling'):skipcond({ ['No profile tools CLI option integration'] = _TARANTOOL, -- See also https://github.com/LuaJIT/LuaJIT/issues/606. ['Disabled due to LuaJIT/LuaJIT#606'] = os.getenv('LUAJIT_TABLE_BUMP'), + ['Sysprof is disabled'] = os.getenv('LUAJIT_DISABLE_SYSPROF'), }) jit.off() diff --git a/test/tarantool-tests/profilers/misclib-sysprof-lapi.test.lua b/test/tarantool-tests/profilers/misclib-sysprof-lapi.test.lua index 26c277cdbc..711ca646e6 100644 --- a/test/tarantool-tests/profilers/misclib-sysprof-lapi.test.lua +++ b/test/tarantool-tests/profilers/misclib-sysprof-lapi.test.lua @@ -5,6 +5,7 @@ local test = tap.test("misc-sysprof-lapi"):skipcond({ ["Sysprof is implemented for Linux only"] = jit.os ~= "Linux", -- See also https://github.com/LuaJIT/LuaJIT/issues/606. ["Disabled due to LuaJIT/LuaJIT#606"] = os.getenv("LUAJIT_TABLE_BUMP"), + ["Sysprof is disabled"] = os.getenv('LUAJIT_DISABLE_SYSPROF'), }) test:plan(19)