]> git.lizzy.rs Git - metalua.git/blob - src/tests/reweave.mlua
Merge remote branch 'origin/master'
[metalua.git] / src / tests / reweave.mlua
1 -{ extension 'xloop' }
2
3 ls = io.popen ( (os.getenv("OS") or "") :match "^Windows" and "dir /b reweave" or "ls reweave")
4 this_script = arg[1]
5
6 local errors = {}
7
8 for filename in ls :lines() if filename :strmatch  "%.m?lua$" do
9    printf ("--- weaver check %s ---", filename)
10    local ret = os.execute ("metalua ../samples/weaver.mlua reweave/"..filename.." | diff -q reweave/"..filename.." -")
11    if ret ~= 0 then
12       print("================================================================================") 
13       print("Reweaved source does not match original:") 
14       print("================================================================================") 
15       os.execute ("metalua ../samples/weaver.mlua reweave/"..filename.." | diff reweave/"..filename.." -")
16       errors[#errors + 1] = "Reweaving of "..filename.." failed, returned "..ret
17    end
18 end
19
20 ls :close()
21
22 if #errors > 0 then
23    print("================================================================================") 
24    error("REWEAVING ERRORS DETECTED:\n * " .. table.concat(errors, "\n * ")) 
25 end