Skip to content

Latest commit

 

History

History

README.md

Testing

Tests should establish that a package manager consumes the intended patched bytes, that VEX describes the resulting state, and that reruns and reversal preserve unrelated project data. See development for basic Rust and Python checks.

Test layers

Layer Location / entry point Purpose
Core unit tests and fixtures cargo test --locked -p socket-patch-core --lib; core tests/fixtures/ Parsers, rewrites, integrity checks, and refusal cases
CLI parser and in-process tests crates/socket-patch-cli/tests/cli_parse_*.rs, in_process_*, command suites Flags, defaults, output, lifecycle, and failures
Native package-manager suites CLI e2e_redirect_*_build, e2e_vendor_*_build, and VEX suites Real installs against controlled patch inputs
Production suites Hosted, vendored Real patch-service responses and artifact delivery
Release compatibility backtests Package-manager guides below and scripts/backtest-*.py Format and installer boundaries across published releases
Container suites Docker guide Toolchain isolation and offline installs
Performance benchmarks crates/socket-patch-bench, .github/workflows/bench.yml scan timings, memory and API request counts per package manager, compared against the base on every PR

Native suites require the tools named in their guide. Opt-in or unavailable-toolchain skips are not installation evidence. Use the suite's *_REQUIRED or *_STRICT setting when that toolchain is required for the check.

Package-manager guides

Ecosystem Guides
npm family npm, pnpm, Yarn Berry, Bun, vlt
Python uv, Poetry, PDM, Pipenv, Hatch
PHP Composer
JVM Maven reactor and Gradle vendoring

Other ecosystems have Rust and container suites listed in ecosystem support and the Docker guide.

CI and results

CI separates normal PR coverage from broader release, main-branch, nightly, and manual matrices. Package-manager compatibility workflows define additional matrices. Read the workflow for the authoritative versions, triggers, required flags, and artifact names.

The vlt compatibility tables define a generated leg manifest; vlt-coverage.json maps diagnostics to tests. These are executable specifications and are checked by scripts/tests/, not historical reports.

Backtest runners write JSON results and can render summary tables. Keep each run's results, binary versions, source revision, and logs together in CI artifacts or a local output directory. Update the maintained compatibility boundaries when new evidence changes them. A past successful run or catalog snapshot is not a claim that the current branch or production service passes today.