diff options
author | Jason Perkins <starkos@industriousone.com> | 2011-02-16 23:16:07 +0300 |
---|---|---|
committer | Jason Perkins <starkos@industriousone.com> | 2011-02-16 23:16:07 +0300 |
commit | 2e9fbb9962fddcf45598f021c60afa153dc660a8 (patch) | |
tree | 44d4f04ac42822531e81b1d7ec34a81eec1733f4 /tests | |
parent | 553185ac9c70b984af9049f32ea520f5f7458bd8 (diff) |
[#3100379] C# support for Visual Studio 2010
Diffstat (limited to 'tests')
-rwxr-xr-x | tests/actions/vstudio/cs2005/files.lua | 2 | ||||
-rwxr-xr-x | tests/actions/vstudio/cs2005/projectelement.lua | 56 | ||||
-rwxr-xr-x[-rw-r--r--] | tests/actions/vstudio/cs2005/projectsettings.lua (renamed from tests/actions/vstudio/test_vs2005_csproj.lua) | 241 | ||||
-rwxr-xr-x | tests/actions/vstudio/cs2005/propertygroup.lua | 59 | ||||
-rwxr-xr-x | tests/actions/vstudio/sln2005/dependencies.lua | 67 | ||||
-rwxr-xr-x | tests/actions/vstudio/sln2005/header.lua | 59 | ||||
-rwxr-xr-x[-rw-r--r--] | tests/actions/vstudio/sln2005/layout.lua (renamed from tests/test_vs2008_sln.lua) | 48 | ||||
-rwxr-xr-x | tests/actions/vstudio/sln2005/platforms.lua | 135 | ||||
-rwxr-xr-x[-rw-r--r--] | tests/actions/vstudio/sln2005/projectplatforms.lua (renamed from tests/test_vs2005_sln.lua) | 259 | ||||
-rwxr-xr-x | tests/actions/vstudio/sln2005/projects.lua | 67 | ||||
-rw-r--r-- | tests/actions/xcode/test_xcode_dependencies.lua | 1 | ||||
-rw-r--r-- | tests/premake4.lua | 21 | ||||
-rw-r--r-- | tests/test_vs2010_sln.lua | 116 |
13 files changed, 658 insertions, 473 deletions
diff --git a/tests/actions/vstudio/cs2005/files.lua b/tests/actions/vstudio/cs2005/files.lua index 0edcacc..0ecc1e1 100755 --- a/tests/actions/vstudio/cs2005/files.lua +++ b/tests/actions/vstudio/cs2005/files.lua @@ -23,7 +23,7 @@ premake.buildconfigs() prj = premake.solution.getproject(sln, 1) sln.vstudio_configs = premake.vstudio.buildconfigs(sln) - cs2005.Files(prj) + cs2005.files(prj) end diff --git a/tests/actions/vstudio/cs2005/projectelement.lua b/tests/actions/vstudio/cs2005/projectelement.lua new file mode 100755 index 0000000..a06c1c4 --- /dev/null +++ b/tests/actions/vstudio/cs2005/projectelement.lua @@ -0,0 +1,56 @@ +-- +-- tests/actions/vstudio/cs2005/projectelement.lua +-- Validate generation of <Project/> element in Visual Studio 2005+ .csproj +-- Copyright (c) 2009-2011 Jason Perkins and the Premake project +-- + + T.vstudio_cs2005_projectelement = { } + local suite = T.vstudio_cs2005_projectelement + local cs2005 = premake.vstudio.cs2005 + + +-- +-- Setup +-- + + local sln, prj + + function suite.setup() + sln = test.createsolution() + end + + local function prepare() + premake.buildconfigs() + prj = premake.solution.getproject(sln, 1) + cs2005.projectelement(prj) + end + + +-- +-- Tests +-- + + function suite.On2005() + _ACTION = "vs2005" + prepare() + test.capture [[ +<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + ]] + end + + function suite.On2008() + _ACTION = "vs2008" + prepare() + test.capture [[ +<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + ]] + end + + function suite.On2010() + _ACTION = "vs2010" + prepare() + test.capture [[ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + ]] + end diff --git a/tests/actions/vstudio/test_vs2005_csproj.lua b/tests/actions/vstudio/cs2005/projectsettings.lua index b0618ea..6c5ad58 100644..100755 --- a/tests/actions/vstudio/test_vs2005_csproj.lua +++ b/tests/actions/vstudio/cs2005/projectsettings.lua @@ -1,121 +1,120 @@ --- --- tests/actions/test_vs2005_csproj.lua --- Automated test suite for Visual Studio 2005-2008 C# project generation. --- Copyright (c) 2010 Jason Perkins and the Premake project --- - - T.vs2005_csproj = { } - local suite = T.vs2005_csproj - local cs2005 = premake.vstudio.cs2005 - --- --- Configure a solution for testing --- - - local sln, prj - function suite.setup() - _ACTION = "vs2005" - - sln = solution "MySolution" - configurations { "Debug", "Release" } - platforms {} - - project "MyProject" - language "C#" - kind "ConsoleApp" - uuid "AE61726D-187C-E440-BD07-2556188A6565" - end - - local function prepare() - premake.buildconfigs() - prj = premake.solution.getproject(sln, 1) - end - - --- --- Project element tests --- - - function suite.projectelement_OnVs2005() - _ACTION = "vs2005" - prepare() - cs2005.projectelement(prj) - test.capture [[ -<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - ]] - end - - function suite.projectelement_OnVs2008() - _ACTION = "vs2008" - prepare() - cs2005.projectelement(prj) - test.capture [[ -<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5"> - ]] - end - - --- --- Project settings tests --- - - function suite.projectsettings_OnVs2005() - _ACTION = "vs2005" - prepare() - cs2005.projectsettings(prj) - test.capture [[ - <PropertyGroup> - <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> - <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> - <ProductVersion>8.0.50727</ProductVersion> - <SchemaVersion>2.0</SchemaVersion> - <ProjectGuid>{AE61726D-187C-E440-BD07-2556188A6565}</ProjectGuid> - <OutputType>Exe</OutputType> - <AppDesignerFolder>Properties</AppDesignerFolder> - <RootNamespace>MyProject</RootNamespace> - <AssemblyName>MyProject</AssemblyName> - </PropertyGroup> - ]] - end - - - function suite.projectsettings_OnVs2008() - _ACTION = "vs2008" - prepare() - cs2005.projectsettings(prj) - test.capture [[ - <PropertyGroup> - <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> - <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> - <ProductVersion>9.0.21022</ProductVersion> - <SchemaVersion>2.0</SchemaVersion> - <ProjectGuid>{AE61726D-187C-E440-BD07-2556188A6565}</ProjectGuid> - <OutputType>Exe</OutputType> - <AppDesignerFolder>Properties</AppDesignerFolder> - <RootNamespace>MyProject</RootNamespace> - <AssemblyName>MyProject</AssemblyName> - </PropertyGroup> - ]] - end - - - function suite.projectsettings_OnFrameworkVersion() - _ACTION = "vs2005" - framework "3.0" - prepare() - cs2005.projectsettings(prj) - test.capture [[ - <PropertyGroup> - <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> - <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> - <ProductVersion>8.0.50727</ProductVersion> - <SchemaVersion>2.0</SchemaVersion> - <ProjectGuid>{AE61726D-187C-E440-BD07-2556188A6565}</ProjectGuid> - <OutputType>Exe</OutputType> - <AppDesignerFolder>Properties</AppDesignerFolder> - <RootNamespace>MyProject</RootNamespace> - <AssemblyName>MyProject</AssemblyName> - <TargetFrameworkVersion>v3.0</TargetFrameworkVersion> - </PropertyGroup> - ]] - end +--
+-- tests/actions/vstudio/cs2005/projectsettings.lua
+-- Validate generation of root <PropertyGroup/> in Visual Studio 2005+ .csproj
+-- Copyright (c) 2009-2011 Jason Perkins and the Premake project
+--
+
+ T.vstudio_cs2005_projectsettings = { }
+ local suite = T.vstudio_cs2005_projectsettings
+ local cs2005 = premake.vstudio.cs2005
+
+
+--
+-- Setup
+--
+
+ local sln, prj
+
+ function suite.setup()
+ sln = test.createsolution()
+ language "C#"
+ uuid "AE61726D-187C-E440-BD07-2556188A6565"
+ end
+
+ local function prepare()
+ premake.buildconfigs()
+ prj = premake.solution.getproject(sln, 1)
+ cs2005.projectsettings(prj)
+ end
+
+
+--
+-- Version Tests
+--
+
+ function suite.OnVs2005()
+ _ACTION = "vs2005"
+ prepare()
+ test.capture [[
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProductVersion>8.0.50727</ProductVersion>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{AE61726D-187C-E440-BD07-2556188A6565}</ProjectGuid>
+ <OutputType>Exe</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <RootNamespace>MyProject</RootNamespace>
+ <AssemblyName>MyProject</AssemblyName>
+ </PropertyGroup>
+ ]]
+ end
+
+
+ function suite.OnVs2008()
+ _ACTION = "vs2008"
+ prepare()
+ test.capture [[
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProductVersion>9.0.21022</ProductVersion>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{AE61726D-187C-E440-BD07-2556188A6565}</ProjectGuid>
+ <OutputType>Exe</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <RootNamespace>MyProject</RootNamespace>
+ <AssemblyName>MyProject</AssemblyName>
+ </PropertyGroup>
+ ]]
+ end
+
+
+ function suite.OnVs2010()
+ _ACTION = "vs2010"
+ prepare()
+ test.capture [[
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProductVersion>8.0.30703</ProductVersion>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{AE61726D-187C-E440-BD07-2556188A6565}</ProjectGuid>
+ <OutputType>Exe</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <RootNamespace>MyProject</RootNamespace>
+ <AssemblyName>MyProject</AssemblyName>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+ <TargetFrameworkProfile>Client</TargetFrameworkProfile>
+ <FileAlignment>512</FileAlignment>
+ </PropertyGroup>
+ ]]
+ end
+
+
+
+--
+-- Framework Tests
+--
+
+ function suite.OnFrameworkVersion()
+ _ACTION = "vs2005"
+ framework "3.0"
+ prepare()
+ test.capture [[
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProductVersion>8.0.50727</ProductVersion>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{AE61726D-187C-E440-BD07-2556188A6565}</ProjectGuid>
+ <OutputType>Exe</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <RootNamespace>MyProject</RootNamespace>
+ <AssemblyName>MyProject</AssemblyName>
+ <TargetFrameworkVersion>v3.0</TargetFrameworkVersion>
+ </PropertyGroup>
+ ]]
+ end
+
+
diff --git a/tests/actions/vstudio/cs2005/propertygroup.lua b/tests/actions/vstudio/cs2005/propertygroup.lua new file mode 100755 index 0000000..07eba93 --- /dev/null +++ b/tests/actions/vstudio/cs2005/propertygroup.lua @@ -0,0 +1,59 @@ +--
+-- tests/actions/vstudio/cs2005/propertygroup.lua
+-- Validate configuration <PropertyGroup/> elements in Visual Studio 2005+ .csproj
+-- Copyright (c) 2009-2011 Jason Perkins and the Premake project
+--
+
+ T.vstudio_cs2005_propertygroup = { }
+ local suite = T.vstudio_cs2005_propertygroup
+ local cs2005 = premake.vstudio.cs2005
+
+
+--
+-- Setup
+--
+
+ local sln, prj, cfg
+
+ function suite.setup()
+ sln = test.createsolution()
+ language "C#"
+ end
+
+ local function prepare()
+ premake.buildconfigs()
+ prj = premake.solution.getproject(sln, 1)
+ cfg = premake.getconfig(prj, "Debug")
+ cs2005.propertygroup(cfg)
+ end
+
+
+--
+-- Version Tests
+--
+
+ function suite.OnVs2005()
+ _ACTION = "vs2005"
+ prepare()
+ test.capture [[
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ ]]
+ end
+
+
+ function suite.OnVs2008()
+ _ACTION = "vs2008"
+ prepare()
+ test.capture [[
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ ]]
+ end
+
+
+ function suite.OnVs2010()
+ _ACTION = "vs2010"
+ prepare()
+ test.capture [[
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ ]]
+ end
diff --git a/tests/actions/vstudio/sln2005/dependencies.lua b/tests/actions/vstudio/sln2005/dependencies.lua new file mode 100755 index 0000000..f481c2c --- /dev/null +++ b/tests/actions/vstudio/sln2005/dependencies.lua @@ -0,0 +1,67 @@ +--
+-- tests/actions/vstudio/sln2005/dependencies.lua
+-- Validate generation of Visual Studio 2005+ solution project dependencies.
+-- Copyright (c) 2009-2011 Jason Perkins and the Premake project
+--
+
+ T.vstudio_sln2005_dependencies = { }
+ local suite = T.vstudio_sln2005_dependencies
+ local sln2005 = premake.vstudio.sln2005
+
+
+--
+-- Setup
+--
+
+ local sln, prj1, prj2
+
+ function suite.setup()
+ _ACTION = "vs2005"
+ sln, prj1 = test.createsolution()
+ uuid "AE61726D-187C-E440-BD07-2556188A6565"
+ prj2 = test.createproject(sln)
+ uuid "2151E83B-997F-4A9D-955D-380157E88C31"
+ links "MyProject"
+ end
+
+ local function prepare(language)
+ prj1.language = language
+ prj2.language = language
+ premake.buildconfigs()
+ prj1 = premake.solution.getproject(sln, 1)
+ prj2 = premake.solution.getproject(sln, 2)
+ sln2005.projectdependencies(prj2)
+ end
+
+
+--
+-- Tests
+--
+
+ function suite.On2005_Cpp()
+ prepare("C++")
+ test.capture [[
+ ProjectSection(ProjectDependencies) = postProject
+ {AE61726D-187C-E440-BD07-2556188A6565} = {AE61726D-187C-E440-BD07-2556188A6565}
+ EndProjectSection
+ ]]
+ end
+
+
+ function suite.On2005_Cs()
+ prepare("C#")
+ test.capture [[
+ ProjectSection(ProjectDependencies) = postProject
+ {AE61726D-187C-E440-BD07-2556188A6565} = {AE61726D-187C-E440-BD07-2556188A6565}
+ EndProjectSection
+ ]]
+ end
+
+
+ function suite.On2010_Cs()
+ -- 2010 C# gets rules from the projects rather than the solution
+ _ACTION = "vs2010"
+ prepare("C#")
+ local actual = io.endcapture()
+ test.istrue(actual:len() == 0)
+ end
diff --git a/tests/actions/vstudio/sln2005/header.lua b/tests/actions/vstudio/sln2005/header.lua new file mode 100755 index 0000000..b017327 --- /dev/null +++ b/tests/actions/vstudio/sln2005/header.lua @@ -0,0 +1,59 @@ +-- +-- tests/actions/vstudio/sln2005/header.lua +-- Validate generation of Visual Studio 2005+ solution header. +-- Copyright (c) 2009-2011 Jason Perkins and the Premake project +-- + + T.vstudio_sln2005_header = { } + local suite = T.vstudio_sln2005_header + local sln2005 = premake.vstudio.sln2005 + + +-- +-- Setup +-- + + local sln, prj + + function suite.setup() + sln = test.createsolution() + end + + local function prepare() + premake.buildconfigs() + sln2005.header() + end + + +-- +-- Tests +-- + + function suite.On2005() + _ACTION = "vs2005" + prepare() + test.capture [[ +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual Studio 2005 + ]] + end + + + function suite.On2008() + _ACTION = "vs2008" + prepare() + test.capture [[ +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 + ]] + end + + + function suite.On2010() + _ACTION = "vs2010" + prepare() + test.capture [[ +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 + ]] + end diff --git a/tests/test_vs2008_sln.lua b/tests/actions/vstudio/sln2005/layout.lua index 74513f7..3b5a620 100644..100755 --- a/tests/test_vs2008_sln.lua +++ b/tests/actions/vstudio/sln2005/layout.lua @@ -1,45 +1,35 @@ -- --- tests/test_vs2008_sln.lua --- Automated test suite for Visual Studio 2008 solution generation. --- Copyright (c) 2009 Jason Perkins and the Premake project +-- tests/actions/vstudio/sln2005/layout.lua
+-- Validate the overall layout of VS 2005-2010 solutions. +-- Copyright (c) 2009-2011 Jason Perkins and the Premake project -- +
+ T.vstudio_sln2005_layout = { }
+ local suite = T.vstudio_sln2005_layout
+ local sln2005 = premake.vstudio.sln2005
- T.vs2008_sln = { } - local suite = T.vs2008_sln - local sln2005 = premake.vstudio.sln2005 - --- --- Configure a solution for testing --- local sln - function suite.setup() - _ACTION = "vs2008" - sln = solution "MySolution" - configurations { "Debug", "Release" } - platforms {} - - prj = project "MyProject" - language "C++" - kind "ConsoleApp" - uuid "AE61726D-187C-E440-BD07-2556188A6565" - - premake.buildconfigs() + function suite.setup() + _ACTION = "vs2005"
+ sln = test.createsolution()
+ uuid "AE61726D-187C-E440-BD07-2556188A6565"
end - + local function prepare() + premake.buildconfigs() + sln.vstudio_configs = premake.vstudio.buildconfigs(sln) + sln2005.generate(sln) + end --- --- Make sure I've got the basic layout correct --- function suite.BasicLayout() - sln2005.generate(sln) + prepare() test.capture ('\239\187\191' .. [[ -Microsoft Visual Studio Solution File, Format Version 10.00 -# Visual Studio 2008 +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual Studio 2005 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MyProject", "MyProject.vcproj", "{AE61726D-187C-E440-BD07-2556188A6565}" EndProject Global diff --git a/tests/actions/vstudio/sln2005/platforms.lua b/tests/actions/vstudio/sln2005/platforms.lua new file mode 100755 index 0000000..82aa9d1 --- /dev/null +++ b/tests/actions/vstudio/sln2005/platforms.lua @@ -0,0 +1,135 @@ +--
+-- tests/actions/vstudio/sln2005/platforms.lua
+-- Validate generation of Visual Studio 2005+ SolutionConfigurationPlatforms block.
+-- Copyright (c) 2009-2011 Jason Perkins and the Premake project
+--
+
+ T.vstudio_sln2005_platforms = { }
+ local suite = T.vstudio_sln2005_platforms
+ local sln2005 = premake.vstudio.sln2005
+
+
+--
+-- Setup
+--
+
+ local sln, prj
+
+ function suite.setup()
+ sln, prj = test.createsolution()
+ end
+
+ local function prepare(language)
+ prj.language = language
+ premake.buildconfigs()
+ sln.vstudio_configs = premake.vstudio.buildconfigs(sln)
+ sln2005.platforms(sln)
+ end
+
+
+--
+-- C/C++ Tests
+--
+
+ function suite.On2005_Cpp()
+ _ACTION = "vs2005"
+ prepare("C++")
+ test.capture [[
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Release|Win32 = Release|Win32
+ EndGlobalSection
+ ]]
+ end
+
+
+--
+-- C# Tests
+--
+
+ function suite.On2005_Cs()
+ _ACTION = "vs2005"
+ prepare("C#")
+ test.capture [[
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Debug|Win32 = Debug|Win32
+ Release|Any CPU = Release|Any CPU
+ Release|Win32 = Release|Win32
+ EndGlobalSection
+ ]]
+ end
+
+
+ function suite.On2010_Cs()
+ _ACTION = "vs2010"
+ prepare("C#")
+ test.capture [[
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Debug|Mixed Platforms = Debug|Mixed Platforms
+ Debug|x86 = Debug|x86
+ Release|Any CPU = Release|Any CPU
+ Release|Mixed Platforms = Release|Mixed Platforms
+ Release|x86 = Release|x86
+ EndGlobalSection
+ ]]
+ end
+
+
+--
+-- Mixed language tests
+--
+ + function suite.On2005_MixedLanguages() + _ACTION = "vs2005" + test.createproject(sln)
+ prepare("C#")
+ test.capture [[ + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|Mixed Platforms = Debug|Mixed Platforms + Debug|Win32 = Debug|Win32 + Release|Any CPU = Release|Any CPU + Release|Mixed Platforms = Release|Mixed Platforms + Release|Win32 = Release|Win32 + EndGlobalSection + ]] + end +
+
+ function suite.On2010_MixedLanguages()
+ _ACTION = "vs2010"
+ test.createproject(sln)
+ prepare("C#")
+ test.capture [[
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Mixed Platforms = Debug|Mixed Platforms
+ Debug|Win32 = Debug|Win32
+ Debug|x86 = Debug|x86
+ Release|Mixed Platforms = Release|Mixed Platforms
+ Release|Win32 = Release|Win32
+ Release|x86 = Release|x86
+ EndGlobalSection
+ ]]
+ end
+
+ +-- +-- Test multiple platforms +-- + + function suite.On2005_MixedPlatforms() + _ACTION = "vs2005" + platforms { "x32", "x64" } + prepare("C++") + test.capture [[ + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Debug|x64 = Debug|x64 + Release|Win32 = Release|Win32 + Release|x64 = Release|x64 + EndGlobalSection + ]] + end + diff --git a/tests/test_vs2005_sln.lua b/tests/actions/vstudio/sln2005/projectplatforms.lua index d37a144..cd40432 100644..100755 --- a/tests/test_vs2005_sln.lua +++ b/tests/actions/vstudio/sln2005/projectplatforms.lua @@ -1,118 +1,40 @@ --- --- tests/test_vs2005_sln.lua --- Automated test suite for Visual Studio 2005 solution generation. --- Copyright (c) 2009 Jason Perkins and the Premake project --- - - T.vs2005_sln = { } - local suite = T.vs2005_sln - local sln2005 = premake.vstudio.sln2005 - --- --- Configure a solution for testing --- - - local sln - function suite.setup() - sln = solution "MySolution" - configurations { "Debug", "Release" } - platforms {} - - project "MyProject" - language "C++" - kind "ConsoleApp" - uuid "AE61726D-187C-E440-BD07-2556188A6565" - - _ACTION = 'vs2005' - end - - local function prepare() - premake.buildconfigs() - sln.vstudio_configs = premake.vstudio.buildconfigs(sln) - end - - local function addnetproject() - project "MyNetProject" - language "C#" - kind "ConsoleApp" - uuid "C9135098-6047-8142-B10E-D27E7F73FCB3" - end - - - - --- --- Make sure I've got the basic layout correct --- - - function suite.BasicLayout() - prepare() - sln2005.generate(sln) - test.capture ('\239\187\191' .. [[ - -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MyProject", "MyProject.vcproj", "{AE61726D-187C-E440-BD07-2556188A6565}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {AE61726D-187C-E440-BD07-2556188A6565}.Debug|Win32.ActiveCfg = Debug|Win32 - {AE61726D-187C-E440-BD07-2556188A6565}.Debug|Win32.Build.0 = Debug|Win32 - {AE61726D-187C-E440-BD07-2556188A6565}.Release|Win32.ActiveCfg = Release|Win32 - {AE61726D-187C-E440-BD07-2556188A6565}.Release|Win32.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal - ]]) - end - - - --- --- Test a mixed runtime (C++/.NET) solution. --- - - function suite.SolutionPlatforms_OnMixedModes() - addnetproject() - prepare() - - sln2005.platforms(sln) - test.capture [[ - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Debug|Mixed Platforms = Debug|Mixed Platforms - Debug|Win32 = Debug|Win32 - Release|Any CPU = Release|Any CPU - Release|Mixed Platforms = Release|Mixed Platforms - Release|Win32 = Release|Win32 - EndGlobalSection - ]] - end - - - function suite.ProjectPlatforms_OnMixedModes() - addnetproject() - prepare() - - sln2005.project_platforms(sln) +--
+-- tests/actions/vstudio/sln2005/projectplatforms.lua
+-- Validate generation of Visual Studio 2005+ ProjectConfigurationPlatforms block.
+-- Copyright (c) 2009-2011 Jason Perkins and the Premake project
+--
+
+ T.vstudio_sln2005_projectplatforms = { }
+ local suite = T.vstudio_sln2005_projectplatforms
+ local sln2005 = premake.vstudio.sln2005
+
+
+--
+-- Setup
+--
+
+ local sln, prj
+
+ function suite.setup()
+ sln, prj = test.createsolution()
+ uuid "C9135098-6047-8142-B10E-D27E7F73FCB3"
+ end
+
+ local function prepare(language)
+ prj.language = language
+ premake.buildconfigs()
+ sln.vstudio_configs = premake.vstudio.buildconfigs(sln)
+ sln2005.project_platforms(sln)
+ end
+
+
+ function suite.ProjectPlatforms_OnMixedLanguages() + _ACTION = "vs2005" + test.createproject(sln)
+ uuid "AE61726D-187C-E440-BD07-2556188A6565"
+ prepare("C#")
test.capture [[ GlobalSection(ProjectConfigurationPlatforms) = postSolution - {AE61726D-187C-E440-BD07-2556188A6565}.Debug|Any CPU.ActiveCfg = Debug|Win32 - {AE61726D-187C-E440-BD07-2556188A6565}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 - {AE61726D-187C-E440-BD07-2556188A6565}.Debug|Mixed Platforms.Build.0 = Debug|Win32 - {AE61726D-187C-E440-BD07-2556188A6565}.Debug|Win32.ActiveCfg = Debug|Win32 - {AE61726D-187C-E440-BD07-2556188A6565}.Debug|Win32.Build.0 = Debug|Win32 - {AE61726D-187C-E440-BD07-2556188A6565}.Release|Any CPU.ActiveCfg = Release|Win32 - {AE61726D-187C-E440-BD07-2556188A6565}.Release|Mixed Platforms.ActiveCfg = Release|Win32 - {AE61726D-187C-E440-BD07-2556188A6565}.Release|Mixed Platforms.Build.0 = Release|Win32 - {AE61726D-187C-E440-BD07-2556188A6565}.Release|Win32.ActiveCfg = Release|Win32 - {AE61726D-187C-E440-BD07-2556188A6565}.Release|Win32.Build.0 = Release|Win32 {C9135098-6047-8142-B10E-D27E7F73FCB3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {C9135098-6047-8142-B10E-D27E7F73FCB3}.Debug|Any CPU.Build.0 = Debug|Any CPU {C9135098-6047-8142-B10E-D27E7F73FCB3}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU @@ -123,60 +45,41 @@ EndGlobal {C9135098-6047-8142-B10E-D27E7F73FCB3}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {C9135098-6047-8142-B10E-D27E7F73FCB3}.Release|Mixed Platforms.Build.0 = Release|Any CPU {C9135098-6047-8142-B10E-D27E7F73FCB3}.Release|Win32.ActiveCfg = Release|Any CPU - EndGlobalSection - ]] - end - - - --- --- Test multiple platforms --- - - function suite.SolutionPlatforms_OnMultiplePlatforms() - platforms { "x32", "x64" } - prepare() - - sln2005.platforms(sln) - test.capture [[ - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Debug|x64 = Debug|x64 - Release|Win32 = Release|Win32 - Release|x64 = Release|x64 - EndGlobalSection - ]] - end - - - function suite.ProjectPlatforms_OnMultiplePlatforms() - platforms { "x32", "x64" } - prepare() - - sln2005.project_platforms(sln) - test.capture [[ - GlobalSection(ProjectConfigurationPlatforms) = postSolution + {AE61726D-187C-E440-BD07-2556188A6565}.Debug|Any CPU.ActiveCfg = Debug|Win32 + {AE61726D-187C-E440-BD07-2556188A6565}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 + {AE61726D-187C-E440-BD07-2556188A6565}.Debug|Mixed Platforms.Build.0 = Debug|Win32 {AE61726D-187C-E440-BD07-2556188A6565}.Debug|Win32.ActiveCfg = Debug|Win32 {AE61726D-187C-E440-BD07-2556188A6565}.Debug|Win32.Build.0 = Debug|Win32 - {AE61726D-187C-E440-BD07-2556188A6565}.Debug|x64.ActiveCfg = Debug|x64 - {AE61726D-187C-E440-BD07-2556188A6565}.Debug|x64.Build.0 = Debug|x64 + {AE61726D-187C-E440-BD07-2556188A6565}.Release|Any CPU.ActiveCfg = Release|Win32 + {AE61726D-187C-E440-BD07-2556188A6565}.Release|Mixed Platforms.ActiveCfg = Release|Win32 + {AE61726D-187C-E440-BD07-2556188A6565}.Release|Mixed Platforms.Build.0 = Release|Win32 {AE61726D-187C-E440-BD07-2556188A6565}.Release|Win32.ActiveCfg = Release|Win32 {AE61726D-187C-E440-BD07-2556188A6565}.Release|Win32.Build.0 = Release|Win32 - {AE61726D-187C-E440-BD07-2556188A6565}.Release|x64.ActiveCfg = Release|x64 - {AE61726D-187C-E440-BD07-2556188A6565}.Release|x64.Build.0 = Release|x64 EndGlobalSection - ]] + ]] end function suite.ProjectPlatforms_OnMultiplePlatformsAndMixedModes() + _ACTION = "vs2005" platforms { "x32", "x64" } - addnetproject() - prepare() - - sln2005.project_platforms(sln) + test.createproject(sln)
+ uuid "AE61726D-187C-E440-BD07-2556188A6565"
+ prepare("C#")
test.capture [[ GlobalSection(ProjectConfigurationPlatforms) = postSolution + {C9135098-6047-8142-B10E-D27E7F73FCB3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C9135098-6047-8142-B10E-D27E7F73FCB3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C9135098-6047-8142-B10E-D27E7F73FCB3}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {C9135098-6047-8142-B10E-D27E7F73FCB3}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {C9135098-6047-8142-B10E-D27E7F73FCB3}.Debug|Win32.ActiveCfg = Debug|Any CPU + {C9135098-6047-8142-B10E-D27E7F73FCB3}.Debug|x64.ActiveCfg = Debug|Any CPU + {C9135098-6047-8142-B10E-D27E7F73FCB3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C9135098-6047-8142-B10E-D27E7F73FCB3}.Release|Any CPU.Build.0 = Release|Any CPU + {C9135098-6047-8142-B10E-D27E7F73FCB3}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {C9135098-6047-8142-B10E-D27E7F73FCB3}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {C9135098-6047-8142-B10E-D27E7F73FCB3}.Release|Win32.ActiveCfg = Release|Any CPU + {C9135098-6047-8142-B10E-D27E7F73FCB3}.Release|x64.ActiveCfg = Release|Any CPU {AE61726D-187C-E440-BD07-2556188A6565}.Debug|Any CPU.ActiveCfg = Debug|Win32 {AE61726D-187C-E440-BD07-2556188A6565}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 {AE61726D-187C-E440-BD07-2556188A6565}.Debug|Mixed Platforms.Build.0 = Debug|Win32 @@ -191,52 +94,6 @@ EndGlobal {AE61726D-187C-E440-BD07-2556188A6565}.Release|Win32.Build.0 = Release|Win32 {AE61726D-187C-E440-BD07-2556188A6565}.Release|x64.ActiveCfg = Release|x64 {AE61726D-187C-E440-BD07-2556188A6565}.Release|x64.Build.0 = Release|x64 - {C9135098-6047-8142-B10E-D27E7F73FCB3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C9135098-6047-8142-B10E-D27E7F73FCB3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C9135098-6047-8142-B10E-D27E7F73FCB3}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {C9135098-6047-8142-B10E-D27E7F73FCB3}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {C9135098-6047-8142-B10E-D27E7F73FCB3}.Debug|Win32.ActiveCfg = Debug|Any CPU - {C9135098-6047-8142-B10E-D27E7F73FCB3}.Debug|x64.ActiveCfg = Debug|Any CPU - {C9135098-6047-8142-B10E-D27E7F73FCB3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C9135098-6047-8142-B10E-D27E7F73FCB3}.Release|Any CPU.Build.0 = Release|Any CPU - {C9135098-6047-8142-B10E-D27E7F73FCB3}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {C9135098-6047-8142-B10E-D27E7F73FCB3}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {C9135098-6047-8142-B10E-D27E7F73FCB3}.Release|Win32.ActiveCfg = Release|Any CPU - {C9135098-6047-8142-B10E-D27E7F73FCB3}.Release|x64.ActiveCfg = Release|Any CPU - EndGlobalSection - ]] - end - - --- --- Test PS3 support --- - - function suite.SolutionPlatforms_OnPS3() - platforms { "PS3" } - prepare() - - sln2005.platforms(sln) - test.capture [[ - GlobalSection(SolutionConfigurationPlatforms) = preSolution - PS3 Debug|Win32 = PS3 Debug|Win32 - PS3 Release|Win32 = PS3 Release|Win32 - EndGlobalSection - ]] - end - - - function suite.ProjectPlatforms_OnPS3() - platforms { "PS3" } - prepare() - - sln2005.project_platforms(sln) - test.capture [[ - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {AE61726D-187C-E440-BD07-2556188A6565}.PS3 Debug|Win32.ActiveCfg = PS3 Debug|Win32 - {AE61726D-187C-E440-BD07-2556188A6565}.PS3 Debug|Win32.Build.0 = PS3 Debug|Win32 - {AE61726D-187C-E440-BD07-2556188A6565}.PS3 Release|Win32.ActiveCfg = PS3 Release|Win32 - {AE61726D-187C-E440-BD07-2556188A6565}.PS3 Release|Win32.Build.0 = PS3 Release|Win32 EndGlobalSection ]] end diff --git a/tests/actions/vstudio/sln2005/projects.lua b/tests/actions/vstudio/sln2005/projects.lua new file mode 100755 index 0000000..5aacafb --- /dev/null +++ b/tests/actions/vstudio/sln2005/projects.lua @@ -0,0 +1,67 @@ +-- +-- tests/actions/vstudio/sln2005/projects.lua +-- Validate generation of Visual Studio 2005+ solution project entries. +-- Copyright (c) 2009-2011 Jason Perkins and the Premake project +-- + + T.vstudio_sln2005_projects = { } + local suite = T.vstudio_sln2005_projects + local sln2005 = premake.vstudio.sln2005 + + +-- +-- Setup +-- + + local sln, prj + + function suite.setup() + _ACTION = "vs2005" + sln = test.createsolution() + uuid "AE61726D-187C-E440-BD07-2556188A6565" + end + + local function prepare() + premake.buildconfigs() + prj = premake.solution.getproject(sln, 1) + sln2005.project(prj) + end + + +-- +-- C/C++ project reference tests +-- + + function suite.On2005_CppProject() + _ACTION = "vs2005" + prepare() + test.capture [[ +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MyProject", "MyProject.vcproj", "{AE61726D-187C-E440-BD07-2556188A6565}" +EndProject + ]] + end + + + function suite.On2010_CppProject() + _ACTION = "vs2010" + prepare() + test.capture [[ +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MyProject", "MyProject.vcxproj", "{AE61726D-187C-E440-BD07-2556188A6565}" +EndProject + ]] + end + + +-- +-- C# project reference tests +-- + + function suite.On2005_CsProject() + _ACTION = "vs2005" + language "C#" + prepare() + test.capture [[ +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MyProject", "MyProject.csproj", "{AE61726D-187C-E440-BD07-2556188A6565}" +EndProject + ]] + end diff --git a/tests/actions/xcode/test_xcode_dependencies.lua b/tests/actions/xcode/test_xcode_dependencies.lua index c9f1c4e..e4f0926 100644 --- a/tests/actions/xcode/test_xcode_dependencies.lua +++ b/tests/actions/xcode/test_xcode_dependencies.lua @@ -164,7 +164,6 @@ function suite.PBXGroup_ListsDependencies() prepare() xcode.PBXGroup(tr) --- test.print(io.endcapture()) test.capture [[ /* Begin PBXGroup section */ [MyProject] /* MyProject */ = { diff --git a/tests/premake4.lua b/tests/premake4.lua index 48dd459..cef6297 100644 --- a/tests/premake4.lua +++ b/tests/premake4.lua @@ -62,10 +62,6 @@ -- Visual Studio tests dofile("test_vs2002_sln.lua") dofile("test_vs2003_sln.lua") - dofile("test_vs2005_sln.lua") - dofile("test_vs2008_sln.lua") - dofile("test_vs2010_sln.lua") - dofile("actions/vstudio/test_vs2005_csproj.lua") dofile("actions/vstudio/test_vs200x_vcproj.lua") dofile("actions/vstudio/test_vs200x_vcproj_linker.lua") dofile("actions/vstudio/test_vs2010_vcxproj.lua") @@ -73,8 +69,25 @@ dofile("actions/vstudio/test_vs2010_links.lua") dofile("actions/vstudio/test_vs2010_filters.lua") dofile("actions/vstudio/test_vs2010_project_kinds.lua") + + -- Visual Studio 2002-2003 C# projects dofile("actions/vstudio/cs2002/files.lua") + + -- Visual Studio 2005-2010 C# projects dofile("actions/vstudio/cs2005/files.lua") + dofile("actions/vstudio/cs2005/projectelement.lua") + dofile("actions/vstudio/cs2005/projectsettings.lua") + dofile("actions/vstudio/cs2005/propertygroup.lua") + + -- Visual Studio 2005-2010 solutions + dofile("actions/vstudio/sln2005/dependencies.lua") + dofile("actions/vstudio/sln2005/header.lua") + dofile("actions/vstudio/sln2005/layout.lua") + dofile("actions/vstudio/sln2005/platforms.lua") + dofile("actions/vstudio/sln2005/projectplatforms.lua") + dofile("actions/vstudio/sln2005/projects.lua") + + -- Visual Studio 2002-2008 C/++ projects dofile("actions/vstudio/vc200x/files.lua") -- Makefile tests diff --git a/tests/test_vs2010_sln.lua b/tests/test_vs2010_sln.lua deleted file mode 100644 index a7ed582..0000000 --- a/tests/test_vs2010_sln.lua +++ /dev/null @@ -1,116 +0,0 @@ - T.vs2010_sln = { } - -local vs_magic_cpp_build_tool_id = "8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942" -local constant_uuid = "AE61726D-187C-E440-BD07-2556188A6565" -local constant_project_name = "MyProject" --- --- Configure a solution for testing --- - - local sln - function T.vs2010_sln.setup() - _ACTION = "vs2010" - - sln = solution "MySolution" - configurations { "Debug", "Release" } - platforms {} - - prj = project(constant_project_name) - language "C++" - kind "ConsoleApp" - uuid(constant_uuid) - - premake.buildconfigs() - end - - local function escape_id(str) - return string.gsub(str,"%-+","%%%-") - end - - local function assert_has_project(buffer,uid,name,ext) - test.string_contains(buffer,"Project(\"{"..escape_id(vs_magic_cpp_build_tool_id).."}\") = \""..name.."\", \""..name.."."..ext.."\", \"{"..escape_id(uid).."}\"") - end - - - - local function assert_find_uuid(buffer,id) - test.string_contains(buffer,escape_id(id)) - end - - local function get_buffer() - premake.vs_generic_solution(sln) - buffer = io.endcapture() - return buffer - end - - function T.vs2010_sln.action_formatVersionis11() - local buffer = get_buffer() - test.string_contains(buffer,'Format Version 11.00') - end - - function T.vs2010_sln.action_vsIs2010() - local buffer = get_buffer() - test.string_contains(buffer,'# Visual Studio 2010') - end - - function T.vs2010_sln.action_hasProjectScope() - local buffer = get_buffer() - test.string_contains(buffer,"Project(.*)EndProject") - end - - function T.vs2010_sln.containsVsCppMagicId() - local buffer = get_buffer() - assert_find_uuid(buffer,vs_magic_cpp_build_tool_id) - end - - function T.vs2010_sln.action_findMyProjectID() - local buffer = get_buffer() - test.string_contains(buffer,escape_id(constant_uuid)) - end - - function T.vs2010_sln.action_findsExtension() - local buffer = get_buffer() - test.string_contains(buffer,".vcxproj") - end - - function T.vs2010_sln.action_hasGlobalStartBlock() - local buffer = get_buffer() - test.string_contains(buffer,"Global") - end - - function T.vs2010_sln.action_hasGlobalEndBlock() - local buffer = get_buffer() - test.string_contains(buffer,"EndGlobal") - end - - function T.vs2010_sln.BasicLayout() - premake.vs_generic_solution(sln) - test.capture ('\239\187\191' .. [[ - -Microsoft Visual Studio Solution File, Format Version 11.00 -# Visual Studio 2010 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MyProject", "MyProject.vcxproj", "{AE61726D-187C-E440-BD07-2556188A6565}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {AE61726D-187C-E440-BD07-2556188A6565}.Debug|Win32.ActiveCfg = Debug|Win32 - {AE61726D-187C-E440-BD07-2556188A6565}.Debug|Win32.Build.0 = Debug|Win32 - {AE61726D-187C-E440-BD07-2556188A6565}.Release|Win32.ActiveCfg = Release|Win32 - {AE61726D-187C-E440-BD07-2556188A6565}.Release|Win32.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal - ]]) - end - - - - - - |