Uncomment dev-dependencies that were previously commented out to break circular dependencies. These dependencies are needed for tests to compile when running clippy with --all-targets --all-features. Changes include: - pezkuwi/node/*: Add pezkuwi-node-subsystem-test-helpers, pezkuwi-primitives-test-helpers - pezkuwi/xcm/*: Add pezpallet-xcm, xcm-pez-simulator - pezcumulus/client/*: Add test client, runtime, and sproof builder deps - bizinikiwi/pezframe/*: Add bizinikiwi-test-utils, pezframe-support-test, pezpallet-transaction-payment, pezpallet-example-basic, etc. - vendor/pezkuwi-zombienet-sdk: Fix imports from zombienet_sdk to pezkuwi_zombienet_sdk All runtime-benchmarks feature flags have been updated accordingly. cargo clippy --all-targets --all-features --workspace now passes.
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, x86-64, 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=teyrchain::pvf=trace zombienet --provider=native spawn zombienet_tests/functional/0001-teyrchains-pvf.toml
Testing on Linux
Some of the PVF functionality, especially related to security, is Linux-only, and some is x86-64-only. If you touch anything security-related, make sure to test on Linux x86-64! 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. ↩︎