summaryrefslogtreecommitdiff
path: root/testes
diff options
context:
space:
mode:
authorRoberto Ierusalimschy <roberto@inf.puc-rio.br>2019-06-04 11:22:21 -0300
committerRoberto Ierusalimschy <roberto@inf.puc-rio.br>2019-06-04 11:22:21 -0300
commit14edd364c3abcb758e74c68a2bdd4ddaeefdae2a (patch)
tree9350100ad9b962cae6e6406b4d7462e1443bc137 /testes
parent514d94274853e6f0dfd6bb2ffa2e1fc64db926dd (diff)
downloadlua-github-14edd364c3abcb758e74c68a2bdd4ddaeefdae2a.tar.gz
Function 'warn' is vararg
Instead of a 'tocont' flag, the function 'warn' in Lua now receives all message pieces as multiple arguments in a single call. Besides being simpler to use, this implementation ensures that Lua code cannot create unfinished warnings.
Diffstat (limited to 'testes')
-rw-r--r--testes/all.lua22
-rw-r--r--testes/main.lua18
2 files changed, 27 insertions, 13 deletions
diff --git a/testes/all.lua b/testes/all.lua
index 8d727b6b..2e6fe038 100644
--- a/testes/all.lua
+++ b/testes/all.lua
@@ -5,8 +5,8 @@
local version = "Lua 5.4"
if _VERSION ~= version then
- warn(string.format(
- "This test suite is for %s, not for %s\nExiting tests", version, _VERSION))
+ warn("This test suite is for ", version,
+ ", not for ", _VERSION, "\nExiting tests")
return
end
@@ -190,16 +190,13 @@ assert(dofile('verybig.lua', true) == 10); collectgarbage()
dofile('files.lua')
if #msgs > 0 then
- warn("#tests not performed:", true)
- for i=1,#msgs do
- warn("\n ", true); warn(msgs[i], true)
- end
- warn("\n")
+ local m = table.concat(msgs, "\n ")
+ warn("#tests not performed:\n ", m, "\n")
end
print("(there should be two warnings now)")
-warn("#This is ", true); warn("an expected", true); warn(" warning")
-warn("#This is", true); warn(" another one")
+warn("#This is ", "an expected", " warning")
+warn("#This is", " another one")
-- no test module should define 'debug'
assert(debug == nil)
@@ -216,9 +213,10 @@ _G.showmem = showmem
end --)
-local _G, showmem, print, format, clock, time, difftime, assert, open =
+local _G, showmem, print, format, clock, time, difftime,
+ assert, open, warn =
_G, showmem, print, string.format, os.clock, os.time, os.difftime,
- assert, io.open
+ assert, io.open, warn
-- file with time of last performed test
local fname = T and "time-debug.txt" or "time.txt"
@@ -262,7 +260,7 @@ if not usertests then
local diff = (clocktime - lasttime) / lasttime
local tolerance = 0.05 -- 5%
if (diff >= tolerance or diff <= -tolerance) then
- print(format("WARNING: time difference from previous test: %+.1f%%",
+ warn(format("#time difference from previous test: %+.1f%%",
diff * 100))
end
assert(open(fname, "w")):write(clocktime):close()
diff --git a/testes/main.lua b/testes/main.lua
index 47d84d4c..4c09645a 100644
--- a/testes/main.lua
+++ b/testes/main.lua
@@ -347,10 +347,26 @@ NoRun("syntax error", "lua -e a")
NoRun("'-l' needs argument", "lua -l")
-if T then -- auxiliary library?
+if T then -- test library?
print("testing 'not enough memory' to create a state")
NoRun("not enough memory", "env MEMLIMIT=100 lua")
+
+ -- testing 'warn'
+ warn("@123", "456", "789")
+ assert(_WARN == "@123456789")
end
+
+do
+ -- 'warn' must get at least one argument
+ local st, msg = pcall(warn)
+ assert(string.find(msg, "string expected"))
+
+ -- 'warn' does not leave unfinished warning in case of errors
+ -- (message would appear in next warning)
+ st, msg = pcall(warn, "SHOULD NOT APPEAR", {})
+ assert(string.find(msg, "string expected"))
+end
+
print('+')
print('testing Ctrl C')