Skip to content

Commit 20974b4

Browse files
committed
Don't skip the separate compile jobs (until other tools are updated)
1 parent 14a0055 commit 20974b4

File tree

2 files changed

+19
-15
lines changed

2 files changed

+19
-15
lines changed

Sources/SwiftDriver/Jobs/Planning.swift

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -404,7 +404,11 @@ extension Driver {
404404
}
405405
assert(backendJobs.count <= 1)
406406
addCompileJobGroup(CompileJobGroup(compileJob: compile, backendJob: backendJobs.first))
407-
} else if !canSkipIfOnlyModule {
407+
} else {
408+
// TODO: if !canSkipIfOnlyModule {
409+
// Some other tools still expect the partial jobs. Bring this check
410+
// back once they are updated. rdar://84979778
411+
408412
// We can skip the compile jobs if all we want is a module when it's
409413
// built separately.
410414
let compile = try compileJob(primaryInputs: [primaryInput],

Tests/SwiftDriverTests/SwiftDriverTests.swift

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -820,7 +820,7 @@ final class SwiftDriverTests: XCTestCase {
820820
func testEmitModuleEmittingDependencies() throws {
821821
var driver1 = try Driver(args: ["swiftc", "foo.swift", "bar.swift", "-module-name", "Foo", "-emit-dependencies", "-emit-module", "-serialize-diagnostics", "-driver-filelist-threshold=9999", "-experimental-emit-module-separately"])
822822
let plannedJobs = try driver1.planBuild().removingAutolinkExtractJobs()
823-
XCTAssertEqual(plannedJobs.count, 1)
823+
XCTAssertEqual(plannedJobs.count, 3)
824824
XCTAssertTrue(plannedJobs[0].kind == .emitModule)
825825
XCTAssertTrue(plannedJobs[0].commandLine.contains(.flag("-emit-dependencies-path")))
826826
XCTAssertTrue(plannedJobs[0].commandLine.contains(.flag("-serialize-diagnostics-path")))
@@ -843,7 +843,7 @@ final class SwiftDriverTests: XCTestCase {
843843
"-output-file-map", outputFileMap.description])
844844
let plannedJobs = try driver.planBuild().removingAutolinkExtractJobs()
845845

846-
XCTAssertEqual(plannedJobs.count, 1)
846+
XCTAssertEqual(plannedJobs.count, 3)
847847
XCTAssertTrue(plannedJobs[0].kind == .emitModule)
848848
XCTAssertTrue(plannedJobs[0].commandLine.contains(subsequence: [.flag("-serialize-diagnostics-path"), .path(.absolute(.init("/build/Foo-test.dia")))]))
849849
}
@@ -2166,7 +2166,7 @@ final class SwiftDriverTests: XCTestCase {
21662166
do {
21672167
var driver = try Driver(args: ["swiftc", "-module-name=ThisModule", "main.swift", "multi-threaded.swift", "-emit-module", "-o", "test.swiftmodule", "-experimental-emit-module-separately"])
21682168
let plannedJobs = try driver.planBuild().removingAutolinkExtractJobs()
2169-
XCTAssertEqual(plannedJobs.count, 1)
2169+
XCTAssertEqual(plannedJobs.count, 3)
21702170
XCTAssertEqual(plannedJobs[0].kind, .emitModule)
21712171
XCTAssertTrue(plannedJobs[0].commandLine.contains(.flag("-emit-abi-descriptor-path")))
21722172
}
@@ -2410,8 +2410,8 @@ final class SwiftDriverTests: XCTestCase {
24102410
// -experimental-emit-module-separately.
24112411
var driver = try Driver(args: ["swiftc", "foo.swift", "bar.swift", "-module-name", "Test", "-emit-module-path", "/foo/bar/Test.swiftmodule", "-experimental-emit-module-separately"])
24122412
let plannedJobs = try driver.planBuild()
2413-
XCTAssertEqual(plannedJobs.count, 1)
2414-
XCTAssertEqual(Set(plannedJobs.map { $0.kind }), Set([.emitModule]))
2413+
XCTAssertEqual(plannedJobs.count, 3)
2414+
XCTAssertEqual(Set(plannedJobs.map { $0.kind }), Set([.emitModule, .compile]))
24152415
XCTAssertTrue(plannedJobs[0].tool.name.contains("swift"))
24162416
XCTAssertEqual(plannedJobs[0].outputs.count, 4)
24172417
XCTAssertEqual(plannedJobs[0].outputs[0].file, .absolute(AbsolutePath("/foo/bar/Test.swiftmodule")))
@@ -3620,7 +3620,7 @@ final class SwiftDriverTests: XCTestCase {
36203620
"swiftc", "-working-directory", "/Foo/Bar", "-emit-module", "/tmp/main.swift"
36213621
])
36223622
let plannedJobs = try driver.planBuild().removingAutolinkExtractJobs()
3623-
XCTAssertEqual(plannedJobs.count, 1)
3623+
XCTAssertEqual(plannedJobs.count, 2)
36243624
XCTAssertTrue(plannedJobs[0].commandLine.contains(.flag("-o")))
36253625
XCTAssertTrue(plannedJobs[0].commandLine.contains(.path(try VirtualPath(path: "/Foo/Bar/main.swiftmodule"))))
36263626
XCTAssertTrue(plannedJobs[0].commandLine.contains(.flag("-emit-module-doc-path")))
@@ -3740,7 +3740,7 @@ final class SwiftDriverTests: XCTestCase {
37403740
"swiftc", "-emit-module", "/tmp/main.swift", "-emit-module-path", "test-ios-macabi.swiftmodule"
37413741
])
37423742
let plannedJobs = try driver.planBuild().removingAutolinkExtractJobs()
3743-
XCTAssertEqual(plannedJobs.count, 1)
3743+
XCTAssertEqual(plannedJobs.count, 2)
37443744
XCTAssertTrue(plannedJobs[0].kind == .emitModule)
37453745
XCTAssertTrue(plannedJobs[0].commandLine.contains(.flag("-o")))
37463746
XCTAssertTrue(plannedJobs[0].commandLine.contains(.path(try VirtualPath(path: "test-ios-macabi.swiftmodule"))))
@@ -4184,7 +4184,7 @@ final class SwiftDriverTests: XCTestCase {
41844184
throw XCTSkip("Skipping: compiler does not support '-user-module-version'")
41854185
}
41864186
let plannedJobs = try driver.planBuild()
4187-
XCTAssertEqual(plannedJobs.count, 1)
4187+
XCTAssertEqual(plannedJobs.count, 2)
41884188
let emitModuleJob = plannedJobs[0]
41894189
XCTAssertEqual(emitModuleJob.kind, .emitModule)
41904190
XCTAssertTrue(emitModuleJob.commandLine.contains(.flag("-user-module-version")))
@@ -4202,7 +4202,7 @@ final class SwiftDriverTests: XCTestCase {
42024202
"-verify-emitted-module-interface",
42034203
"-enable-library-evolution"])
42044204
let plannedJobs = try driver.planBuild()
4205-
XCTAssertEqual(plannedJobs.count, 2)
4205+
XCTAssertEqual(plannedJobs.count, 3)
42064206
let emitJob = plannedJobs.first(where: { $0.kind == .emitModule })!
42074207
let verifyJob = plannedJobs.first(where: { $0.kind == .verifyModuleInterface })!
42084208

@@ -4220,7 +4220,7 @@ final class SwiftDriverTests: XCTestCase {
42204220
var driver = try Driver(args: ["swiftc", "foo.swift", "-emit-module", "-module-name",
42214221
"foo", "-emit-module-interface", "-verify-emitted-module-interface"], env: envVars)
42224222
let plannedJobs = try driver.planBuild()
4223-
XCTAssertEqual(plannedJobs.count, 1)
4223+
XCTAssertEqual(plannedJobs.count, 2)
42244224
}
42254225

42264226
// Explicitly disabled
@@ -4230,7 +4230,7 @@ final class SwiftDriverTests: XCTestCase {
42304230
"-enable-library-evolution",
42314231
"-no-verify-emitted-module-interface"], env: envVars)
42324232
let plannedJobs = try driver.planBuild()
4233-
XCTAssertEqual(plannedJobs.count, 1)
4233+
XCTAssertEqual(plannedJobs.count, 2)
42344234
}
42354235

