--
-- tests/actions/vstudio/cs2005/test_files.lua
-- Validate generation of block in Visual Studio 2005 .csproj
-- Copyright (c) 2009-2012 Jason Perkins and the Premake project
--
T.vstudio_cs2005_files = { }
local suite = T.vstudio_cs2005_files
local cs2005 = premake.vstudio.cs2005
--
-- Setup
--
local sln, prj
function suite.setup()
sln = test.createsolution()
end
local function prepare()
prj = premake.solution.getproject_ng(sln, 1)
cs2005.files(prj)
end
--
-- Test grouping and nesting
--
function suite.SimpleSourceFile()
files { "Hello.cs" }
prepare()
test.capture [[
]]
end
function suite.NestedSourceFile()
files { "Src/Hello.cs" }
prepare()
test.capture [[
]]
end
--
-- Test file dependencies
--
function suite.SimpleResourceDependency()
files { "Resources.resx", "Resources.Designer.cs" }
prepare()
test.capture [[
TrueResources.resxDesignerResXFileCodeGeneratorResources.Designer.cs
]]
end
--
-- Test copy build action
--
function suite.copyAction()
files { "Hello.txt" }
configuration "**.txt"
buildaction "Copy"
prepare()
test.capture [[
PreserveNewest
]]
end
--
-- Files that exist outside the project folder should be added as
-- links, with a relative path. Weird but true.
--
function suite.usesLink_onExternalSourceCode()
files { "../Hello.cs" }
prepare()
test.capture [[
Hello.cs
]]
end
function suite.usesLinkInFolder_onExternalSourceCode()
files { "../Src/Hello.cs" }
prepare()
test.capture [[
Src\Hello.cs
]]
end
function suite.usesLinkInFolder_onExternalContent()
files { "../Resources/Hello.txt" }
configuration "**.txt"
buildaction "Copy"
prepare()
test.capture [[
Resources\Hello.txt
PreserveNewest
]]
end
function suite.usesLinkInFolder_onExternalReference()
files { "../Resources/Hello.txt" }
prepare()
test.capture [[
Resources\Hello.txt
]]
end
--
-- Files that exist outside the project's folder are allowed to be
-- placed into a folder using a virtual path, which is better than
-- dropping them at the root. Files within the project folder cannot
-- use virtual paths, because Visual Studio won't allow it.
--
function suite.usesLinks_onVpath_onLocalSourceFile()
files { "Hello.cs" }
vpaths { ["Sources"] = "**.cs" }
prepare()
test.capture [[
]]
end
function suite.usesLinks_onVpath_onExternalSourceFile()
files { "../Src/Hello.cs" }
vpaths { ["Sources"] = "../**.cs" }
prepare()
test.capture [[
Sources\Hello.cs
]]
end