premake/tests/workspace/test_objdirs.lua

87 lines
1.9 KiB
Lua
Raw Normal View History

--
-- tests/workspace/test_objdirs.lua
-- Test the workspace unique objects directory building.
-- Copyright (c) 2012-2015 Jason Perkins and the Premake project
--
2017-04-25 05:44:13 +00:00
local p = premake
local suite = test.declare("workspace_objdir")
--
-- Setup and teardown
--
2015-08-28 20:16:14 +00:00
local wks
function suite.setup()
2017-04-25 05:44:13 +00:00
p.action.set("test")
wks = workspace("MyWorkspace")
system "macosx"
end
local function result()
2015-08-28 20:16:14 +00:00
local platforms = wks.platforms or {}
local prj = project("MyProject")
local cfg = test.getconfig(prj, "Debug", platforms[1])
2017-04-25 05:44:13 +00:00
return p.project.getrelative(cfg.project, cfg.objdir)
end
--
-- Objects directory should "obj" by default.
--
function suite.directoryIsObj_onNoValueSet()
configurations { "Debug" }
test.isequal("obj", result())
end
--
-- If a conflict occurs between platforms, the platform names should
-- be used to make unique.
--
function suite.directoryIncludesPlatform_onPlatformConflict()
configurations { "Debug" }
platforms { "x86", "x86_64" }
test.isequal("obj/x86", result())
end
--
-- If a conflict occurs between build configurations, the build
-- configuration names should be used to make unique.
--
function suite.directoryIncludesBuildCfg_onBuildCfgConflict()
configurations { "Debug", "Release" }
test.isequal("obj/Debug", result())
end
--
-- If a conflict occurs between both build configurations and platforms,
-- both should be used to make unique.
--
function suite.directoryIncludesBuildCfg_onPlatformAndBuildCfgConflict()
configurations { "Debug", "Release" }
platforms { "x86", "x86_64" }
test.isequal("obj/x86/Debug", result())
end
--
-- If a conflict occurs between projects, the project name should be
-- used to make unique.
--
function suite.directoryIncludesBuildCfg_onProjectConflict()
configurations { "Debug", "Release" }
project "MyProject2"
test.isequal("obj/Debug/MyProject", result())
end