44 lines
1.3 KiB
Lua
44 lines
1.3 KiB
Lua
require "bootstrap-tests"
|
|
|
|
test.func.tear_down = default_tear_down
|
|
|
|
test.func.check_truly_c_functions_p = function(func)
|
|
test.equal(type(func), "function")
|
|
|
|
local t = effil.table()
|
|
local ret, _ = pcall(function() t["func"] = func end)
|
|
test.equal(ret, true)
|
|
end
|
|
|
|
test.func.check_truly_c_functions_p(coroutine.create)
|
|
test.func.check_truly_c_functions_p(effil.size)
|
|
|
|
test.func.check_tosting_c_functions = function()
|
|
local t = effil.table()
|
|
|
|
if jit then
|
|
-- in LuaJIT it's not real C function
|
|
local ret, msg = pcall(function() t["tostring"] = tostring end)
|
|
test.equal(ret, false)
|
|
test.equal(msg, "effil.table: can't get C function pointer")
|
|
else
|
|
t["tostring"] = tostring
|
|
|
|
if LUA_VERSION > 51 then
|
|
test.equal(t["tostring"], tostring)
|
|
else
|
|
test.not_equal(t["tostring"], tostring)
|
|
end -- LUA_VERSION > 51
|
|
|
|
test.equal(t["tostring"](123), tostring(123))
|
|
test.equal(effil.thread(function() return t["tostring"](123) end)():get(), tostring(123))
|
|
|
|
local foo = tostring
|
|
test.equal(foo, tostring)
|
|
test.equal(foo(123), tostring(123))
|
|
test.equal(effil.thread(function() return foo(123) end)():get(), tostring(123))
|
|
end -- jit
|
|
end
|
|
|
|
|