From a1b907075416fa83b6dbb56cb3575f47c8a29ae8 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Fri, 26 Sep 2025 05:59:05 +0800 Subject: [PATCH] test(unit): disable JIT when using mocks (#35913) This fixes the flaky eval/typval_spec.lua tests. (cherry picked from commit bfa3e111c282c932b1c56ab40871f36eafca96b5) --- test/unit/eval/typval_spec.lua | 6 +++--- test/unit/testutil.lua | 3 +++ 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/test/unit/eval/typval_spec.lua b/test/unit/eval/typval_spec.lua index b4f115850b..f0b0d9723a 100644 --- a/test/unit/eval/typval_spec.lua +++ b/test/unit/eval/typval_spec.lua @@ -2318,7 +2318,7 @@ describe('typval.c', function() return lib.tv_dict_extend(d1, d2, action) end, emsg) end - pending('works (skip due to flakiness)', function() + itp('works', function() local d1 = dict() alloc_log:check({ a.dict(d1) }) eq({}, dct2tbl(d1)) @@ -3206,7 +3206,7 @@ describe('typval.c', function() end) end) describe('lnum()', function() - pending('works (skip due to flakiness)', function() + itp('works', function() for _, v in ipairs({ { lib.VAR_NUMBER, { v_number = 42 }, nil, 42 }, { lib.VAR_STRING, { v_string = to_cstr('100500') }, nil, 100500 }, @@ -3335,7 +3335,7 @@ describe('typval.c', function() end end describe('string()', function() - pending('works (skip due to flakiness)', function() + itp('works', function() local buf = lib.tv_get_string(lua2typvalt(int(1))) local buf_chk = lib.tv_get_string_chk(lua2typvalt(int(1))) neq(buf, buf_chk) diff --git a/test/unit/testutil.lua b/test/unit/testutil.lua index c630ef7cf0..00af7fd732 100644 --- a/test/unit/testutil.lua +++ b/test/unit/testutil.lua @@ -347,6 +347,9 @@ local function alloc_log_new() end end end + -- JIT-compiled FFI calls cannot call back into Lua, so disable JIT. + -- Ref: https://luajit.org/ext_ffi_semantics.html#callback + jit.off() end log.set_mocks = child_call(log.set_mocks)