Improve error tests
This commit is contained in:
@@ -200,7 +200,7 @@ public class BaseLib extends OneArgFunction implements ResourceFinder {
|
|||||||
switch ( opcode ) {
|
switch ( opcode ) {
|
||||||
case 0: // "assert", // ( v [,message] ) -> v, message | ERR
|
case 0: // "assert", // ( v [,message] ) -> v, message | ERR
|
||||||
if ( !args.arg1().toboolean() )
|
if ( !args.arg1().toboolean() )
|
||||||
error( args.narg()>1? args.checkjstring(2): "assertion failed!" );
|
error( args.narg()>1? args.optjstring(2,"assertion failed!"): "assertion failed!" );
|
||||||
return args;
|
return args;
|
||||||
case 1: // "dofile", // ( filename ) -> result1, ...
|
case 1: // "dofile", // ( filename ) -> result1, ...
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -21,6 +21,7 @@
|
|||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
package org.luaj.vm2;
|
package org.luaj.vm2;
|
||||||
|
|
||||||
|
import org.luaj.vm2.lib.PackageLib;
|
||||||
import org.luaj.vm2.compiler.LuaC;
|
import org.luaj.vm2.compiler.LuaC;
|
||||||
|
|
||||||
|
|
||||||
@@ -33,7 +34,7 @@ import org.luaj.vm2.compiler.LuaC;
|
|||||||
public class ErrorsTest extends ScriptDrivenTest {
|
public class ErrorsTest extends ScriptDrivenTest {
|
||||||
|
|
||||||
private static final String dir = "test/lua/errors";
|
private static final String dir = "test/lua/errors";
|
||||||
|
|
||||||
public ErrorsTest() {
|
public ErrorsTest() {
|
||||||
super(ScriptDrivenTest.PlatformType.JSE, dir);
|
super(ScriptDrivenTest.PlatformType.JSE, dir);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -75,7 +75,7 @@ local pretty = {
|
|||||||
|
|
||||||
local function values(list)
|
local function values(list)
|
||||||
local t = {}
|
local t = {}
|
||||||
for i=1,#list do
|
for i=1,(list.n or #list) do
|
||||||
local ai = list[i]
|
local ai = list[i]
|
||||||
local fi = pretty[type(ai)]
|
local fi = pretty[type(ai)]
|
||||||
t[i] = fi and fi(ai) or tostring(ai)
|
t[i] = fi and fi(ai) or tostring(ai)
|
||||||
@@ -85,7 +85,7 @@ end
|
|||||||
|
|
||||||
local function types(list)
|
local function types(list)
|
||||||
local t = {}
|
local t = {}
|
||||||
for i=1,#list do
|
for i=1,(list.n or #list) do
|
||||||
local ai = list[i]
|
local ai = list[i]
|
||||||
t[i] = type(ai)
|
t[i] = type(ai)
|
||||||
end
|
end
|
||||||
@@ -98,7 +98,7 @@ end
|
|||||||
|
|
||||||
local function dup(t)
|
local function dup(t)
|
||||||
local s = {}
|
local s = {}
|
||||||
for i=1,#t do
|
for i=1,(t.n or #t) do
|
||||||
s[i] = t[i]
|
s[i] = t[i]
|
||||||
end
|
end
|
||||||
return s
|
return s
|
||||||
@@ -106,7 +106,7 @@ end
|
|||||||
|
|
||||||
local function split(t)
|
local function split(t)
|
||||||
local s = {}
|
local s = {}
|
||||||
local n = #t
|
local n = (t.n or #t)
|
||||||
for i=1,n-1 do
|
for i=1,n-1 do
|
||||||
s[i] = t[i]
|
s[i] = t[i]
|
||||||
end
|
end
|
||||||
@@ -116,13 +116,13 @@ end
|
|||||||
local function expand(argsets, typesets, ...)
|
local function expand(argsets, typesets, ...)
|
||||||
local n = typesets and #typesets or 0
|
local n = typesets and #typesets or 0
|
||||||
if n <= 0 then
|
if n <= 0 then
|
||||||
table.insert(argsets,{...})
|
table.insert(argsets,arg)
|
||||||
return argsets
|
return argsets
|
||||||
end
|
end
|
||||||
|
|
||||||
local s,v = split(typesets)
|
local s,v = split(typesets)
|
||||||
for i=1,#v do
|
for i=1,(v.n or #v) do
|
||||||
expand(argsets, s, v[i], ...)
|
expand(argsets, s, v[i], unpack(arg,1,arg.n))
|
||||||
end
|
end
|
||||||
return argsets
|
return argsets
|
||||||
end
|
end
|
||||||
@@ -140,12 +140,7 @@ end
|
|||||||
local function invoke( name, arglist )
|
local function invoke( name, arglist )
|
||||||
local s,c = pcall(lookup, name)
|
local s,c = pcall(lookup, name)
|
||||||
if not s then return s,c end
|
if not s then return s,c end
|
||||||
local f = function(...)
|
return pcall(c, unpack(arglist,1,arglist.n or #arglist))
|
||||||
local u = unpack
|
|
||||||
local t = { c(...) }
|
|
||||||
return u(t)
|
|
||||||
end
|
|
||||||
return pcall(f, unpack(arglist))
|
|
||||||
end
|
end
|
||||||
|
|
||||||
-- messages, banners
|
-- messages, banners
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
package.path = "?.lua;src/test/errors/?.lua"
|
package.path = "?.lua;test/lua/errors/?.lua"
|
||||||
require 'args'
|
require 'args'
|
||||||
|
|
||||||
-- arg types for basic library functions
|
-- arg types for basic library functions
|
||||||
@@ -6,8 +6,8 @@ require 'args'
|
|||||||
-- assert
|
-- assert
|
||||||
banner('assert')
|
banner('assert')
|
||||||
checkallpass('assert',{{true,123},anylua})
|
checkallpass('assert',{{true,123},anylua})
|
||||||
checkallerrors('assert',{{nil,false},{nil}},'assertion failed')
|
checkallerrors('assert',{{nil,false,n=2},{nil,n=1}},'assertion failed')
|
||||||
checkallerrors('assert',{{nil,false},{'message'}},'message')
|
checkallerrors('assert',{{nil,false,n=2},{'message'}},'message')
|
||||||
|
|
||||||
-- collectgarbage
|
-- collectgarbage
|
||||||
banner('collectgarbage')
|
banner('collectgarbage')
|
||||||
@@ -17,7 +17,7 @@ checkallerrors('collectgarbage',{notanil},'bad argument #1')
|
|||||||
-- dofile
|
-- dofile
|
||||||
banner('dofile')
|
banner('dofile')
|
||||||
checkallpass('dofile', {})
|
checkallpass('dofile', {})
|
||||||
checkallpass('dofile', {{'src/test/errors/args.lua'}})
|
checkallpass('dofile', {{'test/lua/errors/args.lua'}})
|
||||||
checkallerrors('dofile', {{'args.lua'}}, 'cannot open args.lua')
|
checkallerrors('dofile', {{'args.lua'}}, 'cannot open args.lua')
|
||||||
checkallerrors('dofile', {nonstring}, 'bad argument #1')
|
checkallerrors('dofile', {nonstring}, 'bad argument #1')
|
||||||
|
|
||||||
@@ -51,7 +51,7 @@ checkallerrors('load', {somefunction,{afunction,atable}}, 'bad argument #2')
|
|||||||
banner('loadfile')
|
banner('loadfile')
|
||||||
checkallpass('loadfile', {})
|
checkallpass('loadfile', {})
|
||||||
checkallpass('loadfile', {{'bogus'}})
|
checkallpass('loadfile', {{'bogus'}})
|
||||||
checkallpass('loadfile', {{'src/test/errors/args.lua'}})
|
checkallpass('loadfile', {{'test/lua/errors/args.lua'}})
|
||||||
checkallpass('loadfile', {{'args.lua'}})
|
checkallpass('loadfile', {{'args.lua'}})
|
||||||
checkallerrors('loadfile', {nonstring}, 'bad argument #1')
|
checkallerrors('loadfile', {nonstring}, 'bad argument #1')
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
package.path = "?.lua;src/test/errors/?.lua"
|
package.path = "?.lua;test/lua/errors/?.lua"
|
||||||
require 'args'
|
require 'args'
|
||||||
|
|
||||||
-- arg type tests for coroutine library functions
|
-- arg type tests for coroutine library functions
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
package.path = "?.lua;src/test/errors/?.lua"
|
package.path = "?.lua;test/lua/errors/?.lua"
|
||||||
require 'args'
|
require 'args'
|
||||||
|
|
||||||
-- arg type tests for io library functions
|
-- arg type tests for io library functions
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
package.path = "?.lua;src/test/errors/?.lua"
|
package.path = "?.lua;test/lua/errors/?.lua"
|
||||||
require 'args'
|
require 'args'
|
||||||
|
|
||||||
-- arg type tests for math library functions
|
-- arg type tests for math library functions
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
package.path = "?.lua;src/test/errors/?.lua"
|
package.path = "?.lua;test/lua/errors/?.lua"
|
||||||
require 'args'
|
require 'args'
|
||||||
|
|
||||||
-- arg type tests for module library functions
|
-- arg type tests for module library functions
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
package.path = "?.lua;src/test/errors/?.lua"
|
package.path = "?.lua;test/lua/errors/?.lua"
|
||||||
require 'args'
|
require 'args'
|
||||||
|
|
||||||
-- arg types for language operator
|
-- arg types for language operator
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
package.path = "?.lua;src/test/errors/?.lua"
|
package.path = "?.lua;test/lua/errors/?.lua"
|
||||||
require 'args'
|
require 'args'
|
||||||
|
|
||||||
-- arg type tests for string library functions
|
-- arg type tests for string library functions
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
package.path = "?.lua;src/test/errors/?.lua"
|
package.path = "?.lua;test/lua/errors/?.lua"
|
||||||
require 'args'
|
require 'args'
|
||||||
|
|
||||||
-- arg type tests for table library functions
|
-- arg type tests for table library functions
|
||||||
|
|||||||
Reference in New Issue
Block a user