@@ -1973,6 +1973,23 @@ final class SwiftDriverTests: XCTestCase {
1973
1973
XCTAssertEqual ( plannedJobs [ 1 ] . inputs [ 0 ] . file, . temporary( RelativePath ( " input.swiftmodule " ) ) )
1974
1974
XCTAssertEqual ( plannedJobs [ 1 ] . outputs [ 0 ] . file, . absolute( AbsolutePath ( " /tmp/test.swiftmodule " ) ) )
1975
1975
}
1976
+
1977
+ do {
1978
+ // -g is specified
1979
+ // (partial and final product module are saved to temporary directory so merge-modules is omitted)
1980
+ var driver = try Driver ( args: [ " swiftc " , " -g " , " input.swift " ] )
1981
+ let plannedJobs = try driver. planBuild ( )
1982
+ print ( plannedJobs)
1983
+ XCTAssertEqual ( plannedJobs. count, 3 )
1984
+ // No .mergeModule job
1985
+ #if os(macOS)
1986
+ XCTAssertEqual ( plannedJobs. map { $0. kind } , [ . compile, . link, . generateDSYM] )
1987
+ #endif
1988
+ #if os(Linux)
1989
+ XCTAssertEqual ( plannedJobs. map { $0. kind } , [ . compile, . autolinkExtract, . link] )
1990
+ #endif
1991
+ XCTAssertTrue ( plannedJobs [ 0 ] . outputs. contains ( TypedVirtualPath ( file: VirtualPath . temporary ( RelativePath ( " input.swiftmodule " ) ) . intern ( ) , type: . swiftModule) ) )
1992
+ }
1976
1993
}
1977
1994
1978
1995
func testEmitModuleSeparately( ) throws {
@@ -2015,16 +2032,16 @@ final class SwiftDriverTests: XCTestCase {
2015
2032
// swift-autolink-extract is not present
2016
2033
#if os(Linux)
2017
2034
do {
2018
- var driver = try Driver ( args: [ " swiftc " , " -target " , " x86_64-unknown-linux-gnu " , " -g " , " foo.swift " ] )
2035
+ var driver = try Driver ( args: [ " swiftc " , " -target " , " x86_64-unknown-linux-gnu " , " -g " , " foo.swift " , " bar.swift " ] )
2019
2036
let plannedJobs = try driver. planBuild ( )
2020
- XCTAssertEqual ( plannedJobs. count, 5 )
2021
- XCTAssertEqual ( Set ( plannedJobs. map { $0. kind } ) , Set ( [ . compile, . mergeModule, . autolinkExtract, . moduleWrap, . link] ) )
2037
+ XCTAssertEqual ( plannedJobs. count, 6 )
2038
+ XCTAssertEqual ( Set ( plannedJobs. map { $0. kind } ) , Set ( [ . compile, . compile , . mergeModule, . autolinkExtract, . moduleWrap, . link] ) )
2022
2039
let wrapJob = plannedJobs. filter { $0. kind == . moduleWrap} . first!
2023
2040
XCTAssertEqual ( wrapJob. inputs. count, 1 )
2024
2041
XCTAssertTrue ( wrapJob. commandLine. contains ( subsequence: [ " -target " , " x86_64-unknown-linux-gnu " ] ) )
2025
2042
let mergeJob = plannedJobs. filter { $0. kind == . mergeModule} . first!
2026
2043
XCTAssertTrue ( mergeJob. outputs. contains ( wrapJob. inputs. first!) )
2027
- XCTAssertTrue ( plannedJobs [ 4 ] . inputs. contains ( wrapJob. outputs. first!) )
2044
+ XCTAssertTrue ( plannedJobs [ 5 ] . inputs. contains ( wrapJob. outputs. first!) )
2028
2045
}
2029
2046
2030
2047
do {
@@ -2038,19 +2055,19 @@ final class SwiftDriverTests: XCTestCase {
2038
2055
do {
2039
2056
var driver = try Driver ( args: [ " swiftc " , " -target " , " x86_64-unknown-linux-gnu " , " -gdwarf-types " , " foo.swift " ] )
2040
2057
let plannedJobs = try driver. planBuild ( )
2041
- XCTAssertEqual ( plannedJobs. count, 4 )
2042
- // Merge module, but no module wrapping .
2043
- XCTAssertEqual ( Set ( plannedJobs. map { $0. kind } ) , Set ( [ . compile, . mergeModule , . autolinkExtract, . link] ) )
2058
+ XCTAssertEqual ( plannedJobs. count, 3 )
2059
+ // No merge module/module wrap jobs .
2060
+ XCTAssertEqual ( Set ( plannedJobs. map { $0. kind } ) , Set ( [ . compile, . autolinkExtract, . link] ) )
2044
2061
}
2045
2062
#endif
2046
2063
// dsymutil won't be found on other platforms
2047
2064
#if os(macOS)
2048
2065
do {
2049
- var driver = try Driver ( args: [ " swiftc " , " -target " , " x86_64-apple-macosx10.15 " , " -g " , " foo.swift " ] )
2066
+ var driver = try Driver ( args: [ " swiftc " , " -target " , " x86_64-apple-macosx10.15 " , " -g " , " foo.swift " , " bar.swift " ] )
2050
2067
let plannedJobs = try driver. planBuild ( )
2051
- XCTAssertEqual ( plannedJobs. count, 4 )
2068
+ XCTAssertEqual ( plannedJobs. count, 5 )
2052
2069
// No module wrapping with Mach-O.
2053
- XCTAssertEqual ( plannedJobs. map { $0. kind } , [ . compile, . mergeModule, . link, . generateDSYM] )
2070
+ XCTAssertEqual ( plannedJobs. map { $0. kind } , [ . compile, . compile , . mergeModule, . link, . generateDSYM] )
2054
2071
}
2055
2072
#endif
2056
2073
}
0 commit comments