@@ -313,6 +313,27 @@ final class SwiftDriverTests: XCTestCase {
313
313
XCTAssertEqual ( driver6. compilerOutputType, . llvmBitcode)
314
314
}
315
315
316
+ func testLtoOutputPath( ) throws {
317
+ var driver1 = try Driver ( args: [ " swiftc " , " foo.swift " , " -lto=llvm-full " ,
318
+ " -c " , " -target " , " x86_64-apple-macosx10.9 " ] )
319
+ XCTAssertEqual ( driver1. compilerOutputType, . llvmBitcode)
320
+ XCTAssertEqual ( driver1. linkerOutputType, nil )
321
+ let jobs1 = try driver1. planBuild ( )
322
+ XCTAssertEqual ( jobs1. count, 1 )
323
+ XCTAssertEqual ( jobs1 [ 0 ] . outputs. count, 1 )
324
+ XCTAssertEqual ( jobs1 [ 0 ] . outputs [ 0 ] . file. basename, " foo.bc " )
325
+
326
+ var driver2 = try Driver ( args: [ " swiftc " , " foo.swift " , " -lto=llvm-full " ,
327
+ " -c " , " -target " , " x86_64-apple-macosx10.9 " ,
328
+ " -o " , " foo.o " ] )
329
+ XCTAssertEqual ( driver2. compilerOutputType, . llvmBitcode)
330
+ XCTAssertEqual ( driver2. linkerOutputType, nil )
331
+ let jobs2 = try driver2. planBuild ( )
332
+ XCTAssertEqual ( jobs2. count, 1 )
333
+ XCTAssertEqual ( jobs2 [ 0 ] . outputs. count, 1 )
334
+ XCTAssertEqual ( jobs2 [ 0 ] . outputs [ 0 ] . file. basename, " foo.o " )
335
+ }
336
+
316
337
func testPrimaryOutputKindsDiagnostics( ) throws {
317
338
try assertDriverDiagnostics ( args: " swift " , " -i " ) {
318
339
$1. expect ( . error( " the flag '-i' is no longer required and has been removed; use 'swift input-filename' " ) )
0 commit comments