package.path = '${test.lua_support}/?.lua;' .. package.path
event = require('ms_support')
send = 1


function lu_test_mm_cb(new_state, new_substate, old_substate)
        if new_state == 19 and new_substate == 1 and send == 1 then
            send = 0
            event.send({lu_done=1})
        end
end

function mm_cb(new_state, new_substate, old_substate)
% if test.run_lu_test:
	lu_test_mm_cb(new_state, new_substate, old_substate)
% endif
end

local cbs = {
        Mm=mm_cb
}
osmo.ms():register(cbs)
osmo.ms().start()

event.register(osmo.ms():number(), "${test.event_path}")
