From 8ecf8b99cfd0253b4134a9b28c72828d50bfaef5 Mon Sep 17 00:00:00 2001 From: Mitsuharu Seki Date: Thu, 27 Dec 2018 03:25:56 +0900 Subject: [PATCH 1/3] Add test to fail with bzip2 --- src/bzip2/mod.rs | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/bzip2/mod.rs b/src/bzip2/mod.rs index fac4dc3..3179b51 100644 --- a/src/bzip2/mod.rs +++ b/src/bzip2/mod.rs @@ -141,4 +141,31 @@ mod tests { include_bytes!("../../data/sample4.ref"), ); } + + #[test] + fn test_long() { + setup(); + let data = b"a".into_iter() + .cycle() + .take(1000) + .cloned() + .collect::>(); + + let compressed = data + .iter() + .cloned() + .encode(&mut BZip2Encoder::new(9), Action::Finish) + .collect::, _>>(); + + let decompressed = compressed.unwrap() + .iter() + .cloned() + .decode(&mut BZip2Decoder::new()) + .collect::, _>>(); + + if let Err(e) = decompressed { + debug!("{}", e); + } + assert_eq!(decompressed, Ok(data)); + } } From a849d59b4f265d76f1b39143f68d94094c954e13 Mon Sep 17 00:00:00 2001 From: Mitsuharu Seki Date: Thu, 27 Dec 2018 03:28:02 +0900 Subject: [PATCH 2/3] Fix RLE decompress bug --- src/bzip2/decoder.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bzip2/decoder.rs b/src/bzip2/decoder.rs index 00a94e3..740e502 100644 --- a/src/bzip2/decoder.rs +++ b/src/bzip2/decoder.rs @@ -575,7 +575,7 @@ where } let buffer = try!(self.get_next_lfm()); - if buffer == self.result_charactor { + if buffer == self.result_charactor && self.result_count < 4 { self.result_count += 1; self.result_wrote_count += 1; } else { From 5b8c22b9df6df4aedfc4941b1ecc37e30f6981c5 Mon Sep 17 00:00:00 2001 From: chalharu Date: Thu, 27 Dec 2018 04:12:24 +0900 Subject: [PATCH 3/3] change version string --- Cargo.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 93461a3..665c7ef 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "compression" -version = "0.1.2" +version = "0.1.3" authors = ["Mitsuharu Seki "] repository = "https://github.com/chalharu/rust-compression" keywords = ["compress", "gzip", "deflate", "bzip2", "no_std"] @@ -41,4 +41,4 @@ lint = [ "clippy", "all" ] travis-ci = { repository = "chalharu/rust-compression" } [package.metadata.docs.rs] -features = ["docs"] \ No newline at end of file +features = ["docs"]