| // Copyright 2018 The Tulsi Authors. All rights reserved. |
| // |
| // Licensed under the Apache License, Version 2.0 (the "License"); |
| // you may not use this file except in compliance with the License. |
| // You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, software |
| // distributed under the License is distributed on an "AS IS" BASIS, |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| // See the License for the specific language governing permissions and |
| // limitations under the License. |
| |
| import XCTest |
| |
| @testable import TulsiGenerator |
| |
| class BazelSettingsProviderTests: XCTestCase { |
| let bazel = "/path/to/bazel" |
| let bazelExecRoot = "__MOCK_EXEC_ROOT__" |
| let features = Set<BazelSettingFeature>() |
| let buildRuleEntries = Set<RuleEntry>() |
| let bazelSettingsProvider = BazelSettingsProvider(universalFlags: BazelFlags()) |
| |
| func testBazelBuildSettingsProviderForWatchOS() { |
| let options = TulsiOptionSet() |
| let settings = bazelSettingsProvider.buildSettings( |
| bazel: bazel, |
| bazelExecRoot: bazelExecRoot, |
| options: options, |
| features: features, |
| buildRuleEntries: buildRuleEntries) |
| |
| let expectedFlag = "--watchos_cpus=armv7k,arm64_32" |
| let expectedIdentifiers = Set(["watchos_armv7k", "watchos_arm64_32", "ios_arm64", "ios_arm64e"]) |
| // Check that both watchos flags are set for both architectures. |
| for (identifier, flags) in settings.platformConfigurationFlags { |
| if expectedIdentifiers.contains(identifier) { |
| XCTAssert( |
| flags.contains(expectedFlag), |
| "\(expectedFlag) flag was not set for \(identifier).") |
| } else { |
| XCTAssert( |
| !flags.contains(expectedFlag), |
| "\(expectedFlag) flag was unexpectedly set for \(identifier).") |
| } |
| } |
| } |
| } |