19 lines
1.1 KiB
Lua
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)
|