Skip to content

Commit 73103c6

Browse files
committed
Unblock package bots by making tests more resilient to environment changes.
- Pass down SDK paths to explicit module tests - Remove "fake" stdlib files, making sure dependency scanning tests rely on the real ones - Gate a couple of tests on frontend flag availability
1 parent dda5e55 commit 73103c6

File tree

4 files changed

+31
-13
lines changed

4 files changed

+31
-13
lines changed

TestInputs/ExplicitModuleBuilds/Swift/Swift.swiftinterface

Lines changed: 0 additions & 4 deletions
This file was deleted.

TestInputs/ExplicitModuleBuilds/Swift/SwiftOnoneSupport.swiftinterface

Lines changed: 0 additions & 4 deletions
This file was deleted.

Tests/SwiftDriverTests/ExplicitModuleBuildTests.swift

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -327,12 +327,13 @@ final class ExplicitModuleBuildTests: XCTestCase {
327327
let testInputsPath = packageRootPath + "/TestInputs"
328328
let cHeadersPath : String = testInputsPath + "/ExplicitModuleBuilds/CHeaders"
329329
let swiftModuleInterfacesPath : String = testInputsPath + "/ExplicitModuleBuilds/Swift"
330+
let sdkArgumentsForTesting = (try? Driver.sdkArgumentsForTesting()) ?? []
330331
var driver = try Driver(args: ["swiftc",
331332
"-target", "x86_64-apple-macosx11.0",
332333
"-I", cHeadersPath,
333334
"-I", swiftModuleInterfacesPath,
334335
"-experimental-explicit-module-build",
335-
main.pathString])
336+
main.pathString] + sdkArgumentsForTesting)
336337

