Skip to content

Commit 462e49a

Browse files
committed
[Test] Fix testParallelDependencyScanningDiagnostics to handle new diagnostics with source-locations
1 parent dd5bbca commit 462e49a

File tree

1 file changed

+29
-4
lines changed

1 file changed

+29
-4
lines changed

Tests/SwiftDriverTests/ExplicitModuleBuildTests.swift

+29-4
Original file line numberDiff line numberDiff line change
@@ -1779,7 +1779,7 @@ final class ExplicitModuleBuildTests: XCTestCase {
17791779
"-working-directory", path.nativePathString(escaped: true),
17801780
"-disable-clang-target"] + sdkArgumentsForTesting
17811781
let resolver = try ArgsResolver(fileSystem: localFileSystem)
1782-
let numFiles = 10
1782+
let numFiles = 1
17831783
var files: [AbsolutePath] = []
17841784
var drivers: [Driver] = []
17851785
var scannerCommands: [[String]] = []
@@ -1817,8 +1817,33 @@ final class ExplicitModuleBuildTests: XCTestCase {
18171817
for scanIndex in 0..<numFiles {
18181818
let diagnostics = scanDiagnostics[scanIndex]
18191819
XCTAssertEqual(diagnostics.count, 2)
1820-
XCTAssertEqual(diagnostics[0].message, "Unable to find module dependency: 'UnknownModule\(scanIndex)'")
1821-
XCTAssertEqual(diagnostics[1].message, "a dependency of main module 'testParallelDependencyScanningDiagnostics\(scanIndex)'")
1820+
// Diagnostic source locations came after per-scan diagnostics, only meaningful
1821+
// on this test code-path
1822+
if try dependencyOracle.supportsDiagnosticSourceLocations() {
1823+
let sourceLoc = try XCTUnwrap(diagnostics[0].sourceLocation)
1824+
XCTAssertEqual(sourceLoc.lineNumber, 1)
1825+
XCTAssertEqual(sourceLoc.columnNumber, 8)
1826+
XCTAssertEqual(diagnostics[0].message,
1827+
"""
1828+
Unable to find module dependency: 'UnknownModule\(scanIndex)'
1829+
import UnknownModule\(scanIndex);
1830+
^
1831+
1832+
""")
1833+
let noteSourceLoc = try XCTUnwrap(diagnostics[1].sourceLocation)
1834+
XCTAssertEqual(noteSourceLoc.lineNumber, 1)
1835+
XCTAssertEqual(noteSourceLoc.columnNumber, 8)
1836+
XCTAssertEqual(diagnostics[1].message,
1837+
"""
1838+
a dependency of main module 'testParallelDependencyScanningDiagnostics\(scanIndex)'
1839+
import UnknownModule\(scanIndex);
1840+
^
1841+
1842+
""")
1843+
} else {
1844+
XCTAssertEqual(diagnostics[0].message, "Unable to find module dependency: 'UnknownModule\(scanIndex)'")
1845+
XCTAssertEqual(diagnostics[1].message, "a dependency of main module 'testParallelDependencyScanningDiagnostics\(scanIndex)'")
1846+
}
18221847
}
18231848
} else {
18241849
let globalDiagnostics = try dependencyOracle.getScannerDiagnostics()
@@ -2116,7 +2141,7 @@ final class ExplicitModuleBuildTests: XCTestCase {
21162141
}
21172142

21182143
func testTraceDependency() throws {
2119-
try withTemporaryDirectory { path in
2144+
try withTemporaryDirectory { path in
21202145
try localFileSystem.changeCurrentWorkingDirectory(to: path)
21212146
let moduleCachePath = path.appending(component: "ModuleCache")
21222147
try localFileSystem.createDirectory(moduleCachePath)

0 commit comments

Comments
 (0)