- Feature Name: basic_integration_testing - Start Date: 2020-09-04 - Design PR: [ZcashFoundation/zebra#0000](https://github.com/ZcashFoundation/zebra/pull/0000) - Zebra Issue: [ZcashFoundation/zebra#1004](https://github.com/ZcashFoundation/zebra/issues/1004) # Summary [summary]: #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 [motivation]: #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. # Definitions [definitions]: #definitions # Guide-level explanation [guide-level-explanation]: #guide-level-explanation # Reference-level explanation [reference-level-explanation]: #reference-level-explanation # Drawbacks [drawbacks]: #drawbacks # Rationale and alternatives [rationale-and-alternatives]: #rationale-and-alternatives # Prior art [prior-art]: #prior-art # Unresolved questions [unresolved-questions]: #unresolved-questions # Future possibilities [future-possibilities]: #future-possibilities