summaryrefslogtreecommitdiffstats
path: root/third_party/rust/flate2/tests/empty-read.rs
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 17:32:43 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 17:32:43 +0000
commit6bf0a5cb5034a7e684dcc3500e841785237ce2dd (patch)
treea68f146d7fa01f0134297619fbe7e33db084e0aa /third_party/rust/flate2/tests/empty-read.rs
parentInitial commit. (diff)
downloadthunderbird-6bf0a5cb5034a7e684dcc3500e841785237ce2dd.tar.xz
thunderbird-6bf0a5cb5034a7e684dcc3500e841785237ce2dd.zip
Adding upstream version 1:115.7.0.upstream/1%115.7.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'third_party/rust/flate2/tests/empty-read.rs')
-rw-r--r--third_party/rust/flate2/tests/empty-read.rs82
1 files changed, 82 insertions, 0 deletions
diff --git a/third_party/rust/flate2/tests/empty-read.rs b/third_party/rust/flate2/tests/empty-read.rs
new file mode 100644
index 0000000000..7551238336
--- /dev/null
+++ b/third_party/rust/flate2/tests/empty-read.rs
@@ -0,0 +1,82 @@
+extern crate flate2;
+
+use std::io::{Read, Write};
+
+#[test]
+fn deflate_decoder_empty_read() {
+ let original: &[u8] = b"Lorem ipsum dolor sit amet.";
+ let mut encoder =
+ flate2::write::DeflateEncoder::new(Vec::new(), flate2::Compression::default());
+ encoder.write_all(original).unwrap();
+ let encoded: Vec<u8> = encoder.finish().unwrap();
+ let mut decoder = flate2::read::DeflateDecoder::new(encoded.as_slice());
+ assert_eq!(decoder.read(&mut []).unwrap(), 0);
+ let mut decoded = Vec::new();
+ decoder.read_to_end(&mut decoded).unwrap();
+ assert_eq!(decoded.as_slice(), original);
+}
+
+#[test]
+fn deflate_encoder_empty_read() {
+ let original: &[u8] = b"Lorem ipsum dolor sit amet.";
+ let mut encoder = flate2::read::DeflateEncoder::new(original, flate2::Compression::default());
+ assert_eq!(encoder.read(&mut []).unwrap(), 0);
+ let mut encoded = Vec::new();
+ encoder.read_to_end(&mut encoded).unwrap();
+ let mut decoder = flate2::read::DeflateDecoder::new(encoded.as_slice());
+ let mut decoded = Vec::new();
+ decoder.read_to_end(&mut decoded).unwrap();
+ assert_eq!(decoded.as_slice(), original);
+}
+
+#[test]
+fn gzip_decoder_empty_read() {
+ let original: &[u8] = b"Lorem ipsum dolor sit amet.";
+ let mut encoder = flate2::write::GzEncoder::new(Vec::new(), flate2::Compression::default());
+ encoder.write_all(original).unwrap();
+ let encoded: Vec<u8> = encoder.finish().unwrap();
+ let mut decoder = flate2::read::GzDecoder::new(encoded.as_slice());
+ assert_eq!(decoder.read(&mut []).unwrap(), 0);
+ let mut decoded = Vec::new();
+ decoder.read_to_end(&mut decoded).unwrap();
+ assert_eq!(decoded.as_slice(), original);
+}
+
+#[test]
+fn gzip_encoder_empty_read() {
+ let original: &[u8] = b"Lorem ipsum dolor sit amet.";
+ let mut encoder = flate2::read::GzEncoder::new(original, flate2::Compression::default());
+ assert_eq!(encoder.read(&mut []).unwrap(), 0);
+ let mut encoded = Vec::new();
+ encoder.read_to_end(&mut encoded).unwrap();
+ let mut decoder = flate2::read::GzDecoder::new(encoded.as_slice());
+ let mut decoded = Vec::new();
+ decoder.read_to_end(&mut decoded).unwrap();
+ assert_eq!(decoded.as_slice(), original);
+}
+
+#[test]
+fn zlib_decoder_empty_read() {
+ let original: &[u8] = b"Lorem ipsum dolor sit amet.";
+ let mut encoder = flate2::write::ZlibEncoder::new(Vec::new(), flate2::Compression::default());
+ encoder.write_all(original).unwrap();
+ let encoded: Vec<u8> = encoder.finish().unwrap();
+ let mut decoder = flate2::read::ZlibDecoder::new(encoded.as_slice());
+ assert_eq!(decoder.read(&mut []).unwrap(), 0);
+ let mut decoded = Vec::new();
+ decoder.read_to_end(&mut decoded).unwrap();
+ assert_eq!(decoded.as_slice(), original);
+}
+
+#[test]
+fn zlib_encoder_empty_read() {
+ let original: &[u8] = b"Lorem ipsum dolor sit amet.";
+ let mut encoder = flate2::read::ZlibEncoder::new(original, flate2::Compression::default());
+ assert_eq!(encoder.read(&mut []).unwrap(), 0);
+ let mut encoded = Vec::new();
+ encoder.read_to_end(&mut encoded).unwrap();
+ let mut decoder = flate2::read::ZlibDecoder::new(encoded.as_slice());
+ let mut decoded = Vec::new();
+ decoder.read_to_end(&mut decoded).unwrap();
+ assert_eq!(decoded.as_slice(), original);
+}