Files
fs25-adsmartpickup/tests/test_noStrayGlobals.lua
T

19 lines
1.1 KiB
Lua

-- Kør: luajit tests/test_noStrayGlobals.lua (fra repo-roden)
-- Fanger lokale navne der ved en fejl bruges som globale (fx 'implement' uden for sin closure — v1.49 gjorde
-- egne tømmevogne ubrugelige under høst). Læser luajit-bytecode: GGET/GSET af typiske lokale navne.
local SUSPECT = {implement = true, candidate = true, vehicle = true, rig = true, pair = true, assignment = true,
tractor = true, loan = true, field = true, info = true, marker = true, job = true, owner = true, order = true}
local failures = 0
local files = io.popen("ls FS25_ADSmartPickup/*.lua FS25_ADSmartPickup/gui/*.lua"):read("*a")
for file in files:gmatch("[^\n]+") do
local listing = io.popen("luajit -bl " .. file .. " 2>&1"):read("*a")
for op, name in listing:gmatch("(G[GS]ET)%s+%d+%s+%d+%s+; \"([%w_]+)\"") do
if SUSPECT[name] then
failures = failures + 1
print(string.format("FAIL %s: %s af global '%s'", file, op, name))
end
end
end
print(failures == 0 and "\nALLE TESTS OK" or ("\n" .. failures .. " FEJL"))
os.exit(failures == 0 and 0 or 1)