@@ -2490,23 +2490,45 @@ final class SwiftDriverTests: XCTestCase {
24902490 }
24912491 }
24922492
2493- func testClangTarget( ) throws {
2494- var driver = try Driver ( args: [ " swiftc " , " -target " ,
2495- " x86_64-apple-macosx10.14 " , " foo.swift " , " bar.swift " ] )
2496- guard driver. isFrontendArgSupported ( . clangTarget) else {
2497- throw XCTSkip ( " Skipping: compiler does not support '-clang-target' " )
2493+ func testClangTargetForExplicitModule( ) throws {
2494+ // Check -clang-target is on by defualt when explicit module is on.
2495+ try withTemporaryDirectory { path in
2496+ let main = path. appending ( component: " Foo.swift " )
2497+ try localFileSystem. writeFileContents ( main) {
2498+ $0 <<< " import Swift "
2499+ }
2500+ var driver = try Driver ( args: [ " swiftc " , " -experimental-explicit-module-build " , " -target " ,
2501+ " x86_64-apple-macosx10.14 " , main. pathString] )
2502+ guard driver. isFrontendArgSupported ( . clangTarget) else {
2503+ throw XCTSkip ( " Skipping: compiler does not support '-clang-target' " )
2504+ }
2505+ let plannedJobs = try driver. planBuild ( )
2506+ XCTAssertTrue ( plannedJobs. contains { job in
2507+ job. commandLine. contains ( . flag( " -clang-target " ) )
2508+ } )
2509+ }
2510+ // Check -disable-clang-target works
2511+ try withTemporaryDirectory { path in
2512+ let main = path. appending ( component: " Foo.swift " )
2513+ try localFileSystem. writeFileContents ( main) {
2514+ $0 <<< " import Swift "
2515+ }
2516+ var driver = try Driver ( args: [ " swiftc " , " -disable-clang-target " ,
2517+ " -experimental-explicit-module-build " , " -target " ,
2518+ " x86_64-apple-macosx10.14 " , main. pathString] )
2519+ guard driver. isFrontendArgSupported ( . clangTarget) else {
2520+ throw XCTSkip ( " Skipping: compiler does not support '-clang-target' " )
2521+ }
2522+ let plannedJobs = try driver. planBuild ( )
2523+ XCTAssertFalse ( plannedJobs. contains { job in
2524+ job. commandLine. contains ( . flag( " -clang-target " ) )
2525+ } )
24982526 }
2499- let plannedJobs = try driver. planBuild ( )
2500- XCTAssertEqual ( plannedJobs. count, 3 )
2501- XCTAssert ( plannedJobs [ 0 ] . commandLine. contains ( . flag( " -target " ) ) )
2502- XCTAssert ( plannedJobs [ 0 ] . commandLine. contains ( . flag( " -clang-target " ) ) )
2503- XCTAssert ( plannedJobs [ 1 ] . commandLine. contains ( . flag( " -target " ) ) )
2504- XCTAssert ( plannedJobs [ 1 ] . commandLine. contains ( . flag( " -clang-target " ) ) )
25052527 }
25062528
2507- func testDisableClangTarget ( ) throws {
2529+ func testDisableClangTargetForImplicitModule ( ) throws {
25082530 var driver = try Driver ( args: [ " swiftc " , " -target " ,
2509- " x86_64-apple-macosx10.14 " , " foo.swift " , " -disable-clang-target " ] )
2531+ " x86_64-apple-macosx10.14 " , " foo.swift " ] )
25102532 let plannedJobs = try driver. planBuild ( )
25112533 XCTAssertEqual ( plannedJobs. count, 2 )
25122534 XCTAssert ( plannedJobs [ 0 ] . commandLine. contains ( . flag( " -target " ) ) )
0 commit comments