Files
gen1recomp/tests/engine/frame_cap_legacy_loop_2106.lua
2026-09-02 10:02:32 -04:00

45 lines
1.6 KiB
Lua

package.path = "./?.lua;./?/init.lua;" .. package.path
local T = require("tests.modkit")
_G.POKEPORT_LOOP_PANEL_SYNC = nil
package.loaded["src.core.FrameCap"] = nil
local FrameCap = require("src.core.FrameCap")
T.eq(FrameCap.loopSupportsPanelSync(), false,
"no marker means a run loop that predates DISPLAY pacing")
T.eq(FrameCap.normalize(0), FrameCap.DEFAULT,
"a stored DISPLAY cap paces at the default instead of 1/0")
T.eq(FrameCap.normalize(-5), FrameCap.DEFAULT, "and so does a negative cap")
love = love or {}
love.system = love.system or {}
local savedGetOS = love.system.getOS
local savedGetenv = os.getenv
os.getenv = function(name)
if name == "POKEPORT_HANDHELD" then return "1" end
return savedGetenv(name)
end
for _, osName in ipairs({ "Android", "iOS", "UWP" }) do
love.system.getOS = function() return osName end
T.eq(FrameCap.prefersPanelSync(), false,
osName .. " does not prefer panel sync under a legacy loop")
FrameCap.current = FrameCap.DEFAULT
FrameCap.applyOptions({})
T.check(FrameCap.current > 0, osName .. " boots with a positive cap")
FrameCap.applyOptions({ fpsCap = 0 })
T.check(FrameCap.current > 0, osName .. " keeps a positive cap for a stored 0")
FrameCap.current = FrameCap.DEFAULT
FrameCap.bootPanelSync()
T.check(FrameCap.current > 0, "bootPanelSync stays positive on " .. osName)
end
os.getenv = savedGetenv
love.system.getOS = savedGetOS
_G.POKEPORT_LOOP_PANEL_SYNC = true
T.eq(FrameCap.normalize(0), FrameCap.DISPLAY,
"the marker from a current love.run restores DISPLAY")
_G.POKEPORT_LOOP_PANEL_SYNC = nil
package.loaded["src.core.FrameCap"] = nil
T.finish("frame cap legacy loop #2106")