-- -- tests/actions/vstudio/vc2010/test_resource_compile.lua -- Validate resource compiler settings in Visual Studio 2010 C/C++ projects. -- Copyright (c) 2011-2013 Jason Perkins and the Premake project -- local p = premake local suite = test.declare("vs2010_resource_compiler") local vc2010 = p.vstudio.vc2010 local project = p.project -- -- Setup -- local wks, prj function suite.setup() p.action.set("vs2010") p.escaper(p.vstudio.vs2010.esc) wks, prj = test.createWorkspace() end local function prepare() local cfg = test.getconfig(prj, "Debug") vc2010.resourceCompile(cfg) end -- -- Should only write the element if it is needed. -- function suite.excluded_onNoResourceFiles() prepare() test.isemptycapture() end function suite.excluded_onNoSettings() files { "hello.rc" } prepare() test.isemptycapture() end -- -- If defines are specified, the element should be added. -- function suite.preprocessorDefinitions_onDefines() files { "hello.rc" } defines { "DEBUG" } resdefines { "RESOURCES" } prepare() test.capture [[ DEBUG;RESOURCES;%(PreprocessorDefinitions) ]] end -- -- If include directories are specified, the should be added. -- function suite.additionalIncludeDirs_onIncludeDirs() files { "hello.rc" } includedirs { "include/lua" } resincludedirs { "include/zlib" } prepare() test.capture [[ include\lua;include\zlib;%(AdditionalIncludeDirectories) ]] end -- -- Test special escaping for preprocessor definition with quotes. -- function suite.preprocessorDefinitions_onDefinesEscaping() files { "hello.rc" } defines { 'VERSION_STRING="1.0.0 (testing)"' } prepare() test.capture [[ VERSION_STRING=\"1.0.0 (testing)\";%(PreprocessorDefinitions) ]] end -- -- Test locale conversion to culture codes. -- function suite.culture_en_US() files { "hello.rc" } locale "en-US" prepare() test.capture [[ 0x0409 ]] end