mirror of
https://github.com/luanti-org/luanti.git
synced 2025-06-27 16:36:03 +00:00
Add generic IPC mechanism between Lua envs
This commit is contained in:
parent
06907aa99b
commit
f1a436619f
12 changed files with 191 additions and 19 deletions
|
@ -22,9 +22,8 @@ local function do_tests()
|
|||
assert(core.registered_items["unittests:description_test"].on_place == true)
|
||||
end
|
||||
|
||||
-- there's no (usable) communcation path between mapgen and the regular env
|
||||
-- so we just run the test unconditionally
|
||||
do_tests()
|
||||
-- this is checked from the main env
|
||||
core.ipc_set("unittests:mg", { pcall(do_tests) })
|
||||
|
||||
core.register_on_generated(function(vm, pos1, pos2, blockseed)
|
||||
local n = tonumber(core.get_mapgen_setting("chunksize")) * 16 - 1
|
||||
|
|
|
@ -254,3 +254,28 @@ local function test_gennotify_api()
|
|||
assert(#custom == 0, "custom ids not empty")
|
||||
end
|
||||
unittests.register("test_gennotify_api", test_gennotify_api)
|
||||
|
||||
-- <=> inside_mapgen_env.lua
|
||||
local function test_mapgen_env(cb)
|
||||
-- emerge threads start delayed so this can take a second
|
||||
local res = core.ipc_get("unittests:mg")
|
||||
if res == nil then
|
||||
return core.after(0, test_mapgen_env, cb)
|
||||
end
|
||||
-- handle error status
|
||||
if res[1] then
|
||||
cb()
|
||||
else
|
||||
cb(res[2])
|
||||
end
|
||||
end
|
||||
unittests.register("test_mapgen_env", test_mapgen_env, {async=true})
|
||||
|
||||
local function test_ipc_vector_preserve(cb)
|
||||
-- the IPC also uses register_portable_metatable
|
||||
core.ipc_set("unittests:v", vector.new(4, 0, 4))
|
||||
local v = core.ipc_get("unittests:v")
|
||||
assert(type(v) == "table")
|
||||
assert(vector.check(v))
|
||||
end
|
||||
unittests.register("test_ipc_vector_preserve", test_ipc_vector_preserve)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue