package.path = "?.lua;test/lua/errors/?.lua" require 'args' -- arg type tests for module library functions -- require banner('require') checkallpass('require',{{'math','coroutine','package','string','table'}},true) checkallerrors('require',{{anumber}},'not found') checkallerrors('require',{{anil,aboolean,afunction,atable}},'bad argument') -- package.loadlib banner('package.loadlib') checkallpass('package.loadlib',{{'foo'},{'bar'}},true) checkallerrors('package.loadlib',{notastring},'bad argument') -- package.seeall banner('package.seeall') checkallpass('package.seeall',{sometable}) checkallerrors('package.seeall',{notatable},'bad argument') -- module tests - require special rigging banner('module') checkallerrors('module',{{20001},{nil,package.seeall,n=2},{nil,function()end,n=2}},"'module' not called from a Lua function") checkallerrors('module',{{'testmodule1'},{nil,'pqrs',aboolean,athread,atable}},"'module' not called from a Lua function") checkallerrors('module',{{aboolean,atable,function() end}},'bad argument') checkallerrors('module',{{aboolean,atable,function() end},{package.seeall}},'bad argument') -- enclose each invokation in its own function function invoke( name, arglist ) assert( name=='module', 'module rig used for '..name ) local func = function() module( unpack(arglist,1,arglist.n or #arglist) ) end return pcall( func ) end checkallpass('module',{{'foo1',20001}}) checkallpass('module',{{'foo2',20002},{package.seeall}}) checkallpass('module',{{'foo3',20003},{package.seeall},{function() end}}) checkallerrors('module',{{aboolean,atable,function() end}},'bad argument') checkallerrors('module',{{aboolean,atable,function() end},{package.seeall}},'bad argument') checkallerrors('module',{{'testmodule2'},{'pqrs'}},'attempt to call') checkallerrors('module',{{'testmodule3'},{aboolean}},'attempt to call') checkallerrors('module',{{'testmodule4'},{athread}},'attempt to call') checkallerrors('module',{{'testmodule5'},{atable}},'attempt to call')