2010-05-09 23:51:46 +00:00
|
|
|
package.path = "?.lua;test/lua/errors/?.lua"
|
2008-07-15 05:32:56 +00:00
|
|
|
require 'args'
|
|
|
|
|
|
|
|
|
|
-- arg types for basic library functions
|
2008-07-15 18:35:38 +00:00
|
|
|
|
|
|
|
|
-- assert
|
|
|
|
|
banner('assert')
|
|
|
|
|
checkallpass('assert',{{true,123},anylua})
|
2010-05-09 23:51:46 +00:00
|
|
|
checkallerrors('assert',{{nil,false,n=2},{nil,n=1}},'assertion failed')
|
|
|
|
|
checkallerrors('assert',{{nil,false,n=2},{'message'}},'message')
|
2008-07-15 18:35:38 +00:00
|
|
|
|
|
|
|
|
-- collectgarbage
|
|
|
|
|
banner('collectgarbage')
|
2008-07-22 01:20:25 +00:00
|
|
|
checkallpass('collectgarbage',{{'collect','count'}},true)
|
2010-05-12 05:00:09 +00:00
|
|
|
checkallerrors('collectgarbage',{{astring, anumber}},'bad argument')
|
2010-05-10 00:07:54 +00:00
|
|
|
checkallerrors('collectgarbage',{{aboolean, atable, afunction, athread}},'string expected')
|
2008-07-15 18:35:38 +00:00
|
|
|
|
2008-07-17 01:23:33 +00:00
|
|
|
-- dofile
|
2008-07-15 18:35:38 +00:00
|
|
|
banner('dofile')
|
2012-09-06 14:00:32 +00:00
|
|
|
--checkallpass('dofile', {})
|
|
|
|
|
--checkallpass('dofile', {{'test/lua/errors/args.lua'}})
|
|
|
|
|
--checkallerrors('dofile', {{'foo.bar'}}, 'cannot open foo.bar')
|
|
|
|
|
--checkallerrors('dofile', {nonstring}, 'bad argument')
|
2008-07-15 18:35:38 +00:00
|
|
|
|
|
|
|
|
-- error
|
|
|
|
|
banner('error')
|
2012-09-06 14:00:32 +00:00
|
|
|
--checkallerrors('error', {{'message'},{nil,0,1,2,n=4}}, 'message')
|
|
|
|
|
--checkallerrors('error', {{123},{nil,1,2,n=3}}, 123)
|
2008-07-15 18:35:38 +00:00
|
|
|
|
|
|
|
|
-- getmetatable
|
|
|
|
|
banner('getmetatable')
|
|
|
|
|
checkallpass('getmetatable', {notanil})
|
2010-05-12 05:00:09 +00:00
|
|
|
checkallerrors('getmetatable',{},'bad argument')
|
2008-07-15 18:35:38 +00:00
|
|
|
|
|
|
|
|
-- ipairs
|
|
|
|
|
banner('ipairs')
|
|
|
|
|
checkallpass('ipairs', {sometable})
|
2010-05-12 05:00:09 +00:00
|
|
|
checkallerrors('ipairs', {notatable}, 'bad argument')
|
2008-07-15 18:35:38 +00:00
|
|
|
|
|
|
|
|
-- load
|
|
|
|
|
banner('load')
|
2010-05-15 21:56:29 +00:00
|
|
|
checkallpass('load', {somefunction,{nil,astring,n=2}})
|
2012-09-07 14:05:41 +00:00
|
|
|
checkallpass('load', {{'return'}})
|
|
|
|
|
checkallpass('load', {{'return'},{'mychunk'}})
|
|
|
|
|
checkallpass('load', {{'return a ... b'},{'mychunk'}},true)
|
2021-07-08 22:45:26 +02:00
|
|
|
checkallerrors('load', {somefunction,nonstring}, 'bad argument')
|
|
|
|
|
checkallerrors('load', {{nil,aboolean,atable,athread},notastring}, 'bad argument')
|
|
|
|
|
checkallerrors('load', {{'return'},nonstring}, 'bad argument')
|
|
|
|
|
|
|
|
|
|
-- loadfile
|
|
|
|
|
banner('loadfile')
|
|
|
|
|
checkallpass('loadfile', {{'args.lua'}})
|
|
|
|
|
checkallerrors('loadfile', {nonstring}, 'bad argument')
|
2008-07-15 18:35:38 +00:00
|
|
|
|
|
|
|
|
-- next
|
|
|
|
|
banner('next')
|
2008-07-15 21:51:42 +00:00
|
|
|
checkallpass('next', {sometable,somekey})
|
2010-05-15 21:56:29 +00:00
|
|
|
checkallerrors('next', {notatable,{nil,1,n=2}}, 'bad argument')
|
2008-07-17 01:23:33 +00:00
|
|
|
checkallerrors('next', {sometable,nonkey}, 'invalid key')
|
2008-07-15 18:35:38 +00:00
|
|
|
|
|
|
|
|
-- pairs
|
|
|
|
|
banner('pairs')
|
|
|
|
|
checkallpass('pairs', {sometable})
|
2010-05-12 05:00:09 +00:00
|
|
|
checkallerrors('pairs', {notatable}, 'bad argument')
|
2008-07-15 18:35:38 +00:00
|
|
|
|
2008-07-15 21:51:42 +00:00
|
|
|
-- pcall
|
|
|
|
|
banner('pcall')
|
2008-07-22 14:56:13 +00:00
|
|
|
checkallpass('pcall', {notanil,anylua}, true)
|
2010-05-12 05:00:09 +00:00
|
|
|
checkallerrors('pcall',{},'bad argument')
|
2008-07-15 21:51:42 +00:00
|
|
|
|
|
|
|
|
-- print
|
|
|
|
|
banner('print')
|
|
|
|
|
checkallpass('print', {})
|
2010-05-15 21:56:29 +00:00
|
|
|
checkallpass('print', {{nil,astring,anumber,aboolean,n=4}})
|
2008-07-15 21:51:42 +00:00
|
|
|
|
|
|
|
|
-- rawequal
|
|
|
|
|
banner('rawequal')
|
|
|
|
|
checkallpass('rawequal', {notanil,notanil})
|
2010-05-12 05:00:09 +00:00
|
|
|
checkallerrors('rawequal', {}, 'bad argument')
|
|
|
|
|
checkallerrors('rawequal', {notanil}, 'bad argument')
|
2008-07-15 21:51:42 +00:00
|
|
|
|
|
|
|
|
-- rawget
|
|
|
|
|
banner('rawget')
|
|
|
|
|
checkallpass('rawget', {sometable,somekey})
|
2008-07-17 01:23:33 +00:00
|
|
|
checkallpass('rawget', {sometable,nonkey})
|
2010-05-12 05:00:09 +00:00
|
|
|
checkallerrors('rawget', {sometable,somenil},'bad argument')
|
|
|
|
|
checkallerrors('rawget', {notatable,notakey}, 'bad argument')
|
|
|
|
|
checkallerrors('rawget', {}, 'bad argument')
|
2008-07-15 21:51:42 +00:00
|
|
|
|
|
|
|
|
-- rawset
|
|
|
|
|
banner('rawset')
|
|
|
|
|
checkallpass('rawset', {sometable,somekey,notanil})
|
2008-07-17 01:23:33 +00:00
|
|
|
checkallpass('rawset', {sometable,nonkey,notanil})
|
|
|
|
|
checkallerrors('rawset', {sometable,somenil},'table index is nil')
|
2010-05-12 05:00:09 +00:00
|
|
|
checkallerrors('rawset', {}, 'bad argument')
|
|
|
|
|
checkallerrors('rawset', {notatable,somestring,somestring}, 'bad argument')
|
|
|
|
|
checkallerrors('rawset', {sometable,somekey}, 'bad argument')
|
2008-07-15 21:51:42 +00:00
|
|
|
|
|
|
|
|
-- select
|
|
|
|
|
banner('select')
|
|
|
|
|
checkallpass('select', {{anumber,'#'},anylua})
|
2010-05-12 05:00:09 +00:00
|
|
|
checkallerrors('select', {notanumber}, 'bad argument')
|
2008-07-15 21:51:42 +00:00
|
|
|
|
|
|
|
|
-- setmetatable
|
|
|
|
|
banner('setmetatable')
|
2021-07-08 22:45:26 +02:00
|
|
|
checkallpass('setmetatable', {sometable, {nil,atable,n=2}})
|
2010-05-12 05:00:09 +00:00
|
|
|
checkallerrors('setmetatable',{notatable,sometable},'bad argument')
|
2010-05-16 05:09:47 +00:00
|
|
|
checkallerrors('setmetatable',{sometable,nontable},'bad argument')
|
2008-07-15 21:51:42 +00:00
|
|
|
|
|
|
|
|
-- tonumber
|
|
|
|
|
banner('tonumber')
|
2010-05-15 21:56:29 +00:00
|
|
|
checkallpass('tonumber',{somenumber,{nil,2,10,36,n=4}})
|
2021-07-08 22:45:26 +02:00
|
|
|
checkallpass('tonumber',{notanil,{nil,n=1}})
|
|
|
|
|
checkallpass('tonumber',{somestring,{10}})
|
|
|
|
|
checkallerrors('tonumber',{notastring,{10}},'bad argument')
|
2010-05-15 21:56:29 +00:00
|
|
|
checkallerrors('tonumber',{{nil,afunction,atable,n=3},{2,9,11,36}},'bad argument')
|
2010-05-12 05:00:09 +00:00
|
|
|
checkallerrors('tonumber',{somenumber,{1,37,atable,afunction,aboolean}},'bad argument')
|
2008-07-15 21:51:42 +00:00
|
|
|
|
|
|
|
|
-- tostring
|
|
|
|
|
banner('tostring')
|
2008-07-22 01:20:25 +00:00
|
|
|
checkallpass('tostring',{{astring,anumber,aboolean}})
|
|
|
|
|
checkallpass('tostring',{{atable,afunction,athread}},true)
|
|
|
|
|
checkallpass('tostring',{{astring,anumber,aboolean},{'anchor'}})
|
|
|
|
|
checkallpass('tostring',{{atable,afunction,athread},{'anchor'}},true)
|
2010-05-12 05:00:09 +00:00
|
|
|
checkallerrors('tostring',{},'bad argument')
|
2008-07-15 21:51:42 +00:00
|
|
|
|
|
|
|
|
-- type
|
|
|
|
|
banner('type')
|
|
|
|
|
checkallpass('type',{notanil})
|
|
|
|
|
checkallpass('type',{anylua,{'anchor'}})
|
|
|
|
|
checkallerrors('type',{},'bad argument')
|
|
|
|
|
|
|
|
|
|
-- xpcall
|
|
|
|
|
banner('xpcall')
|
2008-07-22 01:20:25 +00:00
|
|
|
checkallpass('xpcall', {notanil,nonfunction})
|
|
|
|
|
checkallpass('xpcall', {notanil,{function(...)return 'aaa', 'bbb', #{...} end}})
|
2010-05-12 05:00:09 +00:00
|
|
|
checkallerrors('xpcall',{anylua},'bad argument')
|
2008-07-15 21:51:42 +00:00
|
|
|
|
|
|
|
|
|