[Tarantool-patches] [PATCH v2 luajit 17/45] test: enable <misc/hook_line.lua> LuaJIT test
Sergey Kaplun
skaplun at tarantool.org
Wed Aug 21 11:58:20 MSK 2024
This patch moves the aforementioned test from the <misc> to the <lang/>
directory, includes it in <index>, names the subtests, and adjusts the
line numbers in the assertions and filters to match LuaJIT behaviour and
the new code layout. Also, it slightly refactors the code to make it
closer to our code style.
Part of tarantool/tarantool#9398
---
test/LuaJIT-tests/lang/hook_line.lua | 45 ++++++++++++++++++++++++++++
test/LuaJIT-tests/lang/index | 1 +
test/LuaJIT-tests/misc/hook_line.lua | 41 -------------------------
3 files changed, 46 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..733e5513
--- /dev/null
+++ b/test/LuaJIT-tests/lang/hook_line.lua
@@ -0,0 +1,45 @@
+-- The test depends on the number of lines in the file.
+local lines = {}
+local function hook()
+ lines[#lines + 1] = debug.getinfo(2).currentline
+end
+
+local function dummy()
+end -- <-- line 8
+
+do --- Base test: cycles, function calls.
+ debug.sethook(hook, "l", 0)
+ -- <-- line 12
+ 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 22
+ local v
+ debug.sethook(nil, "", 0)
+
+ assert(#lines > 0)
+ while lines[1] < 12 do table.remove(lines, 1) end
+ while lines[#lines] > 22 do table.remove(lines) end
+
+ local s = table.concat(lines, " ")
+ assert(s == "13 14 8 15 16 8 8 17 18 18 18 18 19 20 19 20 19" or
+ s == "13 14 8 15 16 8 16 8 17 18 18 18 18 19 20 19 20 19")
+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 40
+ debug.sethook(hook, "l", 0)
+ f()
+ debug.sethook(nil, "", 0)
+ for i = 1, #lines do assert(lines[i] ~= 40) 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
-
--
2.45.2
More information about the Tarantool-patches
mailing list