File: zstd-dict.rs

package info (click to toggle)
rust-async-compression 0.4.13-1
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 928 kB
  • sloc: makefile: 2
file content (35 lines) | stat: -rw-r--r-- 1,179 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#![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();
}