337338
let jobs = try driver.planBuild()
338339
// Figure out which Triples to use.
@@ -346,8 +347,10 @@ final class ExplicitModuleBuildTests: XCTestCase {
346347

347348
let pcmArgsCurrent = mainModuleSwiftDetails.extraPcmArgs
348349
var pcmArgs9 = ["-Xcc","-target","-Xcc","x86_64-apple-macosx10.9"]
350+
var pcmArgs15 = ["-Xcc","-target","-Xcc","x86_64-apple-macosx10.15"]
349351
if driver.targetTriple.isDarwin {
350352
pcmArgs9.append(contentsOf: ["-Xcc", "-fapinotes-swift-version=5"])
353+
pcmArgs15.append(contentsOf: ["-Xcc", "-fapinotes-swift-version=5"])
351354
}
352355
let pcmFileEncoder = { (moduleInfo: ModuleInfo, hashParts: [String]) -> VirtualPath.Handle in
353356
try! driver.explicitDependencyBuildPlanner!.targetEncodedClangModuleFilePath(for: moduleInfo,
@@ -436,6 +439,11 @@ final class ExplicitModuleBuildTests: XCTestCase {
436439
try checkExplicitModuleBuildJob(job: job, pcmArgs: pcmArgs9, moduleId: .clang("SwiftShims"),
437440
dependencyOracle: dependencyOracle,
438441
pcmFileEncoder: pcmFileEncoder)
442+
case .relative(pcmArgsEncodedRelativeModulePath(for: "SwiftShims", with: pcmArgs15,
443+
pcmModuleNameEncoder: pcmModuleNameEncoder)):
444+
try checkExplicitModuleBuildJob(job: job, pcmArgs: pcmArgs15, moduleId: .clang("SwiftShims"),
445+
dependencyOracle: dependencyOracle,
446+
pcmFileEncoder: pcmFileEncoder)
439447
case .relative(pcmArgsEncodedRelativeModulePath(for: "SwiftShims", with: pcmArgsCurrent,
440448
pcmModuleNameEncoder: pcmModuleNameEncoder)):
441449
try checkExplicitModuleBuildJob(job: job, pcmArgs: pcmArgsCurrent, moduleId: .clang("SwiftShims"),
@@ -473,12 +481,13 @@ final class ExplicitModuleBuildTests: XCTestCase {
473481
let testInputsPath = packageRootPath + "/TestInputs"
474482
let cHeadersPath : String = testInputsPath + "/ExplicitModuleBuilds/CHeaders"
475483
let swiftModuleInterfacesPath : String = testInputsPath + "/ExplicitModuleBuilds/Swift"
484+
let sdkArgumentsForTesting = (try? Driver.sdkArgumentsForTesting()) ?? []
476485
var driver = try Driver(args: ["swift",
477486
"-target", "x86_64-apple-macosx11.0",
478487
"-I", cHeadersPath,
479488
"-I", swiftModuleInterfacesPath,
480489
"-experimental-explicit-module-build",
481-
main.pathString])
490+
main.pathString] + sdkArgumentsForTesting)
482491

483492
let jobs = try driver.planBuild()
484493

@@ -501,8 +510,10 @@ final class ExplicitModuleBuildTests: XCTestCase {
501510

502511
let pcmArgsCurrent = mainModuleSwiftDetails.extraPcmArgs
503512
var pcmArgs9 = ["-Xcc","-target","-Xcc","x86_64-apple-macosx10.9"]
513+
var pcmArgs15 = ["-Xcc","-target","-Xcc","x86_64-apple-macosx10.15"]
504514
if driver.targetTriple.isDarwin {
505515
pcmArgs9.append(contentsOf: ["-Xcc", "-fapinotes-swift-version=5"])
516+
pcmArgs15.append(contentsOf: ["-Xcc", "-fapinotes-swift-version=5"])
506517
}
507518
let pcmFileEncoder = { (moduleInfo: ModuleInfo, hashParts: [String]) -> VirtualPath.Handle in
508519
try! driver.explicitDependencyBuildPlanner!.targetEncodedClangModuleFilePath(for: moduleInfo,
@@ -560,6 +571,11 @@ final class ExplicitModuleBuildTests: XCTestCase {
560571
try checkExplicitModuleBuildJob(job: job, pcmArgs: pcmArgs9, moduleId: .clang("SwiftShims"),
561572
dependencyOracle: dependencyOracle,
562573
pcmFileEncoder: pcmFileEncoder)
574+
case .relative(pcmArgsEncodedRelativeModulePath(for: "SwiftShims", with: pcmArgs15,
575+
pcmModuleNameEncoder: pcmModuleNameEncoder)):
576+
try checkExplicitModuleBuildJob(job: job, pcmArgs: pcmArgs15, moduleId: .clang("SwiftShims"),
577+
dependencyOracle: dependencyOracle,
578+
pcmFileEncoder: pcmFileEncoder)
563579
case .relative(pcmArgsEncodedRelativeModulePath(for: "SwiftShims", with: pcmArgsCurrent,
564580
pcmModuleNameEncoder: pcmModuleNameEncoder)):
565581
try checkExplicitModuleBuildJob(job: job, pcmArgs: pcmArgsCurrent, moduleId: .clang("SwiftShims"),
@@ -693,13 +709,14 @@ final class ExplicitModuleBuildTests: XCTestCase {
693709
let testInputsPath = packageRootPath + "/TestInputs"
694710
let cHeadersPath : String = testInputsPath + "/ExplicitModuleBuilds/CHeaders"
695711
let swiftModuleInterfacesPath : String = testInputsPath + "/ExplicitModuleBuilds/Swift"
712+
let sdkArgumentsForTesting = (try? Driver.sdkArgumentsForTesting()) ?? []
696713
let scannerCommand = ["-scan-dependencies",
697714
"-import-prescan",
698715
"-I", cHeadersPath,
699716
"-I", swiftModuleInterfacesPath,
700717
"-I", stdLibPath.description,
701718
"-I", shimsPath.description,
702-
main.pathString]
719+
main.pathString] + sdkArgumentsForTesting
703720

704721
let imports =
705722
try! dependencyOracle.getImports(workingDirectory: path,
@@ -741,12 +758,13 @@ final class ExplicitModuleBuildTests: XCTestCase {
741758
let testInputsPath = packageRootPath + "/TestInputs"
742759
let cHeadersPath : String = testInputsPath + "/ExplicitModuleBuilds/CHeaders"
743760
let swiftModuleInterfacesPath : String = testInputsPath + "/ExplicitModuleBuilds/Swift"
761+
let sdkArgumentsForTesting = (try? Driver.sdkArgumentsForTesting()) ?? []
744762
let scannerCommand = ["-scan-dependencies",
745763
"-I", cHeadersPath,
746764
"-I", swiftModuleInterfacesPath,
747765
"-I", stdLibPath.description,
748766
"-I", shimsPath.description,
749-
main.pathString]
767+
main.pathString] + sdkArgumentsForTesting
750768

751769
// Here purely to dump diagnostic output in a reasonable fashion when things go wrong.
752770
let lock = NSLock()
@@ -810,12 +828,14 @@ final class ExplicitModuleBuildTests: XCTestCase {
810828
let testInputsPath = packageRootPath + "/TestInputs"
811829
let cHeadersPath : String = testInputsPath + "/ExplicitModuleBuilds/CHeaders"
812830
let swiftModuleInterfacesPath : String = testInputsPath + "/ExplicitModuleBuilds/Swift"
831+
let sdkArgumentsForTesting = (try? Driver.sdkArgumentsForTesting()) ?? []
813832
let scannerCommand = ["-scan-dependencies",
833+
"-disable-implicit-concurrency-module-import",
814834
"-I", cHeadersPath,
815835
"-I", swiftModuleInterfacesPath,
816836
"-I", stdLibPath.description,
817837
"-I", shimsPath.description,
818-
main.pathString]
838+
main.pathString] + sdkArgumentsForTesting
819839

820840
let scanLibPath = try Driver.getScanLibPath(of: toolchain,
821841
hostTriple: hostTriple,

Tests/SwiftDriverTests/SwiftDriverTests.swift

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2468,6 +2468,9 @@ final class SwiftDriverTests: XCTestCase {
24682468
func testClangTarget() throws {
24692469
var driver = try Driver(args: ["swiftc", "-target",
24702470
"x86_64-apple-macosx10.14", "foo.swift", "bar.swift"])
2471+
guard driver.isFrontendArgSupported(.clangTarget) else {
2472+
throw XCTSkip("Skipping: compiler does not support '-clang-target'")
2473+
}
24712474
let plannedJobs = try driver.planBuild()
24722475
XCTAssertEqual(plannedJobs.count, 3)
24732476
XCTAssert(plannedJobs[0].commandLine.contains(.flag("-target")))
@@ -3808,6 +3811,9 @@ final class SwiftDriverTests: XCTestCase {
38083811
do {
38093812
var driver = try Driver(args: ["swiftc", "foo.swift", "-emit-module", "-module-name",
38103813
"foo", "-user-module-version", "12.21"])
3814+
guard driver.isFrontendArgSupported(.userModuleVersion) else {
3815+
throw XCTSkip("Skipping: compiler does not support '-user-module-version'")
3816+
}
38113817
let plannedJobs = try driver.planBuild()
38123818
XCTAssertEqual(plannedJobs.count, 2)
38133819
let compileJob = plannedJobs[0]

0 commit comments

Comments
 (0)