Skip to content

Commit e3622f1

Browse files
committed
Add get_secure_random_bytes() benchmark
1 parent 828c776 commit e3622f1

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed

lightning/src/chain/keysinterface.rs

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1469,3 +1469,26 @@ impl PhantomKeysManager {
14691469
pub fn dyn_sign() {
14701470
let _signer: Box<dyn EcdsaChannelSigner>;
14711471
}
1472+
1473+
#[cfg(all(test, feature = "_bench_unstable", not(feature = "no-std")))]
1474+
mod benches {
1475+
use std::time::Duration;
1476+
use bitcoin::blockdata::constants::genesis_block;
1477+
use bitcoin::Network;
1478+
use crate::chain::keysinterface::{EntropySource, KeysManager};
1479+
1480+
use test::Bencher;
1481+
1482+
#[bench]
1483+
fn bench_get_secure_random_bytes(bench: &mut Bencher) {
1484+
let seed = [0u8; 32];
1485+
let now = Duration::from_secs(genesis_block(Network::Testnet).header.time as u64);
1486+
let keys_manager = KeysManager::new(&seed, now.as_secs(), now.subsec_micros());
1487+
bench.iter(|| {
1488+
for _ in 1..100 {
1489+
keys_manager.get_secure_random_bytes();
1490+
}
1491+
})
1492+
}
1493+
1494+
}

0 commit comments

Comments
 (0)