From a438fe50885ea00b54b8e711b6c65ebecb741dc6 Mon Sep 17 00:00:00 2001 From: Jason Perkins Date: Sun, 18 Mar 2012 18:20:40 -0400 Subject: =?UTF-8?q?Patch=203505903:=20Fix=20VC2010=20project=20reference?= =?UTF-8?q?=20paths=20(Pavel=20Czerny=CC=81)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tests/actions/vstudio/vc2010/test_project_refs.lua | 78 ++++++++++++++++++++++ tests/premake4.lua | 1 + 2 files changed, 79 insertions(+) create mode 100644 tests/actions/vstudio/vc2010/test_project_refs.lua (limited to 'tests') diff --git a/tests/actions/vstudio/vc2010/test_project_refs.lua b/tests/actions/vstudio/vc2010/test_project_refs.lua new file mode 100644 index 0000000..c513b9d --- /dev/null +++ b/tests/actions/vstudio/vc2010/test_project_refs.lua @@ -0,0 +1,78 @@ +-- +-- tests/actions/vstudio/vc2010/test_project_refs.lua +-- Validate project references in Visual Studio 2010 C/C++ projects. +-- Copyright (c) 2011-2012 Jason Perkins and the Premake project +-- + + T.vstudio_vs2010_project_refs = { } + local suite = T.vstudio_vs2010_project_refs + local vc2010 = premake.vstudio.vc2010 + + +-- +-- Setup +-- + + local sln, prj + + function suite.setup() + _ACTION = "vs2010" + sln = test.createsolution() + uuid "00112233-4455-6677-8888-99AABBCCDDEE" + test.createproject(sln) + end + + local function prepare(platform) + premake.bake.buildconfigs() + prj = premake.solution.getproject(sln, 2) + vc2010.projectReferences(prj) + end + + +-- +-- If there are no sibling projects listed in links(), then the +-- entire project references item group should be skipped. +-- + + function suite.noProjectReferencesGroup_onNoSiblingReferences() + prepare() + test.isemptycapture() + end + +-- +-- If a sibling project is listed in links(), an item group should +-- be written with a reference to that sibling project. +-- + + function suite.projectReferenceAdded_onSiblingProjectLink() + links { "MyProject" } + prepare() + test.capture [[ + + + {00112233-4455-6677-8888-99AABBCCDDEE} + + + ]] + end + +-- +-- Project references should always be specified relative to the +-- project doing the referencing. +-- + + function suite.referencesAreRelative_onDifferentProjectLocation() + links { "MyProject" } + location "build/MyProject2" + project("MyProject") + location "build/MyProject" + prepare() + test.capture [[ + + + {00112233-4455-6677-8888-99AABBCCDDEE} + + + ]] + end + diff --git a/tests/premake4.lua b/tests/premake4.lua index f5a7a30..ea3a122 100644 --- a/tests/premake4.lua +++ b/tests/premake4.lua @@ -110,6 +110,7 @@ dofile("actions/vstudio/vc2010/test_links.lua") dofile("actions/vstudio/vc2010/test_mfc.lua") dofile("actions/vstudio/vc2010/test_pch.lua") + dofile("actions/vstudio/vc2010/test_project_refs.lua") -- Makefile tests dofile("actions/make/test_make_escaping.lua") -- cgit v1.2.3