Skip to content

Commit f77e69a

Browse files
committed
Failing test - cannot decode multi-frame zstd streams
This fails with 131072 bytes read, which is coincidentally zstd's max block size.
1 parent 2c2af42 commit f77e69a

File tree

3 files changed

+18
-0
lines changed

3 files changed

+18
-0
lines changed

crates/async-compression/Cargo.toml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ tokio = { version = "1.38.2", default-features = false, features = [
7272
"macros",
7373
"rt-multi-thread",
7474
"io-std",
75+
"fs",
7576
] }
7677
tokio-util = { version = "0.7", default-features = false, features = ["io"] }
7778

@@ -131,6 +132,10 @@ required-features = ["zstd", "tokio"]
131132
name = "zstd-window-size"
132133
required-features = ["zstd", "tokio"]
133134

135+
[[test]]
136+
name = "zstd-bufread"
137+
required-features = ["zstd", "tokio"]
138+
134139
[[example]]
135140
name = "zlib_tokio_write"
136141
required-features = ["zlib", "tokio"]
1.59 MB
Binary file not shown.
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
use async_compression::tokio::bufread::ZstdDecoder;
2+
3+
#[tokio::test]
4+
async fn multiple_frames() {
5+
let llvm_as = tokio::fs::File::open("tests/artifacts/llvm-as.zstd")
6+
.await
7+
.unwrap();
8+
let buffered = tokio::io::BufReader::new(llvm_as);
9+
let mut decoder = ZstdDecoder::new(buffered);
10+
let mut out = Vec::new();
11+
tokio::io::copy(&mut decoder, &mut out).await.unwrap();
12+
assert_eq!(out.len(), 4401672)
13+
}

0 commit comments

Comments
 (0)