Skip to content

Commit af118c6

Browse files
committed
Instead of querying target info in test, verify it was successfully received
1 parent 2e40337 commit af118c6

File tree

2 files changed

+29
-13
lines changed

2 files changed

+29
-13
lines changed

Sources/SwiftDriver/SwiftScan/SwiftScan.swift

Lines changed: 28 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -319,8 +319,7 @@ internal extension swiftscan_diagnostic_severity_t {
319319
api.swiftscan_string_set_dispose != nil
320320
}
321321

322-
@_spi(Testing) public func queryTargetInfo(invocationCommand: [String])
323-
throws -> FrontendTargetInfo {
322+
func queryTargetInfo(invocationCommand: [String]) throws -> FrontendTargetInfo {
324323
// Create and configure the scanner invocation
325324
let invocation = api.swiftscan_scan_invocation_create()
326325
defer { api.swiftscan_scan_invocation_dispose(invocation) }
@@ -334,18 +333,35 @@ internal extension swiftscan_diagnostic_severity_t {
334333
print("--> ResultData: \(targetInfoData)")
335334
let info = try JSONDecoder().decode(FrontendTargetInfo.self, from: targetInfoData)
336335
print("--> Result info: \(info)")
337-
let verifiedInfo = verifyTargetInfo(info)
338-
print("--> Verified Result info: \(info)")
339-
return verifiedInfo
336+
return info
340337
}
341338

342-
private func verifyTargetInfo(_ info: FrontendTargetInfo) -> FrontendTargetInfo {
343-
print("<<< Verifying Target Info >>>")
344-
print(info.compilerVersion)
345-
print(info.paths)
346-
print(info.target)
347-
print("<<< --------------------- >>>")
348-
return info
339+
340+
@_spi(Testing) public func verifyBeingAbleToQueryTargetInfo(invocationCommand: [String]) -> Bool {
341+
do {
342+
// Create and configure the scanner invocation
343+
let invocation = api.swiftscan_scan_invocation_create()
344+
defer { api.swiftscan_scan_invocation_dispose(invocation) }
345+
withArrayOfCStrings(invocationCommand) { invocationStringArray in
346+
api.swiftscan_scan_invocation_set_argv(invocation,
347+
Int32(invocationCommand.count),
348+
invocationStringArray)
349+
}
350+
let targetInfoString = try toSwiftString(api.swiftscan_compiler_target_info_query(invocation))
351+
let targetInfoData = Data(targetInfoString.utf8)
352+
print("--> ResultData: \(targetInfoData)")
353+
let info = try JSONDecoder().decode(FrontendTargetInfo.self, from: targetInfoData)
354+
print("--> Result info: \(info)")
355+
print("<<< Verifying Target Info >>>")
356+
print(info.compilerVersion)
357+
print(info.paths)
358+
print(info.target)
359+
print("<<< --------------------- >>>")
360+
} catch {
361+
print(error)
362+
return false
363+
}
364+
return true
349365
}
350366
}
351367

Tests/SwiftDriverTests/SwiftDriverTests.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4800,7 +4800,7 @@ final class SwiftDriverTests: XCTestCase {
48004800
if libSwiftScanInstance.canQueryTargetInfo() {
48014801
do {
48024802
print("Library able to query target info")
4803-
let targetInfo = try libSwiftScanInstance.queryTargetInfo(invocationCommand: targetInfoArgs)
4803+
XCTAssertTrue(libSwiftScanInstance.verifyBeingAbleToQueryTargetInfo(invocationCommand: targetInfoArgs))
48044804
print("Target Info Query complete. ✅")
48054805
//print(targetInfo.runtimeLibraryImportPaths)
48064806
} catch {

0 commit comments

Comments
 (0)