mirror of
https://github.com/sigp/lighthouse.git
synced 2026-05-07 00:42:42 +00:00
Add test_logger as feature to logging (#2586)
## Issue Addressed Fix #2585 ## Proposed Changes Provide a canonical version of test_logger that can be used throughout lighthouse. ## Additional Info This allows tests to conditionally emit logging data by adding test_logger as the default logger. And then when executing `cargo test --features logging/test_logger` log output will be visible: wink@3900x:~/lighthouse/common/logging/tests/test-feature-test_logger (Add-test_logger-as-feature-to-logging) $ cargo test --features logging/test_logger Finished test [unoptimized + debuginfo] target(s) in 0.02s Running unittests (target/debug/deps/test_logger-e20115db6a5e3714) running 1 test Sep 10 12:53:45.212 INFO hi, module: test_logger:8 test tests::test_fn_with_logging ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests test-logger running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Or, in normal scenarios where logging isn't needed, executing `cargo test` the log output will not be visible: wink@3900x:~/lighthouse/common/logging/tests/test-feature-test_logger (Add-test_logger-as-feature-to-logging) $ cargo test Finished test [unoptimized + debuginfo] target(s) in 0.02s Running unittests (target/debug/deps/test_logger-02e02f8d41e8cf8a) running 1 test test tests::test_fn_with_logging ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests test-logger running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
This commit is contained in:
@@ -30,6 +30,5 @@ types = { path = "../consensus/types" }
|
||||
maplit = "1.0.2"
|
||||
rayon = "1.3.0"
|
||||
tempfile = "3.1.0"
|
||||
logging = { path = "../common/logging" }
|
||||
|
||||
[features]
|
||||
test_logger = []
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
use slog::Logger;
|
||||
use sloggers::Build;
|
||||
use std::collections::HashSet;
|
||||
use types::{
|
||||
AggregateSignature, AttestationData, AttesterSlashing, BeaconBlockHeader, Checkpoint, Epoch,
|
||||
@@ -8,17 +6,6 @@ use types::{
|
||||
|
||||
pub type E = MainnetEthSpec;
|
||||
|
||||
pub fn logger() -> Logger {
|
||||
if cfg!(feature = "test_logger") {
|
||||
sloggers::terminal::TerminalLoggerBuilder::new()
|
||||
.level(sloggers::types::Severity::Trace)
|
||||
.build()
|
||||
.unwrap()
|
||||
} else {
|
||||
sloggers::null::NullLoggerBuilder.build().unwrap()
|
||||
}
|
||||
}
|
||||
|
||||
pub fn indexed_att(
|
||||
attesting_indices: impl AsRef<[u64]>,
|
||||
source_epoch: u64,
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
use logging::test_logger;
|
||||
use maplit::hashset;
|
||||
use rayon::prelude::*;
|
||||
use slasher::{
|
||||
config::DEFAULT_CHUNK_SIZE,
|
||||
test_utils::{att_slashing, indexed_att, logger, slashed_validators_from_slashings, E},
|
||||
test_utils::{att_slashing, indexed_att, slashed_validators_from_slashings, E},
|
||||
Config, Slasher,
|
||||
};
|
||||
use std::collections::HashSet;
|
||||
@@ -171,7 +172,7 @@ fn slasher_test(
|
||||
) {
|
||||
let tempdir = tempdir().unwrap();
|
||||
let config = Config::new(tempdir.path().into()).for_testing();
|
||||
let slasher = Slasher::open(config, logger()).unwrap();
|
||||
let slasher = Slasher::open(config, test_logger()).unwrap();
|
||||
let current_epoch = Epoch::new(current_epoch);
|
||||
|
||||
for (i, attestation) in attestations.iter().enumerate() {
|
||||
@@ -200,7 +201,7 @@ fn parallel_slasher_test(
|
||||
) {
|
||||
let tempdir = tempdir().unwrap();
|
||||
let config = Config::new(tempdir.path().into()).for_testing();
|
||||
let slasher = Slasher::open(config, logger()).unwrap();
|
||||
let slasher = Slasher::open(config, test_logger()).unwrap();
|
||||
let current_epoch = Epoch::new(current_epoch);
|
||||
|
||||
attestations
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
use logging::test_logger;
|
||||
use slasher::{
|
||||
test_utils::{block as test_block, logger, E},
|
||||
test_utils::{block as test_block, E},
|
||||
Config, Slasher,
|
||||
};
|
||||
use tempfile::tempdir;
|
||||
@@ -9,7 +10,7 @@ use types::{Epoch, EthSpec};
|
||||
fn empty_pruning() {
|
||||
let tempdir = tempdir().unwrap();
|
||||
let config = Config::new(tempdir.path().into()).for_testing();
|
||||
let slasher = Slasher::<E>::open(config, logger()).unwrap();
|
||||
let slasher = Slasher::<E>::open(config, test_logger()).unwrap();
|
||||
slasher.prune_database(Epoch::new(0)).unwrap();
|
||||
}
|
||||
|
||||
@@ -22,7 +23,7 @@ fn block_pruning() {
|
||||
config.chunk_size = 2;
|
||||
config.history_length = 2;
|
||||
|
||||
let slasher = Slasher::<E>::open(config.clone(), logger()).unwrap();
|
||||
let slasher = Slasher::<E>::open(config.clone(), test_logger()).unwrap();
|
||||
let current_epoch = Epoch::from(2 * config.history_length);
|
||||
|
||||
// Pruning the empty database should be safe.
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
use logging::test_logger;
|
||||
use rand::prelude::*;
|
||||
use rand::{rngs::StdRng, thread_rng, Rng, SeedableRng};
|
||||
use slasher::{
|
||||
test_utils::{
|
||||
block, indexed_att, logger, slashed_validators_from_attestations,
|
||||
block, indexed_att, slashed_validators_from_attestations,
|
||||
slashed_validators_from_slashings, E,
|
||||
},
|
||||
Config, Slasher,
|
||||
@@ -47,7 +48,7 @@ fn random_test(seed: u64, test_config: TestConfig) {
|
||||
config.chunk_size = 1 << chunk_size_exponent;
|
||||
config.history_length = 1 << rng.gen_range(chunk_size_exponent, chunk_size_exponent + 3);
|
||||
|
||||
let slasher = Slasher::<E>::open(config.clone(), logger()).unwrap();
|
||||
let slasher = Slasher::<E>::open(config.clone(), test_logger()).unwrap();
|
||||
|
||||
let validators = (0..num_validators as u64).collect::<Vec<u64>>();
|
||||
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
use slasher::{
|
||||
test_utils::{indexed_att, logger},
|
||||
Config, Error, Slasher,
|
||||
};
|
||||
use logging::test_logger;
|
||||
use slasher::{test_utils::indexed_att, Config, Error, Slasher};
|
||||
use tempfile::tempdir;
|
||||
use types::Epoch;
|
||||
|
||||
@@ -13,7 +11,7 @@ fn attestation_pruning_empty_wrap_around() {
|
||||
config.chunk_size = 16;
|
||||
config.history_length = 16;
|
||||
|
||||
let slasher = Slasher::open(config.clone(), logger()).unwrap();
|
||||
let slasher = Slasher::open(config.clone(), test_logger()).unwrap();
|
||||
|
||||
let v = vec![0];
|
||||
let history_length = config.history_length as u64;
|
||||
@@ -48,7 +46,7 @@ fn pruning_with_map_full() {
|
||||
config.history_length = 1024;
|
||||
config.max_db_size_mbs = 1;
|
||||
|
||||
let slasher = Slasher::open(config, logger()).unwrap();
|
||||
let slasher = Slasher::open(config, test_logger()).unwrap();
|
||||
|
||||
let v = vec![0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
|
||||
|
||||
|
||||
Reference in New Issue
Block a user