Skip to content

Commit be90ae0

Browse files
beccadaxDougGregor
authored andcommitted
Rewrite error-emitting tests with new helpers
1 parent 6afa010 commit be90ae0

File tree

1 file changed

+58
-43
lines changed

1 file changed

+58
-43
lines changed

Tests/SwiftDriverTests/SwiftDriverTests.swift

Lines changed: 58 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -132,62 +132,77 @@ final class SwiftDriverTests: XCTestCase {
132132
}
133133

134134
func testDebugSettings() throws {
135-
let driver1 = try Driver(args: ["swiftc", "foo.swift", "-emit-module"])
136-
XCTAssertNil(driver1.debugInfoLevel)
137-
XCTAssertEqual(driver1.debugInfoFormat, .dwarf)
138-
139-
let driver2 = try Driver(args: ["swiftc", "foo.swift", "-emit-module", "-g"])
140-
XCTAssertEqual(driver2.debugInfoLevel, .astTypes)
141-
XCTAssertEqual(driver2.debugInfoFormat, .dwarf)
135+
try assertNoDriverDiagnostics(args: "swiftc", "foo.swift", "-emit-module") { driver in
136+
XCTAssertNil(driver.debugInfoLevel)
137+
XCTAssertEqual(driver.debugInfoFormat, .dwarf)
138+
}
142139

143-
let driver3 = try Driver(args: ["swiftc", "-g", "foo.swift", "-gline-tables-only"])
144-
XCTAssertEqual(driver3.debugInfoLevel, .lineTables)
145-
XCTAssertEqual(driver3.debugInfoFormat, .dwarf)
140+
try assertNoDriverDiagnostics(args: "swiftc", "foo.swift", "-emit-module", "-g") { driver in
141+
XCTAssertEqual(driver.debugInfoLevel, .astTypes)
142+
XCTAssertEqual(driver.debugInfoFormat, .dwarf)
143+
}
146144

147-
let driver4 = try Driver(args: ["swiftc", "foo.swift", "-emit-module", "-g", "-debug-info-format=codeview"])
148-
XCTAssertEqual(driver4.debugInfoLevel, .astTypes)
149-
XCTAssertEqual(driver4.debugInfoFormat, .codeView)
145+
try assertNoDriverDiagnostics(args: "swiftc", "-g", "foo.swift", "-gline-tables-only") { driver in
146+
XCTAssertEqual(driver.debugInfoLevel, .lineTables)
147+
XCTAssertEqual(driver.debugInfoFormat, .dwarf)
148+
}
150149

151-
let driver5 = try Driver(args: ["swiftc", "foo.swift", "-emit-module", "-debug-info-format=dwarf"])
152-
XCTAssertEqual(driver5.diagnosticEngine.diagnostics.map{$0.localizedDescription}, ["option '-debug-info-format=' is missing a required argument (-g)"])
150+
try assertNoDriverDiagnostics(args: "swiftc", "foo.swift", "-emit-module", "-g", "-debug-info-format=codeview") { driver in
151+
XCTAssertEqual(driver.debugInfoLevel, .astTypes)
152+
XCTAssertEqual(driver.debugInfoFormat, .codeView)
153+
}
153154

154-
let driver6 = try Driver(args: ["swiftc", "foo.swift", "-emit-module", "-g", "-debug-info-format=notdwarf"])
155-
XCTAssertEqual(driver6.diagnosticEngine.diagnostics.map{$0.localizedDescription}, ["invalid value 'notdwarf' in '-debug-info-format='"])
155+
try assertDriverDiagnostics(args: "swiftc", "foo.swift", "-emit-module", "-debug-info-format=dwarf") {
156+
$1.expect(.error("option '-debug-info-format=' is missing a required argument (-g)"))
157+
}
156158

157-
let driver7 = try Driver(args: ["swiftc", "foo.swift", "-emit-module", "-gdwarf-types", "-debug-info-format=codeview"])
158-
XCTAssertEqual(driver7.diagnosticEngine.diagnostics.map{$0.localizedDescription}, ["argument 'codeview' is not allowed with '-gdwarf-types'"])
159+
try assertDriverDiagnostics(args: "swiftc", "foo.swift", "-emit-module", "-g", "-debug-info-format=notdwarf") {
160+
$1.expect(.error("invalid value 'notdwarf' in '-debug-info-format='"))
161+
}
162+
163+
try assertDriverDiagnostics(args: "swiftc", "foo.swift", "-emit-module", "-gdwarf-types", "-debug-info-format=codeview") {
164+
$1.expect(.error("argument 'codeview' is not allowed with '-gdwarf-types'"))
165+
}
159166
}
160167

