tests/Cargo.toml
[package]
name = "znippy-tests"
version = "0.1.0"
edition = "2024"
publish = false
[features]
default = []
# Passthrough to the nornir-testmatrix functional-status emitter. With this
# feature ON, the `functional_status(component, check, ok, detail)` calls in the
# tests + self-tests below append a real matrix row carrying each check's REAL
# result + measured value. With it OFF (the release path) the emitter is a no-op
# and every gated call site is compiled OUT — nothing is built, nothing runs.
testmatrix = ["nornir-testmatrix/testmatrix"]
# Enables the detached-signature provenance layer in znippy-common for the
# before/after seal-throughput bench (`sign_throughput_bench.rs`).
sign = ["znippy-common/sign"]
[dependencies]
znippy-compress = { path = "../znippy-compress", version = "0.10.0" }
# host-decompressors so the npm plugin's package.json parse (scoped names) is
# compiled into the read-API test, not just the filename fallback.
znippy-common = { path = "../znippy-common", version = "0.10.0", features = ["host-decompressors"] }
znippy-plugin-maven = { path = "../plugins/native/znippy-plugin-maven", version = "0.10.0", features = ["resolve", "host-decompressors"] }
znippy-plugin-python = { path = "../plugins/native/znippy-plugin-python", version = "0.10.0", features = ["host-decompressors"] }
znippy-plugin-elf = { path = "../plugins/native/znippy-plugin-elf", version = "0.2.0" }
anyhow = "1.0.100"
tempfile = "3"
# Build real npm `.tgz` (gzip + tar) and gem `.gem` (tar of gzipped members)
# fixtures for the npm/gem plugin read-API tests.
flate2 = "1"
tar = "0.4"
# Build real conda `.tar.bz2` fixtures (bzip2 + tar) for the conda plugin
# read-API test. The encoder (libbz2-backed); lbzip2 (pure-Rust) decodes it.
bzip2 = "0.6"
env_logger = "0.11.8"
walkdir = "2.5.0"
miniz_oxide = "0.9"
# The ONE synthetic ZIP/JAR/wheel writer (method 0 + method 8), shared with the
# xtask bench suite. Three byte-identical copies of the stored-ZIP builder and
# four copies of `crc32` used to live in this crate's test files; the split is
# how the maven bench ended up timing a stored JAR (LAW 5).
znippy-zip-fixtures = { path = "../znippy-zip-fixtures", version = "0.1.0" }
# The house DEFLATE decoder the maven/python plugins' minimal ZIP scans now use
# for method 8. Depended on directly so `plugin_deflate_entry.rs` can assert the
# house inflate is byte-for-byte identical to the third-party `miniz_oxide` it
# replaced — the swap is proven equivalent, not merely "it compiled".
linflate = { version = "0.1.11", path = "../../znippy-zoomies/linflate" }
dirs = "7"
io-uring = "0.7"
libc = "0.2"
# The reusable multi-aspect test-matrix engine. Dev-only — the example
# `quality_matrix` runs znippy's own quality matrix; `tests/testmatrix_wiring.rs`
# proves the wiring offline (no cargo subprocess). The `functional_status`
# emitter (gated by this crate's `testmatrix` feature → `nornir-testmatrix/
# testmatrix`) feeds each test's real result into the matrix. Resolved locally
# to the 0.2.0 sibling checkout via the root `[patch.crates-io]`.
nornir-testmatrix = "0.2"
[dev-dependencies]
# `tests/build_variants.rs` — the RED-when-broken guard over
# `.nornir/build-variants.toml`. It hosts here rather than in `xtask` (which owns
# the `build` verb) because xtask's DEV-dependencies are the heavy bench graph —
# arrow, parquet, io-uring, nornir — and `cargo test -p xtask` builds all of them
# before a pure-declaration check could run. A guard slow enough to skip gets
# skipped. This crate is already the repo-wide guard host (`rayon_free_law.rs`).
#
# Path + version, resolving to the same edda checkout the workspace's existing
# nornir edge already unifies nornir-build-thing 0.1.4 through.
nornir-build-thing = { version = "0.2.0", path = "../../edda/crates/nornir-build-thing", default-features = false }
# Read `[package] version` and `[features]` straight out of the manifests: the
# version-lockstep and feature-existence guards must compare what cargo will read,
# never a number restated in a test.
toml = "1"