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

Sergey Bronnikov sergeyb at tarantool.org
Thu Aug 15 16:42:38 MSK 2024


Hi, Sergey

thanks for the patch! see my comments below.


On 14.08.2024 16:55, Sergey Kaplun wrote:
> This patch moves the aforementioned test from the <misc> to the <lang/>
why <lang> and not a "debug" suite?
> directory, includes it in <index>, names the subtests, and adjusts the
> linenumbers in the assertions to match LuaJIT behaviour and the new code
Split "linenumbers" to two words, or wrap with backticks (I suspect you 
mean a field in getinfo).
> layout.

+ formatting changes


>
> Part of tarantool/tarantool#9398
> ---
>   test/LuaJIT-tests/lang/hook_line.lua | 44 ++++++++++++++++++++++++++++
>   test/LuaJIT-tests/lang/index         |  1 +
>   test/LuaJIT-tests/misc/hook_line.lua | 41 --------------------------
>   3 files changed, 45 insertions(+), 41 deletions(-)
>   create mode 100644 test/LuaJIT-tests/lang/hook_line.lua
>   delete mode 100644 test/LuaJIT-tests/misc/hook_line.lua
>
> diff --git a/test/LuaJIT-tests/lang/hook_line.lua b/test/LuaJIT-tests/lang/hook_line.lua
> new file mode 100644
> index 00000000..bb89c4b8
> --- /dev/null
> +++ b/test/LuaJIT-tests/lang/hook_line.lua
> @@ -0,0 +1,44 @@
> +local lines = {}
> +local function hook()
> +  lines[#lines + 1] = debug.getinfo(2).currentline
> +end
> +
> +local function dummy()
> +end -- <-- line 7
> +
> +do --- Base test: cycles, function calls.
> +  debug.sethook(hook, "l", 0)
> +  -- <-- line 11
> +  local x
> +  dummy()
> +  local y = 1
> +  dummy() dummy()
> +  local z = 2; local r = true
> +  while y < 4 do y = y + 1 end
> +  while z < 4 do
> +    z = z + 1
> +  end
> +  -- <-- line 21
> +  local v
> +  debug.sethook(nil, "", 0)
> +
> +  assert(#lines > 0)
> +  while lines[1] < 10 do table.remove(lines, 1) end
> +  while lines[#lines] > 20 do table.remove(lines) end
> +
> +  local s = table.concat(lines, " ")
> +  assert(s == "12 13 7 14 15 7 7 16 17 17 17 17 18 19 18 19 18" or
> +         s == "12 13 7 14 15 7 15 7 16 17 17 17 17 18 19 18 19 18")
> +end
> +
> +do --- Not visited the end of the function definition.
> +  lines = {}
> +  local function f()
> +    if true then return end
> +    local function x() end
> +  end -- <-- line 39

test depends on a number of lines in the file, please add a note about 
it at the beginning of the file


> +  debug.sethook(hook, "l", 0)
> +  f()
> +  debug.sethook(nil, "", 0)
> +  for i = 1, #lines do assert(lines[i] ~= 39) end
> +end
> diff --git a/test/LuaJIT-tests/lang/index b/test/LuaJIT-tests/lang/index
> index 8cecfa08..ae59bc56 100644
> --- a/test/LuaJIT-tests/lang/index
> +++ b/test/LuaJIT-tests/lang/index
> @@ -9,6 +9,7 @@ constant
>   dualnum.lua
>   for.lua
>   hook_active.lua
> +hook_line.lua
>   length.lua
>   lightud.lua
>   modulo.lua
> diff --git a/test/LuaJIT-tests/misc/hook_line.lua b/test/LuaJIT-tests/misc/hook_line.lua
> deleted file mode 100644
> index 36f71080..00000000
> --- a/test/LuaJIT-tests/misc/hook_line.lua
> +++ /dev/null
> @@ -1,41 +0,0 @@
> -local lines = {}
> -local function hook()
> -  lines[#lines+1] = debug.getinfo(2).currentline
> -end
> -
> -local function dummy()
> -end -- <-- line 7
> -
> -debug.sethook(hook, "l", 0)
> --- <-- line 10
> -local x
> -dummy()
> -local y = 1
> -dummy() dummy()
> -local z = 2; local r = true
> -while y < 4 do y = y + 1 end
> -while z < 4 do
> -  z = z + 1
> -end
> --- <-- line 20
> -local v
> -debug.sethook(nil, "", 0)
> -
> -assert(#lines > 0)
> -while lines[1] < 10 do table.remove(lines, 1) end
> -while lines[#lines] > 20 do table.remove(lines) end
> -
> -local s = table.concat(lines, " ")
> -assert(s == "11 12 7 13 14 7 7 15 16 16 16 16 17 18 17 18 17" or
> -       s == "11 12 7 13 14 7 14 7 15 16 16 16 16 17 18 17 18 17")
> -
> -lines = {}
> -local function f()
> -  if true then return end
> -  local function x() end
> -end -- <-- line 36
> -debug.sethook(hook, "l", 0)
> -f()
> -debug.sethook(nil, "", 0)
> -for i=1,#lines do assert(lines[i] ~= 36) end
> -
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.tarantool.org/pipermail/tarantool-patches/attachments/20240815/0fcb99b6/attachment.htm>


More information about the Tarantool-patches mailing list