[Tarantool-patches] [PATCH luajit 5/7] ci: add workflow with disabled profilers
Sergey Bronnikov
estetus at gmail.com
Thu Feb 13 14:10:47 MSK 2025
Needed for the following commit.
---
.github/workflows/exotic-builds-testing.yml | 6 +++++-
test/tarantool-tests/CMakeLists.txt | 4 ++++
.../gh-5994-memprof-human-readable.test.lua | 1 +
.../profilers/misclib-memprof-lapi.test.lua | 15 ++++++++-------
4 files changed, 18 insertions(+), 8 deletions(-)
diff --git a/.github/workflows/exotic-builds-testing.yml b/.github/workflows/exotic-builds-testing.yml
index 374c879b..70b55423 100644
--- a/.github/workflows/exotic-builds-testing.yml
+++ b/.github/workflows/exotic-builds-testing.yml
@@ -34,7 +34,7 @@ jobs:
BUILDTYPE: [Debug, Release]
ARCH: [ARM64, x86_64]
GC64: [ON, OFF]
- FLAVOR: [checkhook, dualnum, dynamic, gdbjit, nojit, nounwind, tablebump]
+ FLAVOR: [checkhook, dualnum, dynamic, gdbjit, nojit, nounwind, tablebump, noprof]
include:
- BUILDTYPE: Debug
CMAKEFLAGS: -DCMAKE_BUILD_TYPE=Debug -DLUA_USE_ASSERT=ON -DLUA_USE_APICHECK=ON
@@ -54,6 +54,8 @@ jobs:
FLAVORFLAGS: -DLUAJIT_NO_UNWIND=ON
- FLAVOR: tablebump
FLAVORFLAGS: -DLUAJIT_ENABLE_TABLE_BUMP=ON
+ - FLAVOR: noprof
+ FLAVORFLAGS: -DLUAJIT_DISABLE_MEMPROF=ON -DLUAJIT_DISABLE_SYSPROF=ON
exclude:
- ARCH: ARM64
GC64: OFF
@@ -72,6 +74,8 @@ jobs:
# (`DASM_S_RANGE_I`).
- FLAVOR: tablebump
ARCH: ARM64
+ - FLAVOR: noprof
+ ARCH: ARM64
runs-on: [self-hosted, regular, Linux, '${{ matrix.ARCH }}']
name: >
LuaJIT ${{ matrix.FLAVOR }}
diff --git a/test/tarantool-tests/CMakeLists.txt b/test/tarantool-tests/CMakeLists.txt
index 9bacac88..a6d09dc7 100644
--- a/test/tarantool-tests/CMakeLists.txt
+++ b/test/tarantool-tests/CMakeLists.txt
@@ -97,6 +97,10 @@ if(LUAJIT_DISABLE_SYSPROF)
list(APPEND LUA_TEST_ENV_MORE LUAJIT_DISABLE_SYSPROF=1)
endif()
+if(LUAJIT_DISABLE_MEMPROF)
+ list(APPEND LUA_TEST_ENV_MORE LUAJIT_DISABLE_MEMPROF=1)
+endif()
+
# Needed to skip some long tests or tests using signals.
# See also https://github.com/tarantool/tarantool/issues/10803.
if(LUAJIT_USE_VALGRIND)
diff --git a/test/tarantool-tests/profilers/gh-5994-memprof-human-readable.test.lua b/test/tarantool-tests/profilers/gh-5994-memprof-human-readable.test.lua
index f3041779..0ab9c57c 100644
--- a/test/tarantool-tests/profilers/gh-5994-memprof-human-readable.test.lua
+++ b/test/tarantool-tests/profilers/gh-5994-memprof-human-readable.test.lua
@@ -7,6 +7,7 @@ local test = tap.test('gh-5994-memprof-human-readable'):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'),
+ ["Memprof is disabled"] = os.getenv('LUAJIT_DISABLE_MEMPROF'),
})
local utils = require('utils')
diff --git a/test/tarantool-tests/profilers/misclib-memprof-lapi.test.lua b/test/tarantool-tests/profilers/misclib-memprof-lapi.test.lua
index ce41e4d5..33925c7f 100644
--- a/test/tarantool-tests/profilers/misclib-memprof-lapi.test.lua
+++ b/test/tarantool-tests/profilers/misclib-memprof-lapi.test.lua
@@ -8,6 +8,7 @@ local test = tap.test("misc-memprof-lapi"):skipcond({
jit.arch ~= "x64",
-- See also https://github.com/LuaJIT/LuaJIT/issues/606.
["Disabled due to LuaJIT/LuaJIT#606"] = os.getenv("LUAJIT_TABLE_BUMP"),
+ ["Memprof is disabled"] = os.getenv('LUAJIT_DISABLE_MEMPROF'),
})
test:plan(5)
@@ -164,9 +165,9 @@ test:test("output", function(subtest)
-- one is the number of allocations. 1 event - allocation of
-- table by itself + 1 allocation of array part as far it is
-- bigger than LJ_MAX_COLOSIZE (16).
- subtest:ok(check_alloc_report(alloc, { line = 39, linedefined = 37 }, 2))
+ subtest:ok(check_alloc_report(alloc, { line = 40, linedefined = 38 }, 2))
-- 20 strings allocations.
- subtest:ok(check_alloc_report(alloc, { line = 44, linedefined = 37 }, 20))
+ subtest:ok(check_alloc_report(alloc, { line = 45, linedefined = 38 }, 20))
-- Collect all previous allocated objects.
subtest:ok(free.INTERNAL == 22)
@@ -174,8 +175,8 @@ test:test("output", function(subtest)
-- Tests for leak-only option.
-- See also https://github.com/tarantool/tarantool/issues/5812.
local heap_delta = process.form_heap_delta(events)
- local tab_alloc_stats = heap_delta[form_source_line(39)]
- local str_alloc_stats = heap_delta[form_source_line(44)]
+ local tab_alloc_stats = heap_delta[form_source_line(40)]
+ local str_alloc_stats = heap_delta[form_source_line(45)]
subtest:ok(tab_alloc_stats.nalloc == tab_alloc_stats.nfree)
subtest:ok(tab_alloc_stats.dbytes == 0)
subtest:ok(str_alloc_stats.nalloc == str_alloc_stats.nfree)
@@ -260,10 +261,10 @@ test:test("jit-output", function(subtest)
-- 10 allocations in interpreter mode, 1 allocation for a trace
-- recording and assembling and next 9 allocations will happen
-- while running the trace.
- subtest:ok(check_alloc_report(alloc, { line = 44, linedefined = 37 }, 11))
- subtest:ok(check_alloc_report(alloc, { traceno = 1, line = 42 }, 9))
+ subtest:ok(check_alloc_report(alloc, { line = 45, linedefined = 38 }, 11))
+ subtest:ok(check_alloc_report(alloc, { traceno = 1, line = 43 }, 9))
-- See same checks with jit.off().
- subtest:ok(check_alloc_report(alloc, { line = 39, linedefined = 37 }, 2))
+ subtest:ok(check_alloc_report(alloc, { line = 40, linedefined = 38 }, 2))
-- Restore default JIT settings.
jit.opt.start(unpack(jit_opt_default))
--
2.34.1
More information about the Tarantool-patches
mailing list