@@ -33,6 +33,9 @@ local function doTestUnprotected(description, f, ...)
3333 f (... )
3434 table.insert (results , {description = description , ok = true })
3535end
36+ local function doTestDisabled ()
37+ -- void
38+ end
3639local function addLabel (label )
3740 table.insert (results , {label = label })
3841end
@@ -779,7 +782,7 @@ doTest("Handler + multiple files", function()
779782 assertCodeOutput (readFile " temp/generatedTest2.lua" , enableInts and [[ print("foo");local y = 1025.0]] or [[ print("foo");local y = 1025]] )
780783end )
781784
782- doTest (" Use stdin and stdout" , function ()
785+ doTest (" stdin and stdout" , function ()
783786 local luaExeMaybeQuoted = luaExe :find (" " , 1 , true ) and ' "' .. luaExe .. ' "' or luaExe
784787
785788 writeFile (" temp/generatedTest.lua2p" , [[ x = !(1+2) ]] )
@@ -919,7 +922,62 @@ doTest("Options", function()
919922end )
920923
921924doTest (" Messages" , function ()
922- -- @Incomplete
925+ for cycle = 1 , 2 do
926+ print (" Cycle " .. cycle )
927+
928+ writeFile (" temp/generatedHandler.lua" ,
929+ cycle == 1 and [[ return {
930+ init = function(inPaths, outPaths ) assert(not outPaths) ; table.insert(inPaths, "temp/generatedTest.lua2p") end,
931+ insert = function(path, name ) assert(name == "foo()") ; return "un"..name end,
932+ beforemeta = function(path ) end,
933+ aftermeta = function(path, lua ) return "-- Hello\n"..lua end,
934+ filedone = function(path, outPath, info) assert(outPath == "temp/generatedTest.lua") ; assert(type(info) == "table") end,
935+ fileerror = function(path, err ) end,
936+ }]]
937+ or [[ return function(message, ...)
938+ if message == "init" then local inPaths, outPaths = ... ; assert(not outPaths) ; table.insert(inPaths, "temp/generatedTest.lua2p")
939+ elseif message == "insert" then local path, name = ... ; assert(name == "foo()") ; return "un"..name
940+ elseif message == "beforemeta" then local path = ...
941+ elseif message == "aftermeta" then local path, lua = ... ; return "-- Hello\n"..lua
942+ elseif message == "filedone" then local path, outPath, info = ... ; assert(outPath == "temp/generatedTest.lua") ; assert(type(info) == "table")
943+ elseif message == "fileerror" then local path, err = ...
944+ else error(message) end
945+ end]]
946+ )
947+
948+ writeFile (" temp/generatedTest.lua2p" , [[ @insert"foo()"]] )
949+ removeFile (" temp/generatedTest.lua" )
950+ runCommand (luaExe , [[ preprocess-cl.lua --handler=temp/generatedHandler.lua]] )
951+ assertCodeOutput (readFile " temp/generatedTest.lua" , ' -- Hello\n unfoo()' )
952+ end
953+
954+ -- "init"
955+ do
956+ writeFile (" temp/generatedTest.lua2p" , [[ ]] )
957+
958+ writeFile (" temp/generatedHandler.lua" , [[ return {init=function(inPaths, outPaths) end} ]] )
959+ runCommand (luaExe , [[ preprocess-cl.lua --handler=temp/generatedHandler.lua --outputpaths temp/generatedTest.lua2p temp/generatedTest.lua]] )
960+
961+ -- Path arrays must be the same length.
962+ writeFile (" temp/generatedHandler.lua" , [[ return {init=function(inPaths, outPaths) outPaths[1] = nil end} ]] )
963+ runCommandToFail (luaExe , [[ preprocess-cl.lua --handler=temp/generatedHandler.lua --outputpaths temp/generatedTest.lua2p temp/generatedTest.lua]] )
964+
965+ -- Path arrays must not be empty.
966+ writeFile (" temp/generatedHandler.lua" , [[ return {init=function(inPaths, outPaths) inPaths[1] = nil ; if outPaths then outPaths[1] = nil end end} ]] )
967+ runCommandToFail (luaExe , [[ preprocess-cl.lua --handler=temp/generatedHandler.lua temp/generatedTest.lua2p]] )
968+ runCommandToFail (luaExe , [[ preprocess-cl.lua --handler=temp/generatedHandler.lua --outputpaths temp/generatedTest.lua2p temp/generatedTest.lua]] )
969+ end
970+
971+ -- "insert" must return a string.
972+ writeFile (" temp/generatedTest.lua2p" , [[ n = @insert"" ]] )
973+ writeFile (" temp/generatedHandler.lua" , [[ return{insert=function()return"5"end} ]] ) ; runCommand (luaExe , [[ preprocess-cl.lua --handler=temp/generatedHandler.lua temp/generatedTest.lua2p]] )
974+ writeFile (" temp/generatedHandler.lua" , [[ return{insert=function()return 5 end} ]] ) ; runCommandToFail (luaExe , [[ preprocess-cl.lua --handler=temp/generatedHandler.lua temp/generatedTest.lua2p]] )
975+
976+ -- "aftermeta" must return a string or nil/nothing.
977+ writeFile (" temp/generatedTest.lua2p" , [[ whatever ]] )
978+ writeFile (" temp/generatedHandler.lua" , [[ return{aftermeta=function() end} ]] ) ; runCommand (luaExe , [[ preprocess-cl.lua --handler=temp/generatedHandler.lua --novalidate temp/generatedTest.lua2p]] )
979+ writeFile (" temp/generatedHandler.lua" , [[ return{aftermeta=function()return"5"end} ]] ) ; runCommand (luaExe , [[ preprocess-cl.lua --handler=temp/generatedHandler.lua --novalidate temp/generatedTest.lua2p]] )
980+ writeFile (" temp/generatedHandler.lua" , [[ return{aftermeta=function()return 5 end} ]] ) ; runCommandToFail (luaExe , [[ preprocess-cl.lua --handler=temp/generatedHandler.lua --novalidate temp/generatedTest.lua2p]] )
923981end )
924982
925983
0 commit comments