premake/tests/project/test_getconfig.lua
Tom van Dijck 5f589ad5a6 replaced:
os.get() -> os.target()
os.is() -> os.istarget()
_OS -> _TARGET_OS

added:
os.current()
os.iscurrent()
2017-04-24 13:01:31 -07:00

114 lines
2.4 KiB
Lua
Executable File

--
-- tests/project/test_getconfig.lua
-- Test the project object configuration accessor.
-- Copyright (c) 2011-2014 Jason Perkins and the Premake project
--
local suite = test.declare("project_getconfig")
--
-- Setup and teardown
--
local wks, prj, cfg
function suite.setup()
wks = workspace("MyWorkspace")
configurations { "Debug", "Release" }
end
local function prepare(buildcfg, platform)
prj = wks.projects[1]
cfg = test.getconfig(prj, buildcfg or "Debug", platform)
end
--
-- If the target system is not specified, the current operating environment
-- should be used as the default.
--
function suite.usesCurrentOS_onNoSystemSpecified()
_TARGET_OS = "linux"
project ("MyProject")
filter { "system: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.
--
function suite.actionOverridesOS()
_TARGET_OS = "linux"
_ACTION = "vs2005"
project ("MyProject")
filter { "system: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.
--
function suite.usesCfgSystem()
_TARGET_OS = "linux"
_ACTION = "vs2005"
project ("MyProject")
system "macosx"
filter { "system:macosx" }
defines { "correct" }
prepare()
test.isequal("correct", cfg.defines[1])
end
--
-- The current action should be taken into account.
--
function suite.appliesActionToFilters()
_ACTION = "vs2005"
project ("MyProject")
filter { "action:vs2005" }
defines { "correct" }
prepare()
test.isequal("correct", cfg.defines[1])
end
--
-- If the platform matches an architecture identifier, and none was set,
-- the configuration's architecture should be set to match.
--
function suite.setsArchitecture_onMatchingPlatform()
platforms { "x86", "x86_64" }
project ("MyProject")
prepare("Debug", "x86")
test.isequal("x86", cfg.architecture)
end
--
-- If the platform matches an architecture, it should not modify any
-- currently set value.
--
function suite.doesNotOverride_onMatchingPlatform()
platforms { "x86", "x64" }
project ("MyProject")
architecture "x86_64"
prepare("Debug", "x86")
test.isequal("x86_64", cfg.architecture)
end