in src/TulsiGeneratorTests/PBXTargetGeneratorTests.swift [2342:2510]
func testGenerateMacOSTarget() {
let appTargetName = "targetName"
let appBuildPath = "test/app"
let appBuildTarget = "\(appBuildPath):\(appTargetName)"
let macCLIAppTargetName = "macCLIAppTargetName"
let macCLIAppBuildPath = "test/maclicapp"
let macCLIAppBuildTarget = "\(macCLIAppBuildPath):\(macCLIAppTargetName)"
let macAppExtTargetName = "macExtTargetName"
let macAppExtBuildPath = "test/macappext"
let macAppExtBuildTarget = "\(macAppExtBuildPath):\(macAppExtTargetName)"
let appBundleID = "appBundleID"
let macCLIAppBundleID = "macCLIAppBundleID"
let macAppExtBundleID = "macAppExtBundleID"
let rules = Set([
makeTestRuleEntry(
appBuildTarget,
type: "macos_application",
extensions: Set([BuildLabel(macAppExtBuildTarget)]),
bundleID: appBundleID,
productType: .Application,
platformType: "macos",
osDeploymentTarget: "10.13"),
makeTestRuleEntry(
macAppExtBuildTarget,
type: "macos_extension",
bundleID: macAppExtBundleID,
productType: .AppExtension,
platformType: "macos",
osDeploymentTarget: "10.13"),
makeTestRuleEntry(
macCLIAppBuildTarget,
type: "macos_command_line_application",
bundleID: macCLIAppBundleID,
productType: .Tool,
platformType: "macos",
osDeploymentTarget: "10.13"),
])
do {
_ = try targetGenerator.generateBuildTargetsForRuleEntries(
rules, ruleEntryMap: RuleEntryMap(), pathFilters: pathFilters)
} catch let e as NSError {
XCTFail("Failed to generate build targets with error \(e.localizedDescription)")
}
let topLevelConfigs = project.buildConfigurationList.buildConfigurations
XCTAssertEqual(topLevelConfigs.count, 0)
let targets = project.targetByName
XCTAssertEqual(targets.count, 3)
do {
let expectedBuildSettings = [
"ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME": "Stub Launch Image",
"BAZEL_TARGET": appBuildTarget,
"DEBUG_INFORMATION_FORMAT": "dwarf",
"INFOPLIST_FILE": stubPlistPaths.defaultStub,
"PRODUCT_BUNDLE_IDENTIFIER": appBundleID,
"PRODUCT_NAME": appTargetName,
"SDKROOT": "macosx",
"MACOSX_DEPLOYMENT_TARGET": "10.13",
"TULSI_BUILD_PATH": appBuildPath,
]
let expectedTarget = TargetDefinition(
name: appTargetName,
buildConfigurations: [
BuildConfigurationDefinition(
name: "Debug",
expectedBuildSettings: debugBuildSettingsFromSettings(expectedBuildSettings)
),
BuildConfigurationDefinition(
name: "Release",
expectedBuildSettings: releaseBuildSettingsFromSettings(expectedBuildSettings)
),
BuildConfigurationDefinition(
name: "__TulsiTestRunner_Debug",
expectedBuildSettings: debugTestRunnerBuildSettingsFromSettings(expectedBuildSettings)
),
BuildConfigurationDefinition(
name: "__TulsiTestRunner_Release",
expectedBuildSettings: releaseTestRunnerBuildSettingsFromSettings(expectedBuildSettings)
),
],
expectedBuildPhases: [
BazelShellScriptBuildPhaseDefinition(bazelPath: bazelPath, buildTarget: appBuildTarget),
]
)
assertTarget(expectedTarget, inTargets: targets)
}
do {
let expectedBuildSettings = [
"ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME": "Stub Launch Image",
"BAZEL_TARGET": macAppExtBuildTarget,
"DEBUG_INFORMATION_FORMAT": "dwarf",
"INFOPLIST_FILE": "${PROJECT_ROOT}/asd/Stub_test-macappext-macExtTargetName.plist",
"PRODUCT_BUNDLE_IDENTIFIER": macAppExtBundleID,
"PRODUCT_NAME": macAppExtTargetName,
"SDKROOT": "macosx",
"MACOSX_DEPLOYMENT_TARGET": "10.13",
"TULSI_BUILD_PATH": macAppExtBuildPath,
]
let expectedTarget = TargetDefinition(
name: macAppExtTargetName,
buildConfigurations: [
BuildConfigurationDefinition(
name: "Debug",
expectedBuildSettings: debugBuildSettingsFromSettings(expectedBuildSettings)
),
BuildConfigurationDefinition(
name: "Release",
expectedBuildSettings: releaseBuildSettingsFromSettings(expectedBuildSettings)
),
BuildConfigurationDefinition(
name: "__TulsiTestRunner_Debug",
expectedBuildSettings: debugTestRunnerBuildSettingsFromSettings(expectedBuildSettings)
),
BuildConfigurationDefinition(
name: "__TulsiTestRunner_Release",
expectedBuildSettings: releaseTestRunnerBuildSettingsFromSettings(expectedBuildSettings)
),
],
expectedBuildPhases: [
BazelShellScriptBuildPhaseDefinition(
bazelPath: bazelPath, buildTarget: macAppExtBuildTarget),
]
)
assertTarget(expectedTarget, inTargets: targets)
}
do {
let expectedBuildSettings = [
"ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME": "Stub Launch Image",
"BAZEL_TARGET": macCLIAppBuildTarget,
"DEBUG_INFORMATION_FORMAT": "dwarf",
"INFOPLIST_FILE": "TestInfo.plist",
"PRODUCT_BUNDLE_IDENTIFIER": macCLIAppBundleID,
"PRODUCT_NAME": macCLIAppTargetName,
"SDKROOT": "macosx",
"MACOSX_DEPLOYMENT_TARGET": "10.13",
"TULSI_BUILD_PATH": macCLIAppBuildPath,
]
let expectedTarget = TargetDefinition(
name: macCLIAppTargetName,
buildConfigurations: [
BuildConfigurationDefinition(
name: "Debug",
expectedBuildSettings: debugBuildSettingsFromSettings(expectedBuildSettings)
),
BuildConfigurationDefinition(
name: "Release",
expectedBuildSettings: releaseBuildSettingsFromSettings(expectedBuildSettings)
),
BuildConfigurationDefinition(
name: "__TulsiTestRunner_Debug",
expectedBuildSettings: debugTestRunnerBuildSettingsFromSettings(expectedBuildSettings)
),
BuildConfigurationDefinition(
name: "__TulsiTestRunner_Release",
expectedBuildSettings: releaseTestRunnerBuildSettingsFromSettings(expectedBuildSettings)
),
],
expectedBuildPhases: [
BazelShellScriptBuildPhaseDefinition(
bazelPath: bazelPath, buildTarget: macCLIAppBuildTarget),
]
)
assertTarget(expectedTarget, inTargets: targets)
}
}