From 509ac6a8e3151c065a7ee609fcdabf8847fc0498 Mon Sep 17 00:00:00 2001 From: Martin Fischer Date: Sun, 3 Sep 2023 17:16:44 +0200 Subject: test: verify BufReadReader skips line on invalid UTF-8 --- src/reader.rs | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/reader.rs b/src/reader.rs index b08821f..a987b28 100644 --- a/src/reader.rs +++ b/src/reader.rs @@ -173,3 +173,23 @@ impl<'a, R: Read + 'a> IntoReader<'a> for BufReader { BufReadReader::new(self) } } + +#[cfg(test)] +mod tests { + use std::io::{BufReader, ErrorKind}; + use std::str::Utf8Error; + + use super::{IntoReader, Reader}; + + #[test] + #[should_panic] // FIXME + fn buf_read_reader_invalid_utf8() { + let mut reader = BufReader::new(b" \xc3\x28" as &[u8]).into_reader(); + assert_eq!(reader.read_char().unwrap(), Some(' ')); + let error = reader.read_char().unwrap_err(); + assert!(matches!(error.kind(), ErrorKind::InvalidData)); + error.into_inner().unwrap().downcast::().unwrap(); + assert_eq!(reader.read_char().unwrap(), Some('(')); + assert_eq!(reader.read_char().unwrap(), None); + } +} -- cgit v1.2.3