@@ -2182,10 +2182,11 @@ final class SwiftDriverTests: XCTestCase {
2182
2182
XCTAssert ( plannedJobs [ 1 ] . commandLine. contains ( . flag( " -import-objc-header " ) ) )
2183
2183
2184
2184
XCTAssertTrue ( plannedJobs [ 2 ] . tool. name. contains ( " swift " ) )
2185
- XCTAssertEqual ( plannedJobs [ 2 ] . outputs. count, 3 )
2185
+ XCTAssertEqual ( plannedJobs [ 2 ] . outputs. count, 4 )
2186
2186
XCTAssertEqual ( plannedJobs [ 2 ] . outputs [ 0 ] . file, . relative( RelativePath ( " Test.swiftmodule " ) ) )
2187
2187
XCTAssertEqual ( plannedJobs [ 2 ] . outputs [ 1 ] . file, . relative( RelativePath ( " Test.swiftdoc " ) ) )
2188
2188
XCTAssertEqual ( plannedJobs [ 2 ] . outputs [ 2 ] . file, . absolute( AbsolutePath ( " /foo/bar/Test.swiftsourceinfo " ) ) )
2189
+ XCTAssertEqual ( plannedJobs [ 2 ] . outputs [ 3 ] . file, . relative( RelativePath ( " Test.abi.json " ) ) )
2189
2190
XCTAssert ( plannedJobs [ 2 ] . commandLine. contains ( . flag( " -import-objc-header " ) ) )
2190
2191
}
2191
2192
@@ -2194,10 +2195,11 @@ final class SwiftDriverTests: XCTestCase {
2194
2195
let plannedJobs = try driver. planBuild ( )
2195
2196
XCTAssertEqual ( plannedJobs. count, 3 )
2196
2197
XCTAssertTrue ( plannedJobs [ 2 ] . tool. name. contains ( " swift " ) )
2197
- XCTAssertEqual ( plannedJobs [ 2 ] . outputs. count, 3 )
2198
+ XCTAssertEqual ( plannedJobs [ 2 ] . outputs. count, 4 )
2198
2199
XCTAssertEqual ( plannedJobs [ 2 ] . outputs [ 0 ] . file, . absolute( AbsolutePath ( " /foo/bar/Test.swiftmodule " ) ) )
2199
2200
XCTAssertEqual ( plannedJobs [ 2 ] . outputs [ 1 ] . file, . absolute( AbsolutePath ( " /foo/bar/Test.swiftdoc " ) ) )
2200
2201
XCTAssertEqual ( plannedJobs [ 2 ] . outputs [ 2 ] . file, . absolute( AbsolutePath ( " /foo/bar/Test.swiftsourceinfo " ) ) )
2202
+ XCTAssertEqual ( plannedJobs [ 2 ] . outputs [ 3 ] . file, . absolute( AbsolutePath ( " /foo/bar/Test.abi.json " ) ) )
2201
2203
}
2202
2204
2203
2205
do {
@@ -2206,10 +2208,11 @@ final class SwiftDriverTests: XCTestCase {
2206
2208
let plannedJobs = try driver. planBuild ( )
2207
2209
XCTAssertEqual ( plannedJobs. count, 3 )
2208
2210
XCTAssertTrue ( plannedJobs [ 2 ] . tool. name. contains ( " swift " ) )
2209
- XCTAssertEqual ( plannedJobs [ 2 ] . outputs. count, 3 )
2211
+ XCTAssertEqual ( plannedJobs [ 2 ] . outputs. count, 4 )
2210
2212
XCTAssertEqual ( plannedJobs [ 2 ] . outputs [ 0 ] . file, . relative( RelativePath ( " Test.swiftmodule " ) ) )
2211
2213
XCTAssertEqual ( plannedJobs [ 2 ] . outputs [ 1 ] . file, . relative( RelativePath ( " Test.swiftdoc " ) ) )
2212
2214
XCTAssertEqual ( plannedJobs [ 2 ] . outputs [ 2 ] . file, . relative( RelativePath ( " Test.swiftsourceinfo " ) ) )
2215
+ XCTAssertEqual ( plannedJobs [ 2 ] . outputs [ 3 ] . file, . relative( RelativePath ( " Test.abi.json " ) ) )
2213
2216
}
2214
2217
2215
2218
do {
@@ -2218,10 +2221,11 @@ final class SwiftDriverTests: XCTestCase {
2218
2221
let plannedJobs = try driver. planBuild ( )
2219
2222
XCTAssertEqual ( plannedJobs. count, 3 )
2220
2223
XCTAssertTrue ( plannedJobs [ 2 ] . tool. name. contains ( " swift " ) )
2221
- XCTAssertEqual ( plannedJobs [ 2 ] . outputs. count, 3 )
2224
+ XCTAssertEqual ( plannedJobs [ 2 ] . outputs. count, 4 )
2222
2225
XCTAssertEqual ( plannedJobs [ 2 ] . outputs [ 0 ] . file, . relative( RelativePath ( " Test.swiftmodule " ) ) )
2223
2226
XCTAssertEqual ( plannedJobs [ 2 ] . outputs [ 1 ] . file, . relative( RelativePath ( " Test.swiftdoc " ) ) )
2224
2227
XCTAssertEqual ( plannedJobs [ 2 ] . outputs [ 2 ] . file, . relative( RelativePath ( " Test.swiftsourceinfo " ) ) )
2228
+ XCTAssertEqual ( plannedJobs [ 2 ] . outputs [ 3 ] . file, . relative( RelativePath ( " Test.abi.json " ) ) )
2225
2229
}
2226
2230
2227
2231
do {
@@ -2246,10 +2250,11 @@ final class SwiftDriverTests: XCTestCase {
2246
2250
XCTAssertEqual ( Set ( plannedJobs. map { $0. kind } ) , Set ( [ . compile, . emitModule, . link] ) )
2247
2251
XCTAssertTrue ( plannedJobs [ 0 ] . tool. name. contains ( " swift " ) )
2248
2252
XCTAssertTrue ( plannedJobs [ 0 ] . commandLine. contains ( . flag( " -parse-as-library " ) ) )
2249
- XCTAssertEqual ( plannedJobs [ 0 ] . outputs. count, 3 )
2253
+ XCTAssertEqual ( plannedJobs [ 0 ] . outputs. count, 4 )
2250
2254
XCTAssertEqual ( plannedJobs [ 0 ] . outputs [ 0 ] . file, . absolute( AbsolutePath ( " /foo/bar/Test.swiftmodule " ) ) )
2251
2255
XCTAssertEqual ( plannedJobs [ 0 ] . outputs [ 1 ] . file, . absolute( AbsolutePath ( " /foo/bar/Test.swiftdoc " ) ) )
2252
2256
XCTAssertEqual ( plannedJobs [ 0 ] . outputs [ 2 ] . file, . absolute( AbsolutePath ( " /foo/bar/Test.swiftsourceinfo " ) ) )
2257
+ XCTAssertEqual ( plannedJobs [ 0 ] . outputs [ 3 ] . file, . absolute( AbsolutePath ( " /foo/bar/Test.abi.json " ) ) )
2253
2258
2254
2259
// We don't know the output file of the symbol graph, just make sure the flag is passed along.
2255
2260
XCTAssertTrue ( plannedJobs [ 0 ] . commandLine. contains ( . flag( " -emit-symbol-graph-dir " ) ) )
@@ -2263,10 +2268,11 @@ final class SwiftDriverTests: XCTestCase {
2263
2268
XCTAssertEqual ( plannedJobs. count, 1 )
2264
2269
XCTAssertEqual ( Set ( plannedJobs. map { $0. kind } ) , Set ( [ . emitModule] ) )
2265
2270
XCTAssertTrue ( plannedJobs [ 0 ] . tool. name. contains ( " swift " ) )
2266
- XCTAssertEqual ( plannedJobs [ 0 ] . outputs. count, 3 )
2271
+ XCTAssertEqual ( plannedJobs [ 0 ] . outputs. count, 4 )
2267
2272
XCTAssertEqual ( plannedJobs [ 0 ] . outputs [ 0 ] . file, . absolute( AbsolutePath ( " /foo/bar/Test.swiftmodule " ) ) )
2268
2273
XCTAssertEqual ( plannedJobs [ 0 ] . outputs [ 1 ] . file, . absolute( AbsolutePath ( " /foo/bar/Test.swiftdoc " ) ) )
2269
2274
XCTAssertEqual ( plannedJobs [ 0 ] . outputs [ 2 ] . file, . absolute( AbsolutePath ( " /foo/bar/Test.swiftsourceinfo " ) ) )
2275
+ XCTAssertEqual ( plannedJobs [ 0 ] . outputs [ 3 ] . file, . absolute( AbsolutePath ( " /foo/bar/Test.abi.json " ) ) )
2270
2276
}
2271
2277
2272
2278
do {
@@ -3485,6 +3491,8 @@ final class SwiftDriverTests: XCTestCase {
3485
3491
" emitModule (swift-frontend) " -> " test.swiftmodule " [color=green];
3486
3492
" test.swiftdoc " [fontsize=12];
3487
3493
" emitModule (swift-frontend) " -> " test.swiftdoc " [color=green];
3494
+ " test.abi.json " [fontsize=12];
3495
+ " emitModule (swift-frontend) " -> " test.abi.json " [color=green];
3488
3496
" compile (swift-frontend) " [style=bold];
3489
3497
" test.swift " -> " compile (swift-frontend) " [color=blue];
3490
3498
" test-1.o " [fontsize=12];
@@ -3512,6 +3520,8 @@ final class SwiftDriverTests: XCTestCase {
3512
3520
" emitModule (swift-frontend) " -> " test.swiftmodule " [color=green];
3513
3521
" test.swiftdoc " [fontsize=12];
3514
3522
" emitModule (swift-frontend) " -> " test.swiftdoc " [color=green];
3523
+ " test.abi.json " [fontsize=12];
3524
+ " emitModule (swift-frontend) " -> " test.abi.json " [color=green];
3515
3525
" compile (swift-frontend) " [style=bold];
3516
3526
" test.swift " -> " compile (swift-frontend) " [color=blue];
3517
3527
" test-1.o " [fontsize=12];
@@ -4542,10 +4552,11 @@ final class SwiftDriverTests: XCTestCase {
4542
4552
let emitModuleJob = plannedJobs. first ( where: { $0. kind == . emitModule} ) !
4543
4553
XCTAssertEqual ( emitModuleJob. inputs. count, 1 )
4544
4554
XCTAssertEqual ( emitModuleJob. inputs [ 0 ] . file, . relative( RelativePath ( " embed-bitcode.swift " ) ) )
4545
- XCTAssertEqual ( emitModuleJob. outputs. count, 3 )
4555
+ XCTAssertEqual ( emitModuleJob. outputs. count, 4 )
4546
4556
XCTAssertEqual ( emitModuleJob. outputs [ 0 ] . file, . relative( RelativePath ( " main.swiftmodule " ) ) )
4547
4557
XCTAssertEqual ( emitModuleJob. outputs [ 1 ] . file, . relative( RelativePath ( " main.swiftdoc " ) ) )
4548
4558
XCTAssertEqual ( emitModuleJob. outputs [ 2 ] . file, . relative( RelativePath ( " main.swiftsourceinfo " ) ) )
4559
+ XCTAssertEqual ( emitModuleJob. outputs [ 3 ] . file, . relative( RelativePath ( " main.abi.json " ) ) )
4549
4560
}
4550
4561
4551
4562
do {
@@ -4600,10 +4611,11 @@ final class SwiftDriverTests: XCTestCase {
4600
4611
XCTAssertEqual ( emitModuleJob. inputs. count, 2 )
4601
4612
XCTAssertEqual ( emitModuleJob. inputs [ 0 ] . file, . relative( RelativePath ( " embed-bitcode.swift " ) ) )
4602
4613
XCTAssertEqual ( emitModuleJob. inputs [ 1 ] . file, . relative( RelativePath ( " empty.swift " ) ) )
4603
- XCTAssertEqual ( emitModuleJob. outputs. count, 3 )
4614
+ XCTAssertEqual ( emitModuleJob. outputs. count, 4 )
4604
4615
XCTAssertEqual ( emitModuleJob. outputs [ 0 ] . file, . relative( RelativePath ( " ABC.swiftmodule " ) ) )
4605
4616
XCTAssertEqual ( emitModuleJob. outputs [ 1 ] . file, . relative( RelativePath ( " ABC.swiftdoc " ) ) )
4606
4617
XCTAssertEqual ( emitModuleJob. outputs [ 2 ] . file, . relative( RelativePath ( " ABC.swiftsourceinfo " ) ) )
4618
+ XCTAssertEqual ( emitModuleJob. outputs [ 3 ] . file, . relative( RelativePath ( " ABC.abi.json " ) ) )
4607
4619
}
4608
4620
4609
4621
do {
@@ -4854,10 +4866,11 @@ final class SwiftDriverTests: XCTestCase {
4854
4866
let plannedJobs = try driver. planBuild ( )
4855
4867
let emitModuleJob = plannedJobs [ 0 ]
4856
4868
XCTAssertTrue ( emitModuleJob. commandLine. contains ( . flag( " -emit-module-source-info-path " ) ) )
4857
- XCTAssertEqual ( emitModuleJob. outputs. count, 3 )
4869
+ XCTAssertEqual ( emitModuleJob. outputs. count, 4 )
4858
4870
XCTAssertTrue ( emitModuleJob. outputs [ 0 ] . file == VirtualPath . relative ( RelativePath ( " foo.swiftmodule " ) ) )
4859
4871
XCTAssertTrue ( emitModuleJob. outputs [ 1 ] . file == VirtualPath . relative ( RelativePath ( " foo.swiftdoc " ) ) )
4860
4872
XCTAssertTrue ( emitModuleJob. outputs [ 2 ] . file == VirtualPath . relative ( RelativePath ( " foo.swiftsourceinfo " ) ) )
4873
+ XCTAssertTrue ( emitModuleJob. outputs [ 3 ] . file == VirtualPath . relative ( RelativePath ( " foo.abi.json " ) ) )
4861
4874
}
4862
4875
// implicit with Project/ Directory
4863
4876
do {
@@ -4870,10 +4883,11 @@ final class SwiftDriverTests: XCTestCase {
4870
4883
let plannedJobs = try driver. planBuild ( )
4871
4884
let emitModuleJob = plannedJobs [ 0 ]
4872
4885
XCTAssertTrue ( emitModuleJob. commandLine. contains ( . flag( " -emit-module-source-info-path " ) ) )
4873
- XCTAssertEqual ( emitModuleJob. outputs. count, 3 )
4886
+ XCTAssertEqual ( emitModuleJob. outputs. count, 4 )
4874
4887
XCTAssertEqual ( emitModuleJob. outputs [ 0 ] . file, . absolute( path. appending ( component: " foo.swiftmodule " ) ) )
4875
4888
XCTAssertEqual ( emitModuleJob. outputs [ 1 ] . file, . absolute( path. appending ( component: " foo.swiftdoc " ) ) )
4876
4889
XCTAssertEqual ( emitModuleJob. outputs [ 2 ] . file, . absolute( projectDirPath. appending ( component: " foo.swiftsourceinfo " ) ) )
4890
+ XCTAssertEqual ( emitModuleJob. outputs [ 3 ] . file, . absolute( path. appending ( component: " foo.abi.json " ) ) )
4877
4891
}
4878
4892
}
4879
4893
// avoid implicit swiftsourceinfo
@@ -4882,9 +4896,10 @@ final class SwiftDriverTests: XCTestCase {
4882
4896
let plannedJobs = try driver. planBuild ( )
4883
4897
let emitModuleJob = plannedJobs [ 0 ]
4884
4898
XCTAssertFalse ( emitModuleJob. commandLine. contains ( . flag( " -emit-module-source-info-path " ) ) )
4885
- XCTAssertEqual ( emitModuleJob. outputs. count, 2 )
4899
+ XCTAssertEqual ( emitModuleJob. outputs. count, 3 )
4886
4900
XCTAssertTrue ( emitModuleJob. outputs [ 0 ] . file == VirtualPath . relative ( RelativePath ( " foo.swiftmodule " ) ) )
4887
4901
XCTAssertTrue ( emitModuleJob. outputs [ 1 ] . file == VirtualPath . relative ( RelativePath ( " foo.swiftdoc " ) ) )
4902
+ XCTAssertTrue ( emitModuleJob. outputs [ 2 ] . file == VirtualPath . relative ( RelativePath ( " foo.abi.json " ) ) )
4888
4903
}
4889
4904
}
4890
4905
0 commit comments