commit 35b4efc270db2418bc2cac6671575a45028061c3
parent 0d529138042563baf260366e19a7aa2c60a07174
Author: Roberto Ierusalimschy <roberto@inf.puc-rio.br>
Date: Tue, 30 Jul 2019 13:48:13 -0300
Fixed test in 'main.lua'
The test "to-be-closed variables in main chunk" was broken,
as it used the removed feature of functions as to-be-closed values.
The error was not detected because its expected result had no lines
to be checked (due to missing new lines).
Diffstat:
1 file changed, 10 insertions(+), 7 deletions(-)
diff --git a/testes/main.lua b/testes/main.lua
@@ -43,6 +43,8 @@ local function getoutput ()
end
local function checkprogout (s)
+ -- expected result must end with new line
+ assert(string.sub(s, -1) == "\n")
local t = getoutput()
for line in string.gmatch(s, ".-\n") do
assert(string.find(t, line, 1, true))
@@ -292,7 +294,7 @@ debug = require"debug"
print(debug.getinfo(1).currentline)
]]
RUN('lua %s > %s', prog, out)
-checkprogout('3')
+checkprogout('3\n')
-- close Lua with an open file
prepfile(string.format([[io.output(%q); io.write('alo')]], out))
@@ -320,15 +322,16 @@ NoRun("", "lua %s", prog) -- no message
-- to-be-closed variables in main chunk
prepfile[[
- local x <close> = function (err)
- assert(err == 120)
- print("Ok")
- end
- local e1 <close> = function () error(120) end
+ local x <close> = setmetatable({},
+ {__close = function (self, err)
+ assert(err == nil)
+ print("Ok")
+ end})
+ local e1 <close> = setmetatable({}, {__close = function () print(120) end})
os.exit(true, true)
]]
RUN('lua %s > %s', prog, out)
-checkprogout("Ok")
+checkprogout("120\nOk\n")
-- remove temporary files