premake/modules/xcode/tests/test_xcode4_project.lua
Ben Ratzlaff b17b17a71d Increase determinism by using relative paths as input to xcode.newid
Update unit tests with hashcode instead of overridden xcode.newid implementation
2019-03-13 19:57:41 -07:00

112 lines
2.7 KiB
Lua

---
-- tests/actions/xcode/test_xcode4_project.lua
-- Automated test suite for Xcode project generation.
-- Copyright (c) 2011-2015 Jason Perkins and the Premake project
---
local suite = test.declare("xcode4_proj")
local p = premake
local xcode = p.modules.xcode
---------------------------------------------------------------------------
-- Setup/Teardown
---------------------------------------------------------------------------
local tr, wks
function suite.teardown()
tr = nil
end
function suite.setup()
_TARGET_OS = "macosx"
p.action.set('xcode4')
io.eol = "\n"
wks = test.createWorkspace()
end
local function prepare()
wks = p.oven.bakeWorkspace(wks)
xcode.prepareWorkspace(wks)
local prj = p.workspace.getproject(wks, 1)
tr = xcode.buildprjtree(prj)
end
---------------------------------------------------------------------------
-- xcode id generation tests
---------------------------------------------------------------------------
local function print_id(...)
_p("%s", xcode.newid(...))
end
function suite.IDGeneratorIsDeterministic()
print_id("project", "Debug")
print_id("project", "Release")
test.capture [[
B266956655B21E987082EBA6
DAC961207F1BFED291544760
]]
end
function suite.IDGeneratorIsDifferent()
print_id("project", "Debug", "file")
print_id("project", "Debug", "hello")
test.capture [[
47C6E72E5ED982604EF57D6E
8DCA12C2873014347ACB7102
]]
end
function suite.IDGeneratorSame3()
print_id("project", "Release", "file")
print_id("project", "Release", "file")
print_id("project", "Release", "file")
test.capture [[
022ECCE82854FC9A8F5BF328
022ECCE82854FC9A8F5BF328
022ECCE82854FC9A8F5BF328
]]
end
function suite.IDGeneratorMoreThanNecessary()
print_id("a", "b", "c", "d", "e", "f")
print_id("abcdef")
test.capture [[
63AEF3DD89D5238FF0DC1A1D
9F1AF6957CC5F947506A7CD5
]]
end
---------------------------------------------------------------------------
-- XCBuildConfiguration_Project tests
---------------------------------------------------------------------------
function suite.XCBuildConfigurationProject_OnSymbols()
symbols "On"
prepare()
xcode.XCBuildConfiguration_Project(tr, tr.configs[1])
test.capture [[
A14350AC4595EE5E57CE36EC /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(NATIVE_ARCH_ACTUAL)";
CONFIGURATION_BUILD_DIR = "$(SYMROOT)";
CONFIGURATION_TEMP_DIR = "$(OBJROOT)";
COPY_PHASE_STRIP = NO;
GCC_ENABLE_FIX_AND_CONTINUE = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
OBJROOT = obj/Debug;
ONLY_ACTIVE_ARCH = YES;
SYMROOT = bin/Debug;
};
name = Debug;
};
]]
end