Files
gen1recomp/tests/engine/cache_fs_headless_test.lua
T
johnjohto 8f0117a145 Treat headless cache reads as misses in CacheFs
The modkit validate and pack drivers run the real loader under plain
luajit, with no love global.  With --base imported, Data:load falls
back to CacheFs.readActive for a generated module require cannot find
(an optional module like data/generated/audio.lua is legitimately
absent from developer and stale caches), and CacheFs.read indexed
love.filesystem once there was no portable root, so validate and pack
died with MK100 before the mod was even looked at.  Headless there is
no save directory to read from, so return nil like any other cache
miss.

Refs #850
2026-08-05 10:25:19 -04:00

21 lines
797 B
Lua

-- CacheFs stays headless-safe: plain luajit has no love global, and the
-- modkit validate/pack driver reaches CacheFs.read through Data:load when
-- an optional generated module (audio) is missing from the checkout
-- (issue #850). With no portable root and no love there is no save
-- directory to read from, so the read is a nil miss, not a crash.
package.path = "./?.lua;./?/init.lua;" .. package.path
local T = require("tests.harness")
local check = T.check
check(_G.love == nil, "suite runs with no love global")
local CacheFs = require("src.import.CacheFs")
check(CacheFs.read("data/generated/audio.lua") == nil,
"read is a nil miss headless, not a crash")
check(CacheFs.readActive("data/generated/audio.lua") == nil,
"readActive is a nil miss headless, not a crash")
T.finish()