6.3 KiB
6.3 KiB
- Feature Name: basic_integration_testing
- Start Date: 2020-09-04
- Design PR: ZcashFoundation/zebra#0000
- Zebra Issue: ZcashFoundation/zebra#1004
Summary
Zebra's basic integration tests make sure that it works when deployed on mainnet and testnet.
Basic acceptance tests:
- genesis tests for basic network integration
- restart with existing state
- quick tests for a few thousand blocks
- can be unstable on the current testnet
checkpoint_sync = true- not yet implemented
On main branch merge:
- slow tests past the canopy mandatory checkpoint, for full block verification
- slow tests to the tip of the chain
For an up-to-date list, see:
- https://github.com/ZcashFoundation/zebra/blob/main/zebrad/tests/acceptance.rs
- https://github.com/ZcashFoundation/zebra/tree/main/.github/workflows
Design strategies:
- we write Rust-based acceptance tests, not shell scripts
- use #[ignored] to disable long-running integration tests by default
- use a feature to disable integration tests that need pre-cached state
Logging plans:
- limit bundled logs to the first N lines, and the last N lines ?
- write logs to a file ?
- work out how to avoid filling up the child stdout and stderr pipes
- keep warning and error logs
- only keep initial and final info/debug/trace logs
Motivation
To develop and deploy Zebra, we need to make sure that its sync, verify, and state functionality works.
These tests help us be confident that PRs and main branch merges don't break Zebra's basic functionality.