Skip to content

Commit f4709ef

Browse files
committed
[Test Only] Make CachingBuildTests.testDependencyScanning be adaptable to scanner diagnostic revisions
Instead of throwing a failure, a scan may return a hollow result carrying diagnostic error payload
1 parent 0bbf04d commit f4709ef

File tree

1 file changed

+21
-9
lines changed

1 file changed

+21
-9
lines changed

Tests/SwiftDriverTests/CachingBuildTests.swift

+21-9
Original file line numberDiff line numberDiff line change
@@ -829,15 +829,27 @@ final class CachingBuildTests: XCTestCase {
829829
"-cas-path", casPath2.nativePathString(escaped: true),
830830
]
831831
var scanDiagnostics: [ScannerDiagnosticPayload] = []
832-
XCTAssertThrowsError(try dependencyOracle.getDependencies(workingDirectory: path,
833-
commandLine: command,
834-
diagnostics: &scanDiagnostics)) {
835-
XCTAssertTrue($0 is DependencyScanningError)
836-
}
837-
let diags = try XCTUnwrap(dependencyOracle.getScannerDiagnostics())
838-
XCTAssertEqual(diags.count, 1)
839-
XCTAssertEqual(diags[0].severity, .error)
840-
XCTAssertEqual(diags[0].message, "CAS error encountered: conflicting CAS options used in scanning service")
832+
do {
833+
let _ = try dependencyOracle.getDependencies(workingDirectory: path,
834+
commandLine: command,
835+
diagnostics: &scanDiagnostics)
836+
} catch let error {
837+
XCTAssertTrue(error is DependencyScanningError)
838+
}
839+
840+
let testDiagnostics: [ScannerDiagnosticPayload]
841+
if try dependencyOracle.supportsPerScanDiagnostics(),
842+
!scanDiagnostics.isEmpty {
843+
testDiagnostics = scanDiagnostics
844+
print("Using Per-Scan diagnostics")
845+
} else {
846+
testDiagnostics = try XCTUnwrap(dependencyOracle.getScannerDiagnostics())
847+
print("Using Scanner-Global diagnostics")
848+
}
849+
850+
XCTAssertEqual(testDiagnostics.count, 1)
851+
XCTAssertEqual(testDiagnostics[0].severity, .error)
852+
XCTAssertEqual(testDiagnostics[0].message, "CAS error encountered: conflicting CAS options used in scanning service")
841853
}
842854
}
843855

0 commit comments

Comments
 (0)