diff options
| -rw-r--r-- | testes/db.lua | 2 | ||||
| -rw-r--r-- | testes/main.lua | 43 |
2 files changed, 24 insertions, 21 deletions
diff --git a/testes/db.lua b/testes/db.lua index 02b96aca..67b58934 100644 --- a/testes/db.lua +++ b/testes/db.lua | |||
| @@ -928,7 +928,7 @@ do | |||
| 928 | local cl = countlines(rest) | 928 | local cl = countlines(rest) |
| 929 | -- at most 10 lines in first part, 11 in second, plus '...' | 929 | -- at most 10 lines in first part, 11 in second, plus '...' |
| 930 | assert(cl <= 10 + 11 + 1) | 930 | assert(cl <= 10 + 11 + 1) |
| 931 | local brk = string.find(rest, "%.%.%.") | 931 | local brk = string.find(rest, "%.%.%.\t%(skip") |
| 932 | if brk then -- does message have '...'? | 932 | if brk then -- does message have '...'? |
| 933 | local rest1 = string.sub(rest, 1, brk) | 933 | local rest1 = string.sub(rest, 1, brk) |
| 934 | local rest2 = string.sub(rest, brk, #rest) | 934 | local rest2 = string.sub(rest, brk, #rest) |
diff --git a/testes/main.lua b/testes/main.lua index f59badcf..3fa94e97 100644 --- a/testes/main.lua +++ b/testes/main.lua | |||
| @@ -27,17 +27,19 @@ do | |||
| 27 | end | 27 | end |
| 28 | print("progname: "..progname) | 28 | print("progname: "..progname) |
| 29 | 29 | ||
| 30 | local prepfile = function (s, p) | 30 | |
| 31 | p = p or prog | 31 | local prepfile = function (s, mod, p) |
| 32 | io.output(p) | 32 | mod = mod and "wb" or "w" -- mod true means binary files |
| 33 | io.write(s) | 33 | p = p or prog -- file to write the program |
| 34 | assert(io.close()) | 34 | local f = io.open(p, mod) |
| 35 | f:write(s) | ||
| 36 | assert(f:close()) | ||
| 35 | end | 37 | end |
| 36 | 38 | ||
| 37 | local function getoutput () | 39 | local function getoutput () |
| 38 | io.input(out) | 40 | local f = io.open(out) |
| 39 | local t = io.read("a") | 41 | local t = f:read("a") |
| 40 | io.input():close() | 42 | f:close() |
| 41 | assert(os.remove(out)) | 43 | assert(os.remove(out)) |
| 42 | return t | 44 | return t |
| 43 | end | 45 | end |
| @@ -65,10 +67,11 @@ local function RUN (p, ...) | |||
| 65 | assert(os.execute(s)) | 67 | assert(os.execute(s)) |
| 66 | end | 68 | end |
| 67 | 69 | ||
| 70 | |||
| 68 | local function NoRun (msg, p, ...) | 71 | local function NoRun (msg, p, ...) |
| 69 | p = string.gsub(p, "lua", '"'..progname..'"', 1) | 72 | p = string.gsub(p, "lua", '"'..progname..'"', 1) |
| 70 | local s = string.format(p, ...) | 73 | local s = string.format(p, ...) |
| 71 | s = string.format("%s 2> %s", s, out) -- will send error to 'out' | 74 | s = string.format("%s >%s 2>&1", s, out) -- send output and error to 'out' |
| 72 | assert(not os.execute(s)) | 75 | assert(not os.execute(s)) |
| 73 | assert(string.find(getoutput(), msg, 1, true)) -- check error message | 76 | assert(string.find(getoutput(), msg, 1, true)) -- check error message |
| 74 | end | 77 | end |
| @@ -108,17 +111,17 @@ RUN('lua %s > %s', prog, out) | |||
| 108 | checkout("3\n") | 111 | checkout("3\n") |
| 109 | 112 | ||
| 110 | -- bad BOMs | 113 | -- bad BOMs |
| 111 | prepfile("\xEF") | 114 | prepfile("\xEF", true) |
| 112 | NoRun("unexpected symbol", 'lua %s > %s', prog, out) | 115 | NoRun("unexpected symbol", 'lua %s', prog) |
| 113 | 116 | ||
| 114 | prepfile("\xEF\xBB") | 117 | prepfile("\xEF\xBB", true) |
| 115 | NoRun("unexpected symbol", 'lua %s > %s', prog, out) | 118 | NoRun("unexpected symbol", 'lua %s', prog) |
| 116 | 119 | ||
| 117 | prepfile("\xEFprint(3)") | 120 | prepfile("\xEFprint(3)", true) |
| 118 | NoRun("unexpected symbol", 'lua %s > %s', prog, out) | 121 | NoRun("unexpected symbol", 'lua %s', prog) |
| 119 | 122 | ||
| 120 | prepfile("\xEF\xBBprint(3)") | 123 | prepfile("\xEF\xBBprint(3)", true) |
| 121 | NoRun("unexpected symbol", 'lua %s > %s', prog, out) | 124 | NoRun("unexpected symbol", 'lua %s', prog) |
| 122 | 125 | ||
| 123 | 126 | ||
| 124 | -- test option '-' | 127 | -- test option '-' |
| @@ -213,7 +216,7 @@ convert("a;b;;c") | |||
| 213 | 216 | ||
| 214 | -- test -l over multiple libraries | 217 | -- test -l over multiple libraries |
| 215 | prepfile("print(1); a=2; return {x=15}") | 218 | prepfile("print(1); a=2; return {x=15}") |
| 216 | prepfile(("print(a); print(_G['%s'].x)"):format(prog), otherprog) | 219 | prepfile(("print(a); print(_G['%s'].x)"):format(prog), false, otherprog) |
| 217 | RUN('env LUA_PATH="?;;" lua -l %s -l%s -lstring -l io %s > %s', prog, otherprog, otherprog, out) | 220 | RUN('env LUA_PATH="?;;" lua -l %s -l%s -lstring -l io %s > %s', prog, otherprog, otherprog, out) |
| 218 | checkout("1\n2\n15\n2\n15\n") | 221 | checkout("1\n2\n15\n2\n15\n") |
| 219 | 222 | ||
| @@ -237,7 +240,7 @@ RUN('lua "-e " -- %s a b c', prog) -- "-e " runs an empty command | |||
| 237 | 240 | ||
| 238 | -- test 'arg' availability in libraries | 241 | -- test 'arg' availability in libraries |
| 239 | prepfile"assert(arg)" | 242 | prepfile"assert(arg)" |
| 240 | prepfile("assert(arg)", otherprog) | 243 | prepfile("assert(arg)", false, otherprog) |
| 241 | RUN('env LUA_PATH="?;;" lua -l%s - < %s', prog, otherprog) | 244 | RUN('env LUA_PATH="?;;" lua -l%s - < %s', prog, otherprog) |
| 242 | 245 | ||
| 243 | -- test messing up the 'arg' table | 246 | -- test messing up the 'arg' table |
| @@ -413,7 +416,7 @@ prepfile[[#comment in 1st line without \n at the end]] | |||
| 413 | RUN('lua %s', prog) | 416 | RUN('lua %s', prog) |
| 414 | 417 | ||
| 415 | -- first-line comment with binary file | 418 | -- first-line comment with binary file |
| 416 | prepfile("#comment\n" .. string.dump(load("print(3)"))) | 419 | prepfile("#comment\n" .. string.dump(load("print(3)")), true) |
| 417 | RUN('lua %s > %s', prog, out) | 420 | RUN('lua %s > %s', prog, out) |
| 418 | checkout('3\n') | 421 | checkout('3\n') |
| 419 | 422 | ||
