raze-gles/polymer/eduke32/source/lunatic/test.elua

56 lines
1.6 KiB
Text
Raw Normal View History

-- test script for ELua/Lunatic Interpreter
print('--- ELua Test script ---')
local function checkfail(funcstr)
local status, res = pcall(DBG_.loadstring(funcstr))
if (status) then
print('ERROR: '..funcstr.." DIDN'T fail")
else
print('SUCCESS: '..funcstr.." failed: "..res)
end
end
local i
print('tweaking sector pals')
---[[
for i = 0, gv.numsectors/2 do
sector[i].floorpal = 1;
sector[i].ceilingpal = 2;
end
checkfail('gv.sprite[0].yrepeat = 100') -- direct gv array access forbidden
print('tweaking some sprites 2')
i = 562
spriteext[i].alpha = 0.5;
sprite[i].cstat = bit.bor(sprite[i].cstat, 2+512);
spriteext[i].pitch = 128;
spriteext[i].roll = 256;
for spr in spritesofsect(307) do -- some fence sprites in E1L1
print('spr', spr)
sprite[spr].pal = 6
end
for spr in spritesofsect(236) do
print('#spr', spr)
end
actor[562].flags = bit.bor(actor[562].flags, 2); -- pal 6 with goggles on front SEENINE
--]]
print('_G contains:')
for k,v in pairs(_G) do
print(k, v)
end
checkfail('print(sprite[100000].ceilingpal)') -- oob read access
checkfail('setmetatable(sprite, {})') -- set metatable forbidden
checkfail('sector[-1].ceilingpal = 4') -- oob write access
checkfail('sector[0].wallnum = 0') -- wallnum member is read-only
checkfail('gv.numsectors = 4') -- gv.numsectors is read-only
checkfail('sector[4] = sector[6]') -- direct sector write access forbidden
checkfail("require('os')") -- 'require' has been thrown away to be replaced by
-- something more restricted later
print('--- end test script ---')