42364236
// Disabled by default in merge-module
@@ -4250,7 +4250,7 @@ final class SwiftDriverTests: XCTestCase {
42504250
"-enable-library-evolution",
42514251
"-experimental-emit-module-separately"])
42524252
let plannedJobs = try driver.planBuild()
4253-
XCTAssertEqual(plannedJobs.count, 1)
4253+
XCTAssertEqual(plannedJobs.count, 2)
42544254
}
42554255

42564256
// Emit-module separately
@@ -4260,7 +4260,7 @@ final class SwiftDriverTests: XCTestCase {
42604260
"-enable-library-evolution",
42614261
"-experimental-emit-module-separately"], env: envVars)
42624262
let plannedJobs = try driver.planBuild()
4263-
XCTAssertEqual(plannedJobs.count, 2)
4263+
XCTAssertEqual(plannedJobs.count, 3)
42644264
let emitJob = plannedJobs.first(where: { $0.kind == .emitModule })!
42654265
let verifyJob = plannedJobs.first(where: { $0.kind == .verifyModuleInterface })!
42664266
let emitInterfaceOutput = emitJob.outputs.filter { $0.type == .swiftInterface }
@@ -4323,7 +4323,7 @@ final class SwiftDriverTests: XCTestCase {
43234323
"-enable-library-evolution",
43244324
"-check-api-availability-only"])
43254325
let plannedJobs = try driver.planBuild()
4326-
XCTAssertEqual(plannedJobs.count, 2)
4326+
XCTAssertEqual(plannedJobs.count, 3)
43274327

43284328
let emitJob = plannedJobs.first(where: { $0.kind == .emitModule })!
43294329
XCTAssertTrue(emitJob.commandLine.contains(.flag("-check-api-availability-only")))

0 commit comments

Comments
 (0)