We currently use a bit of a hack in `.cargo/config` to make sure that clippy isn't too annoying by specifying the list of lints. There is now a stable way to define lints for a workspace. The only down side is that every crate seems to have to opt into this so there's a *few* files modified in this PR. Dependencies: - [x] PR that upgrades CI to use rust 1.74 is merged. --------- Co-authored-by: joe petrowski <25483142+joepetrowski@users.noreply.github.com> Co-authored-by: Branislav Kontur <bkontur@gmail.com> Co-authored-by: Liam Aharon <liam.aharon@hotmail.com>
PVF Host
This is the PVF host, responsible for responding to requests from Candidate Validation and spawning worker tasks to fulfill those requests.
See also:
- for more information: the Implementer's Guide
- for an explanation of terminology: the Glossary
Running basic tests
Running cargo test in the pvf/ directory will run unit and integration
tests.
Note: some tests run only under Linux, amd64, and/or with the
ci-only-tests feature enabled.
See the general Testing instructions for more information on running tests and observing logs.
Running a test-network with zombienet
Since this crate is consensus-critical, for major changes it is highly recommended to run a test-network. See the "Behavior tests" section of the Testing docs for full instructions.
To run the PVF-specific zombienet test:
RUST_LOG=parachain::pvf=trace zombienet --provider=native spawn zombienet_tests/functional/0001-parachains-pvf.toml
Testing on Linux
Some of the PVF functionality, especially related to security, is Linux-only, and some is amd64-only. If you touch anything security-related, make sure to test on Linux amd64! If you're on a Mac, you can either run a VM or you can hire a VPS and use the open-source tool EternalTerminal to connect to it.1
-
Unlike ssh, ET preserves your session across disconnects, and unlike another popular persistent shell, mosh, it allows scrollback. ↩︎