161168
func testModuleSettings() throws {
162-
let driver1 = try Driver(args: ["swiftc", "foo.swift"])
163-
XCTAssertNil(driver1.moduleOutput)
164-
XCTAssertEqual(driver1.moduleName, "foo")
165-
166-
let driver2 = try Driver(args: ["swiftc", "foo.swift", "-g"])
167-
XCTAssertEqual(driver2.moduleOutput, ModuleOutput.auxiliary(VirtualPath.temporary(RelativePath("foo.swiftmodule"))))
168-
XCTAssertEqual(driver2.moduleName, "foo")
169-
170-
let driver3 = try Driver(args: ["swiftc", "foo.swift", "-module-name", "wibble", "bar.swift", "-g"])
171-
XCTAssertEqual(driver3.moduleOutput, ModuleOutput.auxiliary( VirtualPath.temporary(RelativePath("wibble.swiftmodule"))))
172-
XCTAssertEqual(driver3.moduleName, "wibble")
169+
try assertNoDriverDiagnostics(args: "swiftc", "foo.swift") { driver in
170+
XCTAssertNil(driver.moduleOutput)
171+
XCTAssertEqual(driver.moduleName, "foo")
172+
}
173173

174-
let driver4 = try Driver(args: ["swiftc", "-emit-module", "foo.swift", "-module-name", "wibble", "bar.swift"])
175-
XCTAssertEqual(driver4.moduleOutput, ModuleOutput.topLevel(try VirtualPath(path: "wibble.swiftmodule")))
176-
XCTAssertEqual(driver4.moduleName, "wibble")
174+
try assertNoDriverDiagnostics(args: "swiftc", "foo.swift", "-g") { driver in
175+
XCTAssertEqual(driver.moduleOutput, ModuleOutput.auxiliary(VirtualPath.temporary(RelativePath("foo.swiftmodule"))))
176+
XCTAssertEqual(driver.moduleName, "foo")
177+
}
177178

178-
let driver5 = try Driver(args: ["swiftc", "foo.swift", "bar.swift"])
179-
XCTAssertNil(driver5.moduleOutput)
180-
XCTAssertEqual(driver5.moduleName, "main")
179+
try assertNoDriverDiagnostics(args: "swiftc", "foo.swift", "-module-name", "wibble", "bar.swift", "-g") { driver in
180+
XCTAssertEqual(driver.moduleOutput, ModuleOutput.auxiliary( VirtualPath.temporary(RelativePath("wibble.swiftmodule"))))
181+
XCTAssertEqual(driver.moduleName, "wibble")
182+
}
181183

182-
let driver6 = try Driver(args: ["swiftc", "-repl"])
183-
XCTAssertNil(driver6.moduleOutput)
184-
XCTAssertEqual(driver6.moduleName, "REPL")
184+
try assertNoDriverDiagnostics(args: "swiftc", "-emit-module", "foo.swift", "-module-name", "wibble", "bar.swift") { driver in
185+
XCTAssertEqual(driver.moduleOutput, ModuleOutput.topLevel(try VirtualPath(path: "wibble.swiftmodule")))
186+
XCTAssertEqual(driver.moduleName, "wibble")
187+
}
185188

186-
let driver7 = try Driver(args: ["swiftc", "foo.swift", "bar.swift", "-emit-library", "-o", "libWibble.so"])
187-
XCTAssertEqual(driver7.moduleName, "Wibble")
189+
try assertNoDriverDiagnostics(args: "swiftc", "foo.swift", "bar.swift") { driver in
190+
XCTAssertNil(driver.moduleOutput)
191+
XCTAssertEqual(driver.moduleName, "main")
192+
}
193+
194+
try assertNoDriverDiagnostics(args: "swiftc", "-repl") { driver in
195+
XCTAssertNil(driver.moduleOutput)
196+
XCTAssertEqual(driver.moduleName, "REPL")
197+
}
198+
199+
try assertNoDriverDiagnostics(args: "swiftc", "foo.swift", "bar.swift", "-emit-library", "-o", "libWibble.so") { driver in
200+
XCTAssertEqual(driver.moduleName, "Wibble")
201+
}
188202

189-
let driver8 = try Driver(args: ["swiftc", "foo.swift", "bar.swift", "-emit-library", "-o", "libWibble.so", "-module-name", "Swift"])
190-
XCTAssertEqual(driver8.diagnosticEngine.diagnostics.map{$0.localizedDescription}, ["module name \"Swift\" is reserved for the standard library"])
203+
try assertDriverDiagnostics(args: "swiftc", "foo.swift", "bar.swift", "-emit-library", "-o", "libWibble.so", "-module-name", "Swift") {
204+
$1.expect(.error_stdlib_module_name(moduleName: "Swift", explicitModuleName: true))
205+
}
191206
}
192207

193208
func testModuleNameFallbacks() throws {

0 commit comments

Comments
 (0)