diff options
Diffstat (limited to 'src/test.rs')
-rw-r--r-- | src/test.rs | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/test.rs b/src/test.rs index 2f4a1be..87bfc2a 100644 --- a/src/test.rs +++ b/src/test.rs @@ -22,10 +22,12 @@ impl core::fmt::Display for Flaw { const LARGE_BUF: Mutex<Vec<u8>> = Mutex::new(vec![]); fn test_bytes(bytes: &[u8]) -> Result<(), Flaw> { - let decoder = png::Decoder::new(bytes); + let decoder = png::Decoder::new(std::io::Cursor::new(bytes)); let mut is_valid = true; - if let Ok(mut reader) = decoder.read_info() { - let mut png_buf = vec![0; reader.output_buffer_size()]; + if let Ok(mut reader) = decoder.read_info() + && let Some(output_buffer_size) = reader.output_buffer_size() + { + let mut png_buf = vec![0; output_buffer_size]; if let Ok(png_header) = reader.next_frame(&mut png_buf) { let png_bytes = &png_buf[..png_header.buffer_size()]; @@ -41,6 +43,7 @@ fn test_bytes(bytes: &[u8]) -> Result<(), Flaw> { if png_bytes != mini_bytes { return Err(Flaw::DecodedMismatch); } + // test convert_to_rgba8bpc vs. png_decoder crate let (_, mut data) = png_decoder::decode(bytes).unwrap(); if matches!(image.color_type(), ColorType::Gray | ColorType::Rgb) { // pretend there's no tRNS chunk. |