Skip to content

Commit a68ef4d

Browse files
committed
CL: Message tests.
1 parent 10eab1a commit a68ef4d

File tree

2 files changed

+61
-3
lines changed

2 files changed

+61
-3
lines changed

preprocess-cl.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ exec lua "$0" "$@"
5151
called with various messages as it's first argument. If it's
5252
a table, the keys should be the message names and the values
5353
should be functions to handle the respective message.
54-
(See 'Handler messages' and tests/testHandler.lua)
54+
(See 'Handler messages' and tests/quickTestHandler*.lua)
5555
The file shares the same environment as the processed files.
5656
5757
--jitsyntax

tests/suite.lua

Lines changed: 60 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,9 @@ local function doTestUnprotected(description, f, ...)
3333
f(...)
3434
table.insert(results, {description=description, ok=true})
3535
end
36+
local function doTestDisabled()
37+
-- void
38+
end
3639
local function addLabel(label)
3740
table.insert(results, {label=label})
3841
end
@@ -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]])
780783
end)
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()
919922
end)
920923

921924
doTest("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\nunfoo()')
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]])
923981
end)
924982

925983

0 commit comments

Comments
 (0)