2012-01-22 17:19:43 +00:00
|
|
|
--
|
|
|
|
-- tests/project/test_getconfig.lua
|
|
|
|
-- Test the project object configuration accessor.
|
|
|
|
-- Copyright (c) 2011-2012 Jason Perkins and the Premake project
|
|
|
|
--
|
|
|
|
|
|
|
|
T.project_getconfig = { }
|
|
|
|
local suite = T.project_getconfig
|
|
|
|
local premake = premake5
|
|
|
|
|
|
|
|
|
|
|
|
--
|
|
|
|
-- Setup and teardown
|
|
|
|
--
|
|
|
|
|
|
|
|
local sln, prj, cfg
|
|
|
|
|
|
|
|
function suite.setup()
|
|
|
|
sln, prj = test.createsolution()
|
|
|
|
end
|
|
|
|
|
|
|
|
local function prepare()
|
2012-04-25 23:10:37 +00:00
|
|
|
cfg = premake.project.getconfig(prj, "Debug")
|
2012-01-22 17:19:43 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
--
|
|
|
|
-- If the target system is not specified, the current operating environment
|
|
|
|
-- should be used as the default.
|
|
|
|
--
|
|
|
|
|
|
|
|
function suite.usesCurrentOS_onNoSystemSpecified()
|
|
|
|
_OS = "linux"
|
|
|
|
configuration { "linux" }
|
|
|
|
defines { "correct" }
|
|
|
|
prepare()
|
|
|
|
test.isequal("correct", cfg.defines[1])
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
--
|
|
|
|
-- If the current action specifies a target operating environment (i.e.
|
|
|
|
-- Visual Studio targets Windows), that should override the current
|
|
|
|
-- operating environment.
|
|
|
|
--
|
|
|
|
|
2012-04-25 23:10:37 +00:00
|
|
|
function suite.actionOverridesOS()
|
2012-01-22 17:19:43 +00:00
|
|
|
_OS = "linux"
|
|
|
|
_ACTION = "vs2005"
|
|
|
|
configuration { "windows" }
|
|
|
|
defines { "correct" }
|
|
|
|
prepare()
|
|
|
|
test.isequal("correct", cfg.defines[1])
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
--
|
|
|
|
-- If a target system is specified in a configuration, it should override
|
|
|
|
-- the current operating environment, as well as the tool's target OS.
|
|
|
|
--
|
|
|
|
|
2012-04-25 23:10:37 +00:00
|
|
|
function suite.usesCfgSystem()
|
2012-01-22 17:19:43 +00:00
|
|
|
_OS = "linux"
|
|
|
|
_ACTION = "vs2005"
|
|
|
|
system "macosx"
|
|
|
|
configuration { "macosx" }
|
|
|
|
defines { "correct" }
|
|
|
|
prepare()
|
|
|
|
test.isequal("correct", cfg.defines[1])
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
--
|
|
|
|
-- The current action should be taken into account.
|
|
|
|
--
|
|
|
|
|
2012-04-25 23:10:37 +00:00
|
|
|
function suite.appliesActionToFilters()
|
2012-01-22 17:19:43 +00:00
|
|
|
_ACTION = "vs2005"
|
|
|
|
configuration { "vs2005" }
|
|
|
|
defines { "correct" }
|
|
|
|
prepare()
|
|
|
|
test.isequal("correct", cfg.defines[1])
|
|
|
|
end
|