@@ -320,17 +320,17 @@ import Testing
320
320
try ? FileManager . default. removeItem ( atPath: pipePath)
321
321
}
322
322
323
- var receivedMessages : [ ProgressInfo ] = [ ]
324
323
let decoder = JSONDecoder ( )
325
- var installCompleted = false
326
324
327
325
let readerTask = Task {
328
- guard let fileHandle = FileHandle ( forReadingAtPath: pipePath) else { return }
326
+ var receivedMessages : [ ProgressInfo ] = [ ]
327
+
328
+ guard let fileHandle = FileHandle ( forReadingAtPath: pipePath) else { throw SwiftlyError ( message: " Unable to open file handle at \( pipePath) " ) }
329
329
defer { fileHandle. closeFile ( ) }
330
330
331
331
var buffer = Data ( )
332
332
333
- while !installCompleted {
333
+ while true {
334
334
let data = fileHandle. availableData
335
335
if data. isEmpty {
336
336
try await Task . sleep ( nanoseconds: 100_000_000 )
@@ -347,13 +347,14 @@ import Testing
347
347
if let progress = try ? decoder. decode ( ProgressInfo . self, from: lineData) {
348
348
receivedMessages. append ( progress)
349
349
if case . complete = progress {
350
- installCompleted = true
351
- return
350
+ return receivedMessages
352
351
}
353
352
}
354
353
}
355
354
}
356
355
}
356
+
357
+ return receivedMessages
357
358
}
358
359
359
360
let installTask = Task {
@@ -364,10 +365,10 @@ import Testing
364
365
] )
365
366
}
366
367
367
- await withTaskGroup ( of : Void . self ) { group in
368
- group . addTask { try ? await readerTask . value }
369
- group . addTask { try ? await installTask . value }
370
- }
368
+ let readerResult = await readerTask . result
369
+ try await installTask . value
370
+
371
+ let receivedMessages = try readerResult . get ( )
371
372
372
373
#expect( !receivedMessages. isEmpty, " Named pipe should receive progress entries " )
373
374
0 commit comments