Skip to content

Commit 9ede8a8

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 7ba0eb6 commit 9ede8a8

File tree

1 file changed

+23
-9
lines changed

1 file changed

+23
-9
lines changed

Tests/BuildTests/ClangTargetBuildDescriptionTests.swift

+23-9
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,20 @@ import Basics
1414
@testable import Build
1515
import PackageGraph
1616
import PackageModel
17+
import SPMBuildCore
1718
import SPMTestSupport
1819
import XCTest
1920

2021
final class ClangTargetBuildDescriptionTests: XCTestCase {
2122
func testClangIndexStorePath() throws {
22-
let targetDescription = try makeTargetBuildDescription()
23+
let targetDescription = try makeTargetBuildDescription("test")
2324
XCTAssertTrue(try targetDescription.basicArguments().contains("-index-store-path"))
25+
XCTAssertFalse(try targetDescription.basicArguments().contains("-w"))
26+
}
27+
28+
func testWarningSuppressionForRemotePackages() throws {
29+
let targetDescription = try makeTargetBuildDescription("test-warning-supression", usesSourceControl: true)
30+
XCTAssertTrue(try targetDescription.basicArguments().contains("-w"))
2431
}
2532

2633
private func makeClangTarget() throws -> ClangTarget {
@@ -47,18 +54,25 @@ final class ClangTargetBuildDescriptionTests: XCTestCase {
4754
)
4855
}
4956

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

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

5973
let target = try makeResolvedTarget()
6074

61-
let package = Package(identity: .plain("dummy"),
75+
let package = Package(identity: .plain(packageName),
6276
manifest: manifest,
6377
path: .root,
6478
targets: [target.underlying],
@@ -77,7 +91,7 @@ final class ClangTargetBuildDescriptionTests: XCTestCase {
7791
platformVersionProvider: .init(implementation: .minimumDeploymentTargetDefault)),
7892
target: target,
7993
toolsVersion: .current,
80-
buildParameters: mockBuildParameters(
94+
buildParameters: buildParameters ?? mockBuildParameters(
8195
toolchain: try UserToolchain.default,
8296
indexStoreMode: .on
8397
),

0 commit comments

Comments
 (0)