mirror of
https://github.com/sigp/lighthouse.git
synced 2026-03-05 09:41:42 +00:00
* Add logging on shutdown
* Replace tokio::spawn with handle.spawn
* Upgrade tokio
* Add a task executor
* Beacon chain tasks use task executor
* Validator client tasks use task executor
* Rename runtime_handle to executor
* Add duration histograms; minor fixes
* Cleanup
* Fix logs
* Fix tests
* Remove random file
* Get enr dependency instead of libp2p
* Address some review comments
* Libp2p takes a TaskExecutor
* Ugly fix libp2p tests
* Move TaskExecutor to own file
* Upgrade Dockerfile rust version
* Minor fixes
* Revert "Ugly fix libp2p tests"
This reverts commit 58d4bb690f.
* Pretty fix libp2p tests
* Add spawn_without_exit; change Counter to Gauge
* Tidy
* Move log from RuntimeContext to TaskExecutor
* Fix errors
* Replace histogram with int_gauge for async tasks
* Fix todo
* Fix memory leak in test by exiting all spawned tasks at the end
56 lines
1.6 KiB
Rust
56 lines
1.6 KiB
Rust
#![cfg(test)]
|
|
|
|
use beacon_chain::StateSkipConfig;
|
|
use node_test_rig::{
|
|
environment::{Environment, EnvironmentBuilder},
|
|
testing_client_config, LocalBeaconNode,
|
|
};
|
|
use types::{EthSpec, MinimalEthSpec, Slot};
|
|
|
|
fn env_builder() -> EnvironmentBuilder<MinimalEthSpec> {
|
|
EnvironmentBuilder::minimal()
|
|
}
|
|
|
|
fn build_node<E: EthSpec>(env: &mut Environment<E>) -> LocalBeaconNode<E> {
|
|
let context = env.core_context();
|
|
env.runtime()
|
|
.block_on(LocalBeaconNode::production(
|
|
context,
|
|
testing_client_config(),
|
|
))
|
|
.expect("should block until node created")
|
|
}
|
|
|
|
#[test]
|
|
fn http_server_genesis_state() {
|
|
let mut env = env_builder()
|
|
.null_logger()
|
|
.expect("should build env logger")
|
|
.multi_threaded_tokio_runtime()
|
|
.expect("should start tokio runtime")
|
|
.build()
|
|
.expect("environment should build");
|
|
|
|
let node = build_node(&mut env);
|
|
let remote_node = node.remote_node().expect("should produce remote node");
|
|
|
|
let (api_state, _root) = env
|
|
.runtime()
|
|
.block_on(remote_node.http.beacon().get_state_by_slot(Slot::new(0)))
|
|
.expect("should fetch state from http api");
|
|
|
|
let mut db_state = node
|
|
.client
|
|
.beacon_chain()
|
|
.expect("client should have beacon chain")
|
|
.state_at_slot(Slot::new(0), StateSkipConfig::WithStateRoots)
|
|
.expect("should find state");
|
|
db_state.drop_all_caches();
|
|
|
|
assert_eq!(
|
|
api_state, db_state,
|
|
"genesis state from api should match that from the DB"
|
|
);
|
|
env.fire_signal();
|
|
}
|