diff options
author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2019-06-04 11:22:21 -0300 |
---|---|---|
committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2019-06-04 11:22:21 -0300 |
commit | 14edd364c3abcb758e74c68a2bdd4ddaeefdae2a (patch) | |
tree | 9350100ad9b962cae6e6406b4d7462e1443bc137 /testes | |
parent | 514d94274853e6f0dfd6bb2ffa2e1fc64db926dd (diff) | |
download | lua-14edd364c3abcb758e74c68a2bdd4ddaeefdae2a.tar.gz lua-14edd364c3abcb758e74c68a2bdd4ddaeefdae2a.tar.bz2 lua-14edd364c3abcb758e74c68a2bdd4ddaeefdae2a.zip |
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.lua | 22 | ||||
-rw-r--r-- | testes/main.lua | 18 |
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 @@ | |||
5 | 5 | ||
6 | local version = "Lua 5.4" | 6 | local version = "Lua 5.4" |
7 | if _VERSION ~= version then | 7 | if _VERSION ~= version then |
8 | warn(string.format( | 8 | warn("This test suite is for ", version, |
9 | "This test suite is for %s, not for %s\nExiting tests", version, _VERSION)) | 9 | ", not for ", _VERSION, "\nExiting tests") |
10 | return | 10 | return |
11 | end | 11 | end |
12 | 12 | ||
@@ -190,16 +190,13 @@ assert(dofile('verybig.lua', true) == 10); collectgarbage() | |||
190 | dofile('files.lua') | 190 | dofile('files.lua') |
191 | 191 | ||
192 | if #msgs > 0 then | 192 | if #msgs > 0 then |
193 | warn("#tests not performed:", true) | 193 | local m = table.concat(msgs, "\n ") |
194 | for i=1,#msgs do | 194 | warn("#tests not performed:\n ", m, "\n") |
195 | warn("\n ", true); warn(msgs[i], true) | ||
196 | end | ||
197 | warn("\n") | ||
198 | end | 195 | end |
199 | 196 | ||
200 | print("(there should be two warnings now)") | 197 | print("(there should be two warnings now)") |
201 | warn("#This is ", true); warn("an expected", true); warn(" warning") | 198 | warn("#This is ", "an expected", " warning") |
202 | warn("#This is", true); warn(" another one") | 199 | warn("#This is", " another one") |
203 | 200 | ||
204 | -- no test module should define 'debug' | 201 | -- no test module should define 'debug' |
205 | assert(debug == nil) | 202 | assert(debug == nil) |
@@ -216,9 +213,10 @@ _G.showmem = showmem | |||
216 | 213 | ||
217 | end --) | 214 | end --) |
218 | 215 | ||
219 | local _G, showmem, print, format, clock, time, difftime, assert, open = | 216 | local _G, showmem, print, format, clock, time, difftime, |
217 | assert, open, warn = | ||
220 | _G, showmem, print, string.format, os.clock, os.time, os.difftime, | 218 | _G, showmem, print, string.format, os.clock, os.time, os.difftime, |
221 | assert, io.open | 219 | assert, io.open, warn |
222 | 220 | ||
223 | -- file with time of last performed test | 221 | -- file with time of last performed test |
224 | local fname = T and "time-debug.txt" or "time.txt" | 222 | local fname = T and "time-debug.txt" or "time.txt" |
@@ -262,7 +260,7 @@ if not usertests then | |||
262 | local diff = (clocktime - lasttime) / lasttime | 260 | local diff = (clocktime - lasttime) / lasttime |
263 | local tolerance = 0.05 -- 5% | 261 | local tolerance = 0.05 -- 5% |
264 | if (diff >= tolerance or diff <= -tolerance) then | 262 | if (diff >= tolerance or diff <= -tolerance) then |
265 | print(format("WARNING: time difference from previous test: %+.1f%%", | 263 | warn(format("#time difference from previous test: %+.1f%%", |
266 | diff * 100)) | 264 | diff * 100)) |
267 | end | 265 | end |
268 | assert(open(fname, "w")):write(clocktime):close() | 266 | 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") | |||
347 | NoRun("'-l' needs argument", "lua -l") | 347 | NoRun("'-l' needs argument", "lua -l") |
348 | 348 | ||
349 | 349 | ||
350 | if T then -- auxiliary library? | 350 | if T then -- test library? |
351 | print("testing 'not enough memory' to create a state") | 351 | print("testing 'not enough memory' to create a state") |
352 | NoRun("not enough memory", "env MEMLIMIT=100 lua") | 352 | NoRun("not enough memory", "env MEMLIMIT=100 lua") |
353 | |||
354 | -- testing 'warn' | ||
355 | warn("@123", "456", "789") | ||
356 | assert(_WARN == "@123456789") | ||
353 | end | 357 | end |
358 | |||
359 | do | ||
360 | -- 'warn' must get at least one argument | ||
361 | local st, msg = pcall(warn) | ||
362 | assert(string.find(msg, "string expected")) | ||
363 | |||
364 | -- 'warn' does not leave unfinished warning in case of errors | ||
365 | -- (message would appear in next warning) | ||
366 | st, msg = pcall(warn, "SHOULD NOT APPEAR", {}) | ||
367 | assert(string.find(msg, "string expected")) | ||
368 | end | ||
369 | |||
354 | print('+') | 370 | print('+') |
355 | 371 | ||
356 | print('testing Ctrl C') | 372 | print('testing Ctrl C') |