Skip to content

Commit 4662a4a

Browse files
authored
Merge pull request #791 from nkcsgexi/default-interface-verifier-env
Put default interface verifier behind an env var
2 parents 17a1f92 + 33177f7 commit 4662a4a

File tree

2 files changed

+23
-5
lines changed

2 files changed

+23
-5
lines changed

Sources/SwiftDriver/Jobs/Planning.swift

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -439,6 +439,12 @@ extension Driver {
439439
default: false)
440440
else { return }
441441

442+
// FIXME: remove this when we are confident to enable interface verification
443+
// by default.
444+
if env["ENABLE_DEFAULT_INTERFACE_VERIFIER"] == nil &&
445+
!parsedOptions.hasArgument(.verifyEmittedModuleInterface) {
446+
return
447+
}
442448
func addVerifyJob(forPrivate: Bool) throws {
443449
let isNeeded =
444450
forPrivate

Tests/SwiftDriverTests/SwiftDriverTests.swift

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3940,6 +3940,8 @@ final class SwiftDriverTests: XCTestCase {
39403940

39413941
func testVerifyEmittedInterfaceJob() throws {
39423942
// Evolution enabled
3943+
var envVars = ProcessEnv.vars
3944+
envVars["ENABLE_DEFAULT_INTERFACE_VERIFIER"] = "YES"
39433945
do {
39443946
var driver = try Driver(args: ["swiftc", "foo.swift", "-emit-module", "-module-name",
39453947
"foo", "-emit-module-interface",
@@ -3965,7 +3967,7 @@ final class SwiftDriverTests: XCTestCase {
39653967
// No Evolution
39663968
do {
39673969
var driver = try Driver(args: ["swiftc", "foo.swift", "-emit-module", "-module-name",
3968-
"foo", "-emit-module-interface", "-verify-emitted-module-interface"])
3970+
"foo", "-emit-module-interface", "-verify-emitted-module-interface"], env: envVars)
39693971
let plannedJobs = try driver.planBuild()
39703972
XCTAssertEqual(plannedJobs.count, 2)
39713973
}
@@ -3975,7 +3977,7 @@ final class SwiftDriverTests: XCTestCase {
39753977
var driver = try Driver(args: ["swiftc", "foo.swift", "-emit-module", "-module-name",
39763978
"foo", "-emit-module-interface",
39773979
"-enable-library-evolution",
3978-
"-no-verify-emitted-module-interface"])
3980+
"-no-verify-emitted-module-interface"], env: envVars)
39793981
let plannedJobs = try driver.planBuild()
39803982
XCTAssertEqual(plannedJobs.count, 2)
39813983
}
@@ -3985,18 +3987,28 @@ final class SwiftDriverTests: XCTestCase {
39853987
var driver = try Driver(args: ["swiftc", "foo.swift", "-emit-module", "-module-name",
39863988
"foo", "-emit-module-interface",
39873989
"-enable-library-evolution",
3988-
"-no-emit-module-separately"])
3990+
"-no-emit-module-separately"], env: envVars)
39893991
let plannedJobs = try driver.planBuild()
39903992
XCTAssertEqual(plannedJobs.count, 2)
39913993
}
39923994

3993-
// Emit-module separately
3995+
// Disabled when no "ENABLE_DEFAULT_INTERFACE_VERIFIER" found in the environment
39943996
do {
39953997
var driver = try Driver(args: ["swiftc", "foo.swift", "-emit-module", "-module-name",
39963998
"foo", "-emit-module-interface",
39973999
"-enable-library-evolution",
39984000
"-experimental-emit-module-separately"])
39994001
let plannedJobs = try driver.planBuild()
4002+
XCTAssertEqual(plannedJobs.count, 1)
4003+
}
4004+
4005+
// Emit-module separately
4006+
do {
4007+
var driver = try Driver(args: ["swiftc", "foo.swift", "-emit-module", "-module-name",
4008+
"foo", "-emit-module-interface",
4009+
"-enable-library-evolution",
4010+
"-experimental-emit-module-separately"], env: envVars)
4011+
let plannedJobs = try driver.planBuild()
40004012
XCTAssertEqual(plannedJobs.count, 2)
40014013
let emitJob = plannedJobs[0]
40024014
let verifyJob = plannedJobs[1]
@@ -4015,7 +4027,7 @@ final class SwiftDriverTests: XCTestCase {
40154027
var driver = try Driver(args: ["swiftc", "foo.swift", "-emit-module", "-module-name",
40164028
"foo", "-emit-module-interface",
40174029
"-enable-library-evolution",
4018-
"-whole-module-optimization"])
4030+
"-whole-module-optimization"], env: envVars)
40194031
let plannedJobs = try driver.planBuild()
40204032
XCTAssertEqual(plannedJobs.count, 2)
40214033
let emitJob = plannedJobs[0]

0 commit comments

Comments
 (0)