<!DOCTYPE html>
<html data-lt-installed="true">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body style="padding-bottom: 1px;">
<p>Sergey,<br>
</p>
<div class="moz-cite-prefix">On 21.08.2024 11:58, Sergey Kaplun
wrote:<br>
</div>
<blockquote type="cite"
cite="mid:f169f49d3d2db53fce727cff99cb33d99a05906e.1724228998.git.skaplun@tarantool.org">
<pre class="moz-quote-pre" wrap="">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
---</pre>
</blockquote>
thanks for the patch! LGTM with a minor comment.<br>
<blockquote type="cite"
cite="mid:f169f49d3d2db53fce727cff99cb33d99a05906e.1724228998.git.skaplun@tarantool.org">
<pre class="moz-quote-pre" wrap="">
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()</pre>
</blockquote>
<p>I would place a second call to a separate line. Feel free to
ignore.</p>
<p><br>
</p>
<p><br>
</p>
<blockquote type="cite"
cite="mid:f169f49d3d2db53fce727cff99cb33d99a05906e.1724228998.git.skaplun@tarantool.org">
<pre class="moz-quote-pre" wrap="">
+ 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
-
</pre>
</blockquote>
</body>
<lt-container></lt-container>
</html>