@@ -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' " ) )
@@ -4261,7 +4282,7 @@ final class SwiftDriverTests: XCTestCase {
4261
4282
XCTAssertEqual ( plannedJobs [ 1 ] . inputs. count, 2 )
4262
4283
XCTAssertEqual ( plannedJobs [ 1 ] . inputs [ 0 ] . file, try VirtualPath ( path: " foo.swift " ) )
4263
4284
XCTAssertEqual ( plannedJobs [ 1 ] . outputs. count, 1 )
4264
- XCTAssertTrue ( matchTemporary ( plannedJobs [ 1 ] . outputs [ 0 ] . file, " foo.bc " ) )
4285
+ XCTAssertEqual ( plannedJobs [ 1 ] . outputs [ 0 ] . file, try VirtualPath ( path : " foo.bc " ) )
4265
4286
4266
4287
XCTAssertEqual ( plannedJobs [ 2 ] . kind, . backend)
4267
4288
}
@@ -4541,11 +4562,11 @@ final class SwiftDriverTests: XCTestCase {
4541
4562
XCTAssertEqual ( compileJob. inputs. count, 1 )
4542
4563
XCTAssertEqual ( compileJob. inputs [ 0 ] . file, . relative( RelativePath ( " embed-bitcode.swift " ) ) )
4543
4564
XCTAssertEqual ( compileJob. outputs. count, 1 )
4544
- XCTAssertTrue ( matchTemporary ( compileJob. outputs [ 0 ] . file, " embed-bitcode.bc " ) )
4565
+ XCTAssertEqual ( compileJob. outputs [ 0 ] . file, . relative ( RelativePath ( " embed-bitcode.bc " ) ) )
4545
4566
4546
4567
let backendJob = plannedJobs. first ( where: { $0. kind == . backend} ) !
4547
4568
XCTAssertEqual ( backendJob. inputs. count, 1 )
4548
- XCTAssertTrue ( matchTemporary ( backendJob. inputs [ 0 ] . file, " embed-bitcode.bc " ) )
4569
+ XCTAssertEqual ( backendJob. inputs [ 0 ] . file, . relative ( RelativePath ( " embed-bitcode.bc " ) ) )
4549
4570
XCTAssertEqual ( backendJob. outputs. count, 1 )
4550
4571
XCTAssertEqual ( backendJob. outputs [ 0 ] . file, . relative( RelativePath ( " embed-bitcode.o " ) ) )
4551
4572
@@ -4588,21 +4609,21 @@ final class SwiftDriverTests: XCTestCase {
4588
4609
4589
4610
XCTAssertEqual ( plannedJobs [ 1 ] . kind, . compile)
4590
4611
XCTAssertEqual ( plannedJobs [ 1 ] . outputs. count, 1 )
4591
- XCTAssertTrue ( matchTemporary ( plannedJobs [ 1 ] . outputs [ 0 ] . file, " embed-bitcode.bc " ) )
4612
+ XCTAssertEqual ( plannedJobs [ 1 ] . outputs [ 0 ] . file, . relative ( RelativePath ( " embed-bitcode.bc " ) ) )
4592
4613
4593
4614
XCTAssertEqual ( plannedJobs [ 2 ] . kind, . backend)
4594
4615
XCTAssertEqual ( plannedJobs [ 2 ] . inputs. count, 1 )
4595
- XCTAssertTrue ( matchTemporary ( plannedJobs [ 2 ] . inputs [ 0 ] . file, " embed-bitcode.bc " ) )
4616
+ XCTAssertEqual ( plannedJobs [ 2 ] . inputs [ 0 ] . file, . relative ( RelativePath ( " embed-bitcode.bc " ) ) )
4596
4617
XCTAssertEqual ( plannedJobs [ 2 ] . outputs. count, 1 )
4597
4618
XCTAssertEqual ( plannedJobs [ 2 ] . outputs [ 0 ] . file, . relative( RelativePath ( " embed-bitcode.o " ) ) )
4598
4619
4599
4620
XCTAssertEqual ( plannedJobs [ 3 ] . kind, . compile)
4600
4621
XCTAssertEqual ( plannedJobs [ 3 ] . outputs. count, 1 )
4601
- XCTAssertTrue ( matchTemporary ( plannedJobs [ 3 ] . outputs [ 0 ] . file, " empty.bc " ) )
4622
+ XCTAssertEqual ( plannedJobs [ 3 ] . outputs [ 0 ] . file, . relative ( RelativePath ( " empty.bc " ) ) )
4602
4623
4603
4624
XCTAssertEqual ( plannedJobs [ 4 ] . kind, . backend)
4604
4625
XCTAssertEqual ( plannedJobs [ 4 ] . inputs. count, 1 )
4605
- XCTAssertTrue ( matchTemporary ( plannedJobs [ 4 ] . inputs [ 0 ] . file, " empty.bc " ) )
4626
+ XCTAssertEqual ( plannedJobs [ 4 ] . inputs [ 0 ] . file, . relative ( RelativePath ( " empty.bc " ) ) )
4606
4627
4607
4628
XCTAssertEqual ( plannedJobs [ 4 ] . outputs. count, 1 )
4608
4629
XCTAssertEqual ( plannedJobs [ 4 ] . outputs [ 0 ] . file, . relative( RelativePath ( " empty.o " ) ) )
@@ -4627,11 +4648,11 @@ final class SwiftDriverTests: XCTestCase {
4627
4648
XCTAssertEqual ( plannedJobs [ 0 ] . inputs. count, 1 )
4628
4649
XCTAssertEqual ( plannedJobs [ 0 ] . inputs [ 0 ] . file, . relative( RelativePath ( " embed-bitcode.swift " ) ) )
4629
4650
XCTAssertEqual ( plannedJobs [ 0 ] . outputs. count, 4 )
4630
- XCTAssertTrue ( matchTemporary ( plannedJobs [ 0 ] . outputs [ 0 ] . file, " Swift.bc " ) )
4651
+ XCTAssertEqual ( plannedJobs [ 0 ] . outputs [ 0 ] . file, . relative ( RelativePath ( " Swift.bc " ) ) )
4631
4652
4632
4653
XCTAssertEqual ( plannedJobs [ 1 ] . kind, . backend)
4633
4654
XCTAssertEqual ( plannedJobs [ 1 ] . inputs. count, 1 )
4634
- XCTAssertTrue ( matchTemporary ( plannedJobs [ 1 ] . inputs [ 0 ] . file, " Swift.bc " ) )
4655
+ XCTAssertEqual ( plannedJobs [ 1 ] . inputs [ 0 ] . file, . relative ( RelativePath ( " Swift.bc " ) ) )
4635
4656
XCTAssertEqual ( plannedJobs [ 1 ] . outputs. count, 1 )
4636
4657
XCTAssertEqual ( plannedJobs [ 1 ] . outputs [ 0 ] . file, . relative( RelativePath ( " Swift.o " ) ) )
4637
4658
}
@@ -5162,9 +5183,9 @@ final class SwiftDriverTests: XCTestCase {
5162
5183
return
5163
5184
}
5164
5185
XCTAssertTrue ( outputs. count == 3 )
5165
- XCTAssertTrue ( matchTemporary ( outputs [ 0 ] , " a.bc " ) )
5166
- XCTAssertTrue ( matchTemporary ( outputs [ 1 ] , " b.bc " ) )
5167
- XCTAssertTrue ( matchTemporary ( outputs [ 2 ] , " c.bc " ) )
5186
+ XCTAssertEqual ( outputs [ 0 ] , try VirtualPath ( path : " a.bc " ) )
5187
+ XCTAssertEqual ( outputs [ 1 ] , try VirtualPath ( path : " b.bc " ) )
5188
+ XCTAssertEqual ( outputs [ 2 ] , try VirtualPath ( path : " c.bc " ) )
5168
5189
}
5169
5190
5170
5191
do {
0 commit comments