-- -- tests/actions/vstudio/cs2005/test_build_events.lua -- Check generation of pre- and post-build commands for C# projects. -- Copyright (c) 2012-2013 Jason Perkins and the Premake project -- local suite = test.declare("vstudio_cs2005_build_events") local cs2005 = premake.vstudio.cs2005 -- -- Setup -- local wks, prj, cfg function suite.setup() premake.action.set("vs2005") premake.escaper(premake.vstudio.vs2010.esc) wks = test.createWorkspace() end local function prepare(platform) prj = test.getproject(wks, 1) cs2005.buildEvents(prj) end -- -- If no build steps are specified, nothing should be written. -- function suite.noOutput_onNoEvents() prepare() test.isemptycapture() end -- -- If one command set is used and not the other, only the one should be written. -- function suite.onlyOne_onPreBuildOnly() prebuildcommands { "command1" } prepare() test.capture [[ command1 ]] end function suite.onlyOne_onPostBuildOnly() postbuildcommands { "command1" } prepare() test.capture [[ command1 ]] end function suite.both_onBoth() prebuildcommands { "command1" } postbuildcommands { "command2" } prepare() test.capture [[ command1 command2 ]] end -- -- Multiple commands should be separated with un-escaped EOLs. -- function suite.splits_onMultipleCommands() postbuildcommands { "command1", "command2" } prepare() test.capture ("\t\n\t\tcommand1\r\ncommand2\n\t\n") end -- -- Quotes should not be escaped, other special characters should. -- function suite.onSpecialChars() postbuildcommands { '\' " < > &' } prepare() test.capture [[ ' " < > & ]] end