-- -- 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 [[ True Resources.resx Designer ResXFileCodeGenerator Resources.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