@@ -320,17 +320,17 @@ import Testing
320320 try ? FileManager . default. removeItem ( atPath: pipePath)
321321 }
322322
323- var receivedMessages : [ ProgressInfo ] = [ ]
324323 let decoder = JSONDecoder ( )
325- var installCompleted = false
326324
327325 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) " ) }
329329 defer { fileHandle. closeFile ( ) }
330330
331331 var buffer = Data ( )
332332
333- while !installCompleted {
333+ while true {
334334 let data = fileHandle. availableData
335335 if data. isEmpty {
336336 try await Task . sleep ( nanoseconds: 100_000_000 )
@@ -347,13 +347,14 @@ import Testing
347347 if let progress = try ? decoder. decode ( ProgressInfo . self, from: lineData) {
348348 receivedMessages. append ( progress)
349349 if case . complete = progress {
350- installCompleted = true
351- return
350+ return receivedMessages
352351 }
353352 }
354353 }
355354 }
356355 }
356+
357+ return receivedMessages
357358 }
358359
359360 let installTask = Task {
@@ -364,10 +365,10 @@ import Testing
364365 ] )
365366 }
366367
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 ( )
371372
372373 #expect( !receivedMessages. isEmpty, " Named pipe should receive progress entries " )
373374
0 commit comments