[Tarantool-patches] [PATCH v2 luajit 14/30] test: adapt activeline check in the PUC Lua test
Sergey Kaplun
skaplun at tarantool.org
Fri Mar 26 10:42:57 MSK 2021
LuaJIT does not report line with single "end" statement
(the last line of the function) as an active line in
debug.getinfo(), unlike Lua does. There is no bytecode
related to this line, so it is "unreachable" and
may be considered not active.
This patch excludes the last line of a function from the check,
considering LuaJIT's behaviour.
Closes tarantool/tarantool#5708
Part of tarantool/tarantool#5845
Part of tarantool/tarantool#4473
---
test/PUC-Lua-5.1-tests/db.lua | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/test/PUC-Lua-5.1-tests/db.lua b/test/PUC-Lua-5.1-tests/db.lua
index b363abc..c704877 100644
--- a/test/PUC-Lua-5.1-tests/db.lua
+++ b/test/PUC-Lua-5.1-tests/db.lua
@@ -491,7 +491,15 @@ local _, l = coroutine.resume(co, 10)
local x = debug.getinfo(co, 1, "lfLS")
assert(x.currentline == l.currentline and x.activelines[x.currentline])
assert(type(x.func) == "function")
-for i=x.linedefined + 1, x.lastlinedefined do
+-- LuaJIT does not report line with single "end" statement
+-- (the last line of the function) as an active line in
+-- debug.getinfo(), unlike Lua does. There is no bytecode
+-- related to this line, so it is "unreachable" and
+-- may be considered not active.
+-- See also https://github.com/tarantool/tarantool/issues/5708.
+-- LuaJIT: Test is adapted for LuaJIT's behaviour by avoiding
+-- the last line check.
+for i=x.linedefined + 1, x.lastlinedefined - 1 do
assert(x.activelines[i])
x.activelines[i] = nil
end
--
2.31.0
More information about the Tarantool-patches
mailing list