Skip to content

Commit

Permalink
NFC: Use mock toolchain for swift-corelib-foundation workaround testing
Browse files Browse the repository at this point in the history
  • Loading branch information
xedin committed Mar 26, 2024
1 parent d6cfaeb commit a85039c
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 11 deletions.
6 changes: 4 additions & 2 deletions Sources/SPMTestSupport/MockBuildTestHelper.swift
Expand Up @@ -30,7 +30,7 @@ package struct MockToolchain: PackageModel.Toolchain {
package let swiftCompilerPath = AbsolutePath("/fake/path/to/swiftc")
package let includeSearchPaths = [AbsolutePath]()
package let librarySearchPaths = [AbsolutePath]()
package let swiftResourcesPath: AbsolutePath? = nil
package let swiftResourcesPath: AbsolutePath?
package let swiftStaticResourcesPath: AbsolutePath? = nil
package let isSwiftDevelopmentToolchain = false
package let sdkRootPath: AbsolutePath? = nil
Expand All @@ -51,7 +51,9 @@ package struct MockToolchain: PackageModel.Toolchain {
#endif
}

package init() {}
package init(swiftResourcesPath: AbsolutePath? = nil) {
self.swiftResourcesPath = swiftResourcesPath
}
}

extension Basics.Triple {
Expand Down
15 changes: 6 additions & 9 deletions Tests/BuildTests/ClangTargetBuildDescriptionTests.swift
Expand Up @@ -25,22 +25,19 @@ final class ClangTargetBuildDescriptionTests: XCTestCase {
}

func testSwiftCorelibsFoundationIncludeWorkaround() throws {
let macosParameters = mockBuildParameters(
toolchain: try UserToolchain.default,
targetTriple: .macOS)
let linuxParameters = mockBuildParameters(
toolchain: try UserToolchain.default,
targetTriple: .arm64Linux)
let androidParameters = mockBuildParameters(
toolchain: try UserToolchain.default,
targetTriple: .arm64Android)
let toolchain = MockToolchain(swiftResourcesPath: AbsolutePath("/fake/path/lib/swift"))

let macosParameters = mockBuildParameters(toolchain: toolchain, targetTriple: .macOS)
let linuxParameters = mockBuildParameters(toolchain: toolchain, targetTriple: .arm64Linux)
let androidParameters = mockBuildParameters(toolchain: toolchain, targetTriple: .arm64Android)

let macDescription = try makeTargetBuildDescription("swift-corelibs-foundation",
buildParameters: macosParameters)
XCTAssertFalse(try macDescription.basicArguments().contains("\(macosParameters.toolchain.swiftResourcesPath!)"))

let linuxDescription = try makeTargetBuildDescription("swift-corelibs-foundation",
buildParameters: linuxParameters)
print(try linuxDescription.basicArguments())
XCTAssertTrue(try linuxDescription.basicArguments().contains("\(linuxParameters.toolchain.swiftResourcesPath!)"))

let androidDescription = try makeTargetBuildDescription("swift-corelibs-foundation",
Expand Down

0 comments on commit a85039c

Please sign in to comment.