diff --git a/Sources/XSTooling/Core/ProcessCommand.swift b/Sources/XSTooling/Core/ProcessCommand.swift index 521305c..470e59d 100644 --- a/Sources/XSTooling/Core/ProcessCommand.swift +++ b/Sources/XSTooling/Core/ProcessCommand.swift @@ -1,6 +1,6 @@ import Foundation -public struct ProcessCommand: Hashable { +public struct ProcessCommand: Hashable, @unchecked Sendable { public static func find(_ name: String) -> ProcessCommand? { guard let string = ProcessInfo.processInfo.environment["PATH"] else { return nil diff --git a/Sources/XSTooling/Core/ProcessOutput.swift b/Sources/XSTooling/Core/ProcessOutput.swift index 276a31a..ffe0cb1 100644 --- a/Sources/XSTooling/Core/ProcessOutput.swift +++ b/Sources/XSTooling/Core/ProcessOutput.swift @@ -1,7 +1,7 @@ import Foundation /// Output of the process execution. -public struct ProcessOutput: Hashable { +public struct ProcessOutput: Hashable, @unchecked Sendable { /// Constants that specify the termination reason values that the system returns. public typealias TerminationReason = Process.TerminationReason diff --git a/Sources/XSTooling/Shell.swift b/Sources/XSTooling/Shell.swift index eef16dc..9071035 100644 --- a/Sources/XSTooling/Shell.swift +++ b/Sources/XSTooling/Shell.swift @@ -1,6 +1,6 @@ import Foundation -public struct Shell: Equatable { +public struct Shell: Equatable, Sendable { /// The default shell. public static var `default`: Shell { let path = ProcessInfo.processInfo.environment["SHELL"] diff --git a/Sources/XSTooling/Simctl.swift b/Sources/XSTooling/Simctl.swift index 82fd538..0a77b7d 100644 --- a/Sources/XSTooling/Simctl.swift +++ b/Sources/XSTooling/Simctl.swift @@ -1,5 +1,5 @@ /// Command line utility to control the Simulator. -public struct Simctl: Equatable { +public struct Simctl: Equatable, Sendable { public var command: ProcessCommand public init(command: ProcessCommand) { @@ -14,7 +14,7 @@ public struct Simctl: Equatable { DeviceControl(simulator: self, udid: uuid) } - public struct DeviceControl { + public struct DeviceControl: Sendable { let simulator: Simctl let udid: String @@ -38,7 +38,7 @@ public struct Simctl: Equatable { } } - public struct ApplicationControl { + public struct ApplicationControl: Sendable { let device: DeviceControl let bundleIdentifier: String @@ -59,7 +59,7 @@ public struct Simctl: Equatable { } /// Installed app's container. - public struct Container { + public struct Container: Sendable { let application: ApplicationControl /// The .app bundle. @@ -115,7 +115,7 @@ extension Simctl { return ListQuery(command: command.appending(arguments: arguments)) } - public struct ListQuery { + public struct ListQuery: Sendable { public var command: ProcessCommand public func read() async throws -> ProcessOutput { @@ -182,7 +182,7 @@ extension Simctl { } } - public struct DeviceInfo: Codable, Equatable { + public struct DeviceInfo: Codable, Equatable, Sendable { public let dataPath: String public let logPath: String public let udid: String @@ -192,7 +192,7 @@ extension Simctl { public let name: String } - public struct DeviceType: Codable, Equatable { + public struct DeviceType: Codable, Equatable, Sendable { public let minRuntimeVersion: Int public let bundlePath: String public let maxRuntimeVersion: Int diff --git a/Sources/XSTooling/XCRun.swift b/Sources/XSTooling/XCRun.swift index f530f05..8f11017 100644 --- a/Sources/XSTooling/XCRun.swift +++ b/Sources/XSTooling/XCRun.swift @@ -1,5 +1,5 @@ /// Run or locate development tools and properties. -public struct XCRun: Equatable { +public struct XCRun: Equatable, Sendable { public var command: ProcessCommand public init(path: String = "/usr/bin/xcrun") { diff --git a/Tests/XSToolingTests/GHTest/GHTestCase.swift b/Tests/XSToolingTests/GHTest/GHTestCase.swift index c721c3b..ff06125 100644 --- a/Tests/XSToolingTests/GHTest/GHTestCase.swift +++ b/Tests/XSToolingTests/GHTest/GHTestCase.swift @@ -31,10 +31,11 @@ class GHTestCase: XCTestCase { override func record(_ issue: XCTIssue) { if github.isEnabled { + let message = "\(self.name): \(issue.compactDescription)" if let location = issue.sourceCodeContext.location { - github.error(file: location.fileURL.absoluteString, line: location.lineNumber, message: issue.compactDescription) + github.error(file: location.fileURL.absoluteString, line: location.lineNumber, message: message) } else { - github.error(message: issue.compactDescription) + github.error(message: message) } } super.record(issue)