@@ -635,15 +635,15 @@ mod tests {
635635 #[ test]
636636 fn stream_turn_iterator_with_mock_process ( ) {
637637 // Simulate stdout with assistant + result events
638- let child = Command :: new ( "sh" )
638+ let mut child = Command :: new ( "sh" )
639639 . arg ( "-c" )
640640 . arg ( r#"echo '{"type":"system","subtype":"init"}'; echo '{"type":"assistant","message":{"content":[{"type":"text","text":"Hello"}]}}'; echo '{"type":"result","result":"Hello","subtype":"success"}';"# )
641641 . stdout ( Stdio :: piped ( ) )
642642 . stderr ( Stdio :: piped ( ) )
643643 . spawn ( )
644644 . unwrap ( ) ;
645645
646- let stdout = child. stdout . unwrap ( ) ;
646+ let stdout = child. stdout . take ( ) . unwrap ( ) ;
647647 let mut reader = BufReader :: new ( stdout) ;
648648
649649 // Skip system init
@@ -666,19 +666,20 @@ mod tests {
666666 }
667667
668668 assert_eq ! ( collected, vec![ "Hello" ] ) ;
669+ let _ = child. wait ( ) ;
669670 }
670671
671672 #[ test]
672673 fn stream_turn_iterator_reports_error_events ( ) {
673- let child = Command :: new ( "sh" )
674+ let mut child = Command :: new ( "sh" )
674675 . arg ( "-c" )
675676 . arg ( r#"echo '{"type":"error","error":"something went wrong"}'"# )
676677 . stdout ( Stdio :: piped ( ) )
677678 . stderr ( Stdio :: piped ( ) )
678679 . spawn ( )
679680 . unwrap ( ) ;
680681
681- let stdout = child. stdout . unwrap ( ) ;
682+ let stdout = child. stdout . take ( ) . unwrap ( ) ;
682683 let mut reader = BufReader :: new ( stdout) ;
683684
684685 let mut iter = StreamTurnIterator {
@@ -694,19 +695,20 @@ mod tests {
694695 matches!( item, Err ( ProviderError :: StreamError ( ref msg) ) if msg == "something went wrong" ) ,
695696 "expected StreamError, got: {item:?}"
696697 ) ;
698+ let _ = child. wait ( ) ;
697699 }
698700
699701 #[ test]
700702 fn stream_turn_iterator_skips_non_json_lines ( ) {
701- let child = Command :: new ( "sh" )
703+ let mut child = Command :: new ( "sh" )
702704 . arg ( "-c" )
703705 . arg ( r#"echo 'not json'; echo '{"type":"assistant","message":{"content":[{"type":"text","text":"text"}]}}'; echo '{"type":"result","result":"text","subtype":"success"}';"# )
704706 . stdout ( Stdio :: piped ( ) )
705707 . stderr ( Stdio :: piped ( ) )
706708 . spawn ( )
707709 . unwrap ( ) ;
708710
709- let stdout = child. stdout . unwrap ( ) ;
711+ let stdout = child. stdout . take ( ) . unwrap ( ) ;
710712 let mut reader = BufReader :: new ( stdout) ;
711713
712714 let mut iter = StreamTurnIterator {
@@ -725,6 +727,7 @@ mod tests {
725727 }
726728
727729 assert_eq ! ( texts, vec![ "text" ] ) ;
730+ let _ = child. wait ( ) ;
728731 }
729732
730733 #[ test]
0 commit comments