Skip to content

Commit 71af9c8

Browse files
committed
NFC: Add a test-case for -w in clang arguments for "remote" packages
Remote in this case means local or remote source control or registry. (cherry picked from commit 08efdf5)
1 parent 09bef39 commit 71af9c8

File tree

1 file changed

+22
-9
lines changed

1 file changed

+22
-9
lines changed

Tests/BuildTests/ClangTargetBuildDescriptionTests.swift

Lines changed: 22 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,14 @@ import XCTest
1919

2020
final class ClangTargetBuildDescriptionTests: XCTestCase {
2121
func testClangIndexStorePath() throws {
22-
let targetDescription = try makeTargetBuildDescription()
22+
let targetDescription = try makeTargetBuildDescription("test")
2323
XCTAssertTrue(try targetDescription.basicArguments().contains("-index-store-path"))
24+
XCTAssertFalse(try targetDescription.basicArguments().contains("-w"))
25+
}
26+
27+
func testWarningSuppressionForRemotePackages() throws {
28+
let targetDescription = try makeTargetBuildDescription("test-warning-supression", usesSourceControl: true)
29+
XCTAssertTrue(try targetDescription.basicArguments().contains("-w"))
2430
}
2531

2632
private func makeClangTarget() throws -> ClangTarget {
@@ -47,18 +53,25 @@ final class ClangTargetBuildDescriptionTests: XCTestCase {
4753
)
4854
}
4955

50-
private func makeTargetBuildDescription() throws -> ClangTargetBuildDescription {
56+
private func makeTargetBuildDescription(_ packageName: String,
57+
buildParameters: BuildParameters? = nil,
58+
usesSourceControl: Bool = false) throws -> ClangTargetBuildDescription {
5159
let observability = ObservabilitySystem.makeForTesting(verbose: false)
5260

53-
let manifest = Manifest.createRootManifest(
54-
displayName: "dummy",
55-
toolsVersion: .v5,
56-
targets: [try TargetDescription(name: "dummy")]
57-
)
61+
let manifest: Manifest
62+
if usesSourceControl {
63+
manifest = Manifest.createLocalSourceControlManifest(
64+
displayName: packageName, path: AbsolutePath("/\(packageName)"))
65+
} else {
66+
manifest = Manifest.createRootManifest(
67+
displayName: packageName,
68+
toolsVersion: .v5,
69+
targets: [try TargetDescription(name: "dummy")])
70+
}
5871

5972
let target = try makeResolvedTarget()
6073

61-
let package = Package(identity: .plain("dummy"),
74+
let package = Package(identity: .plain(packageName),
6275
manifest: manifest,
6376
path: .root,
6477
targets: [target.underlying],
@@ -77,7 +90,7 @@ final class ClangTargetBuildDescriptionTests: XCTestCase {
7790
platformVersionProvider: .init(implementation: .minimumDeploymentTargetDefault)),
7891
target: target,
7992
toolsVersion: .current,
80-
buildParameters: mockBuildParameters(
93+
buildParameters: buildParameters ?? mockBuildParameters(
8194
toolchain: try UserToolchain.default,
8295
indexStoreMode: .on
8396
),

0 commit comments

Comments
 (0)