require("import")
import("exception_order")
eo=exception_order
local env = _ENV
if not env then env = getfenv () end
setmetatable(env, {__index=function (t,i) error("undefined global variable `"..i.."'",2) end})
a = eo.A()
function try1()
a:foo()
end
function try2()
a:bar()
end
function try3()
a:foobar()
end
ok,ex=pcall(try1)
print(ok,ex)
assert(ok==false and swig_type(ex)==swig_type(eo.E1()))
ok,ex=pcall(try2)
assert(ok==false and swig_type(ex)==swig_type(eo.E2()))
]]
ok,ex=pcall(try1)
assert(ok==false and ex=="object exception:E1")
ok,ex=pcall(try2)
assert(ok==false and ex=="object exception:E2")
ok,ex=pcall(try3)
assert(ok==false and type(ex)=="string")