require("mineunit") -- This test is done in a separate file since it requires different configuration at startup. mineunit("core") minetest.settings:set("mesecon.luacontroller_lightweight_interrupts", "true") fixture("mesecons_luacontroller") describe("LuaController lightweight interrupt", function() local pos = {x = 0, y = 0, z = 0} before_each(function() mesecon._test_place(pos, "mesecons_luacontroller:luacontroller0000") mineunit:execute_globalstep() -- Execute receptor_on action end) after_each(function() mesecon._test_reset() world.clear() end) it("works", function() mesecon._test_program_luac(pos, [[ if event.type == "program" then interrupt(5) interrupt(10) elseif event.type == "interrupt" then port.a = not pin.a end ]]) mineunit:execute_globalstep(0.1) mineunit:execute_globalstep(9) assert.equal("mesecons_luacontroller:luacontroller0000", world.get_node(pos).name) mineunit:execute_globalstep(1) mineunit:execute_globalstep(0.1) assert.equal("mesecons_luacontroller:luacontroller0001", world.get_node(pos).name) end) end)