[Tarantool-patches] [PATCH luajit 05/36] test: enable <misc/debug_gc.lua> LuaJIT test

Sergey Bronnikov sergeyb at tarantool.org
Thu Aug 15 16:09:55 MSK 2024


Hi, Sergey!

thanks for the patch!

On 14.08.2024 16:55, Sergey Kaplun wrote:
> This patch moves the aforementioned test from the <misc> to the <lang/>
It is not clear why do you move it to another suite/dir.
> directory (with slightly renaming to be consistent with other names),
> includes it in <index>, and names the subtest.
>
> Also, it changes the number of iterations to trigger the GC since the
> number of objects is different when running the test as a part of the
> LuaJIT test suite.

the patch contains minor changes related to formatting.

please describe it in commit message.


> Part of tarantool/tarantool#9398
> ---
>   .../{misc/debug_gc.lua => lang/gc_debug.lua}  | 31 ++++++++++++-------
>   test/LuaJIT-tests/lang/index                  |  1 +
>   2 files changed, 20 insertions(+), 12 deletions(-)
>   rename test/LuaJIT-tests/{misc/debug_gc.lua => lang/gc_debug.lua} (63%)
>
> diff --git a/test/LuaJIT-tests/misc/debug_gc.lua b/test/LuaJIT-tests/lang/gc_debug.lua
> similarity index 63%
> rename from test/LuaJIT-tests/misc/debug_gc.lua
> rename to test/LuaJIT-tests/lang/gc_debug.lua
> index 30fb2b99..bb30adc1 100644
> --- a/test/LuaJIT-tests/misc/debug_gc.lua
> +++ b/test/LuaJIT-tests/lang/gc_debug.lua
> @@ -1,12 +1,7 @@
> -
> --- Do not run this test unless the JIT compiler is turned off.
> -if jit and jit.status and jit.status() then return end
> -
>   local caught, caught_line, caught_mm
>   
>   local function gcmeta()
>     if caught ~= "end" then
> ---    print(debug.traceback())
>       -- This may point to the wrong instruction if in a JIT trace.
>       -- But there's no guarantee if, when or where any GC steps occur.
>       local dbg = debug.getinfo(2)
> @@ -22,7 +17,7 @@ local function testgc(mm, f)
>     local u = newproxy(true)
>     getmetatable(u).__gc = gcmeta
>     u = nil
> -  for i=1,100000 do
> +  for i = 1, 1e7 do
>       f(i)
>       -- This check may be hoisted. __gc is not supposed to have side-effects.
>       if caught then break end
> @@ -38,10 +33,22 @@ local function testgc(mm, f)
>     end
>   end
>   
> -local x
> -testgc("__gc", function(i) x = {} end)
> -testgc("__gc", function(i) x = {1} end)
> -testgc("__gc", function(i) x = function() end end)
> -testgc("__concat", function(i) x = i.."" end)
> +do --- Test __gc metamethod info
> +  -- Do not run this test unless the JIT compiler is turned off.
> +  local jit_need_restore = false
> +  if jit and jit.status and jit.status() then
> +    jit_need_restore = true
> +    jit.off()
> +  end
> +
> +  local x
> +  testgc("__gc", function(i) x = {} end)
> +  testgc("__gc", function(i) x = {1} end)
> +  testgc("__gc", function(i) x = function() end end)
> +  testgc("__concat", function(i) x = i.."" end)
>   
> -caught = "end"
> +  caught = "end"
> +  if jit_need_restore then
> +     jit.on()
> +  end
> +end
> diff --git a/test/LuaJIT-tests/lang/index b/test/LuaJIT-tests/lang/index
> index 803f32d8..4d9feafd 100644
> --- a/test/LuaJIT-tests/lang/index
> +++ b/test/LuaJIT-tests/lang/index
> @@ -17,5 +17,6 @@ upvalue
>   tail_recursion.lua
>   vararg_jit.lua
>   gc.lua
> +gc_debug.lua
>   goto.lua +goto
>   meta
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.tarantool.org/pipermail/tarantool-patches/attachments/20240815/7e9b6463/attachment.htm>


More information about the Tarantool-patches mailing list