chiark / gitweb /
packetframe: Provide read_all
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 17 Apr 2021 11:16:16 +0000 (12:16 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Fri, 23 Apr 2021 18:32:07 +0000 (19:32 +0100)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
src/packetframe.rs

index ba1f708636c9bcd7b18e66ae5bb57171bb022200..f64960f75cc78f0f48a019572fbb35ea49193738 100644 (file)
@@ -340,6 +340,12 @@ fn write_test(){
     assert_eq!(r.kind(), ErrorKind::Other);
     assert!(r.into_inner().unwrap().is::<SenderError>());
   };
+  let expect_good = |rd: &mut FrameReader<_>, expected: &[u8]| {
+    let mut buf = vec![];
+    let mut frame = rd.new_frame().unwrap();
+    frame.read_to_end(&mut buf).unwrap();
+    assert_eq!(&*buf ,expected);
+  }; 
 
   let mut rd = FrameReader::new(&*msg.buf);
   let mut buf = [0u8;10];
@@ -355,4 +361,12 @@ fn write_test(){
     let mut _frame = rd.new_frame().unwrap();
   }
   expect_boom(&mut rd);
+
+  let read_all = || {
+    let mut rd = FrameReader::new(&*msg.buf);
+    expect_good(&mut rd, b"hello");
+    expect_boom(&mut rd);
+    expect_good(&mut rd, b"longer!");
+  };
+  read_all();
 }