[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