#![cfg(not(windows))] use tokio::io::AsyncWriteExt as _; #[tokio::test] async fn trained_zstd_decode_no_dict() { let compressed = include_bytes!("./artifacts/lib.rs.zst"); let mut decoder = async_compression::tokio::write::ZstdDecoder::new(Vec::new()); decoder.write_all(compressed).await.unwrap_err(); } #[tokio::test] async fn trained_zstd_decode_with_dict() { let source = include_bytes!("./artifacts/lib.rs"); let dict = include_bytes!("./artifacts/dictionary-rust"); let compressed = include_bytes!("./artifacts/lib.rs.zst"); let mut decoder = async_compression::tokio::write::ZstdDecoder::with_dict(Vec::new(), dict).unwrap(); decoder.write_all(compressed).await.unwrap(); decoder.shutdown().await.unwrap(); assert_eq!(decoder.into_inner(), source); } #[tokio::test] async fn trained_zstd_decode_with_wrong_dict() { let dict = include_bytes!("./artifacts/dictionary-rust-other"); let compressed = include_bytes!("./artifacts/lib.rs.zst"); let mut decoder = async_compression::tokio::write::ZstdDecoder::with_dict(Vec::new(), dict).unwrap(); decoder.write_all(compressed).await.unwrap_err(); }