@@ -39,11 +39,6 @@ public struct SourceKitResponseData: Codable {
39
39
public enum SourceKitError : Error {
40
40
case crashed( request: RequestInfo )
41
41
case timedOut( request: RequestInfo )
42
- /// Thrown if a request was close to the time out that triggers a timedOut
43
- /// error.
44
- /// If it was counted how many instructions SourceKit took to fulfill the
45
- /// request, `instructions` contains that number. Otherwise it's `nil`.
46
- case softTimeout( request: RequestInfo , duration: TimeInterval , instructions: Int ? )
47
42
case failed( _ reason: SourceKitErrorReason , request: RequestInfo , response: String )
48
43
49
44
public var request : RequestInfo {
@@ -52,25 +47,26 @@ public enum SourceKitError: Error {
52
47
return request
53
48
case . timedOut( let request) :
54
49
return request
55
- case . softTimeout( let request, _, _) :
56
- return request
57
50
case . failed( _, let request, _) :
58
51
return request
59
52
}
60
53
}
61
54
62
55
/// Soft errors are allowed to match XFails, but don't fail the stress tester
63
56
/// on their own.
64
- /// The current use case for soft errors are soft timeouts, where the request
65
- /// took more than half of the allowed time. If the issue is XFailed, we don't
66
- /// want to mark it as unexpectedly passed because the faster execution time
67
- /// might be due to noise. But we haven't surpassed the limit either, so it
68
- /// shouldn't be a hard error either.
57
+ ///
58
+ /// The current use case for soft errors are timeouts, since it's possible
59
+ /// that it hits a failure on a faster run, which can lead to non-determinism
60
+ /// in matching XFAILs.
61
+ ///
62
+ /// Timouts aren't considered errors on their own since they would be a major
63
+ /// cause of stress tester failures, producing noise. We instead use
64
+ /// instruction count measurements to keep track of performance.
69
65
public var isSoft : Bool {
70
66
switch self {
71
- case . crashed, . timedOut , . failed:
67
+ case . crashed, . failed:
72
68
return false
73
- case . softTimeout :
69
+ case . timedOut :
74
70
return true
75
71
}
76
72
}
@@ -210,7 +206,7 @@ extension SourceKitError: Codable {
210
206
case error, kind, request, response, duration, instructions
211
207
}
212
208
enum BaseError : String , Codable {
213
- case crashed, failed, timedOut, softTimeout
209
+ case crashed, failed, timedOut
214
210
}
215
211
216
212
public init ( from decoder: Decoder ) throws {
@@ -222,11 +218,6 @@ extension SourceKitError: Codable {
222
218
case . timedOut:
223
219
let request = try container. decode ( RequestInfo . self, forKey: . request)
224
220
self = . timedOut( request: request)
225
- case . softTimeout:
226
- let request = try container. decode ( RequestInfo . self, forKey: . request)
227
- let duration = try container. decode ( Double . self, forKey: . duration)
228
- let instructions = try container. decodeIfPresent ( Int . self, forKey: . instructions)
229
- self = . softTimeout( request: request, duration: duration, instructions: instructions)
230
221
case . failed:
231
222
let reason = try container. decode ( SourceKitErrorReason . self, forKey: . kind)
232
223
let request = try container. decode ( RequestInfo . self, forKey: . request)
@@ -244,11 +235,6 @@ extension SourceKitError: Codable {
244
235
case . timedOut( let request) :
245
236
try container. encode ( BaseError . timedOut, forKey: . error)
246
237
try container. encode ( request, forKey: . request)
247
- case . softTimeout( let request, let duration, let instructions) :
248
- try container. encode ( BaseError . softTimeout, forKey: . error)
249
- try container. encode ( request, forKey: . request)
250
- try container. encode ( duration, forKey: . duration)
251
- try container. encodeIfPresent ( instructions, forKey: . instructions)
252
238
case . failed( let kind, let request, let response) :
253
239
try container. encode ( BaseError . failed, forKey: . error)
254
240
try container. encode ( kind, forKey: . kind)
@@ -537,14 +523,6 @@ extension SourceKitError: CustomStringConvertible {
537
523
\( markSourceLocation ( of: request) ?? " <unmodified> " )
538
524
-- end file content ----------
539
525
"""
540
- case . softTimeout( let request, let duration, let instructions) :
541
- return """
542
- Request took \( duration) seconds ( \( instructions. map ( String . init) ?? " <unknown> " ) instructions) to execute. This is more than a tenth of the allowed time. This error will match XFails but won't count as an error by itself.
543
- request: \( request)
544
- -- begin file content --------
545
- \( markSourceLocation ( of: request) ?? " <unmodified> " )
546
- -- end file content ----------
547
- """
548
526
case . failed( let reason, let request, let response) :
549
527
return """
550
528
\( reason)
0 commit comments