premake/tests/project/test_getconfig.lua
Jason Perkins 17f1843c71 Finish renaming architectures away from x32/x64
A number of tests were relying on the fact that x32/x64 were being converted implicitly to x86/x86_64. If/when we retire those symbols, all of those tests would break. Renamed them now to avoid having to sort it out later. Also fixed up comments to keep everything consistent.
2015-04-13 18:27:11 -04: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 sln, prj, cfg
function suite.setup()
sln = solution("MySolution")
configurations { "Debug", "Release" }
end
local function prepare(buildcfg, platform)
prj = sln.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()
_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()
_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()
_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