mirror of
https://gitlab.com/pulsechaincom/lighthouse-pulse.git
synced 2025-01-16 00:48:20 +00:00
d9f4819fe0
The PR: * Adds the ability to generate a crucial test scenario that isn't possible with `BeaconChainHarness` (i.e. two blocks occupying the same slot; previously forks necessitated skipping slots): ![image](https://user-images.githubusercontent.com/165678/88195404-4bce3580-cc40-11ea-8c08-b48d2e1d5959.png) * New testing API: Instead of repeatedly calling add_block(), you generate a sorted `Vec<Slot>` and leave it up to the framework to generate blocks at those slots. * Jumping backwards to an earlier epoch is a hard error, so that tests necessarily generate blocks in a epoch-by-epoch manner. * Configures the test logger so that output is printed on the console in case a test fails. The logger also plays well with `--nocapture`, contrary to the existing testing framework * Rewrites existing fork pruning tests to use the new API * Adds a tests that triggers finalization at a non epoch boundary slot * Renamed `BeaconChainYoke` to `BeaconChainTestingRig` because the former has been too confusing * Fixed multiple tests (e.g. `block_production_different_shuffling_long`, `delete_blocks_and_states`, `shuffling_compatible_simple_fork`) that relied on a weird (and accidental) feature of the old `BeaconChainHarness` that attestations aren't produced for epochs earlier than the current one, thus masking potential bugs in test cases. Co-authored-by: Michael Sproul <michael@sigmaprime.io>
56 lines
1.6 KiB
Rust
56 lines
1.6 KiB
Rust
#![recursion_limit = "128"] // For lazy-static
|
|
#[macro_use]
|
|
extern crate lazy_static;
|
|
|
|
#[macro_use]
|
|
extern crate slog;
|
|
extern crate slog_term;
|
|
|
|
pub mod attestation_verification;
|
|
mod beacon_chain;
|
|
mod beacon_fork_choice_store;
|
|
mod beacon_snapshot;
|
|
mod block_verification;
|
|
pub mod builder;
|
|
pub mod chain_config;
|
|
mod errors;
|
|
pub mod eth1_chain;
|
|
pub mod events;
|
|
mod head_tracker;
|
|
mod metrics;
|
|
pub mod migrate;
|
|
mod naive_aggregation_pool;
|
|
mod observed_attestations;
|
|
mod observed_attesters;
|
|
mod observed_block_producers;
|
|
pub mod observed_operations;
|
|
mod persisted_beacon_chain;
|
|
mod persisted_fork_choice;
|
|
mod shuffling_cache;
|
|
mod snapshot_cache;
|
|
pub mod test_utils;
|
|
mod timeout_rw_lock;
|
|
mod validator_pubkey_cache;
|
|
|
|
pub use self::beacon_chain::{
|
|
AttestationProcessingOutcome, BeaconChain, BeaconChainTypes, ChainSegmentResult,
|
|
ForkChoiceError, StateSkipConfig,
|
|
};
|
|
pub use self::beacon_snapshot::BeaconSnapshot;
|
|
pub use self::chain_config::ChainConfig;
|
|
pub use self::errors::{BeaconChainError, BlockProductionError};
|
|
pub use attestation_verification::Error as AttestationError;
|
|
pub use beacon_fork_choice_store::{BeaconForkChoiceStore, Error as ForkChoiceStoreError};
|
|
pub use block_verification::{BlockError, GossipVerifiedBlock};
|
|
pub use eth1_chain::{Eth1Chain, Eth1ChainBackend};
|
|
pub use events::EventHandler;
|
|
pub use metrics::scrape_for_metrics;
|
|
pub use parking_lot;
|
|
pub use slot_clock;
|
|
pub use state_processing::per_block_processing::errors::{
|
|
AttestationValidationError, AttesterSlashingValidationError, DepositValidationError,
|
|
ExitValidationError, ProposerSlashingValidationError,
|
|
};
|
|
pub use store;
|
|
pub use types;
|