mirror of
https://github.com/storytold/craft-libs.git
synced 2026-11-12 10:03:51 +00:00
28 lines
1.6 KiB
Markdown
28 lines
1.6 KiB
Markdown
# Independent read-only contract
|
|
|
|
This nested workspace tests the shipping `craft-pdf/read` graph separately from the parent
|
|
workspace, whose facade dev-dependencies include an interpreter. Its sole normal dependency is
|
|
`craft-pdf` with defaults disabled and `read` enabled. The local syntax patch is required to
|
|
exercise the vendored decode-limit and incremental-Flate behavior. No interpreter, rasterizer,
|
|
writer, or image codec dependency is declared here.
|
|
|
|
The same three assertions run natively and under `wasm-bindgen-test`: valid Flate page opening
|
|
and complete incremental consumption; independent per-document ordinary stream limits including
|
|
zero and a tighter per-call limit; and the caller input limit on borrowed/shared opening. The
|
|
17-byte synthetic compressed payload expands to 512 known bytes. The only target-specific dev
|
|
dependency is the WASM test harness.
|
|
|
|
From the repository root:
|
|
|
|
```sh
|
|
cargo test --manifest-path crates/pdf/read-only-contract/Cargo.toml --locked
|
|
cargo test --manifest-path crates/pdf/read-only-contract/Cargo.toml --locked --target wasm32-unknown-unknown
|
|
cargo tree --manifest-path crates/pdf/read-only-contract/Cargo.toml --locked --edges normal,features
|
|
```
|
|
|
|
Use a matching `wasm-bindgen-test-runner` through `CARGO_TARGET_WASM32_UNKNOWN_UNKNOWN_RUNNER` for
|
|
actual WASM runtime execution. The native normal dependency graph must contain only the
|
|
`craft-pdf/read` path and its syntax/std dependencies; `hayro-interpret`, `hayro`, `krilla`,
|
|
`hayro-ccitt`, `hayro-jbig2`, `hayro-jpeg2000`, `zune-jpeg`, and the syntax `images`/`unsafe` features
|
|
must be absent. Keep the fixture's own lockfile for reproducibility.
|