@@ -5609,7 +5609,11 @@ mod tests {
5609
5609
5610
5610
#[ cfg( all( test, not( feature = "no-std" ) ) ) ]
5611
5611
pub ( crate ) mod bench_utils {
5612
+ #[ cfg( all( test, feature = "_bench_unstable" , not( feature = "no-std" ) ) ) ]
5613
+ use bitcoin:: secp256k1:: PublicKey ;
5614
+
5612
5615
use std:: fs:: File ;
5616
+
5613
5617
/// Tries to open a network graph file, or panics with a URL to fetch it.
5614
5618
pub ( crate ) fn get_route_file ( ) -> Result < std:: fs:: File , & ' static str > {
5615
5619
let res = File :: open ( "net_graph-2023-01-18.bin" ) // By default we're run in RL/lightning
@@ -5632,42 +5636,15 @@ pub(crate) mod bench_utils {
5632
5636
#[ cfg( not( require_route_graph_test) ) ]
5633
5637
return res;
5634
5638
}
5635
- }
5636
-
5637
- #[ cfg( all( test, feature = "_bench_unstable" , not( feature = "no-std" ) ) ) ]
5638
- mod benches {
5639
- use super :: * ;
5640
- use bitcoin:: hashes:: Hash ;
5641
- use bitcoin:: secp256k1:: { PublicKey , Secp256k1 , SecretKey } ;
5642
- use crate :: chain:: transaction:: OutPoint ;
5643
- use crate :: chain:: keysinterface:: { EntropySource , KeysManager } ;
5644
- use crate :: ln:: channelmanager:: { self , ChannelCounterparty , ChannelDetails } ;
5645
- use crate :: ln:: features:: InvoiceFeatures ;
5646
- use crate :: routing:: gossip:: NetworkGraph ;
5647
- use crate :: routing:: scoring:: { FixedPenaltyScorer , ProbabilisticScorer , ProbabilisticScoringParameters } ;
5648
- use crate :: util:: config:: UserConfig ;
5649
- use crate :: util:: logger:: { Logger , Record } ;
5650
- use crate :: util:: ser:: ReadableArgs ;
5651
-
5652
- use test:: Bencher ;
5653
-
5654
- struct DummyLogger { }
5655
- impl Logger for DummyLogger {
5656
- fn log ( & self , _record : & Record ) { }
5657
- }
5658
-
5659
- fn read_network_graph ( logger : & DummyLogger ) -> NetworkGraph < & DummyLogger > {
5660
- let mut d = bench_utils:: get_route_file ( ) . unwrap ( ) ;
5661
- NetworkGraph :: read ( & mut d, logger) . unwrap ( )
5662
- }
5663
-
5664
- fn payer_pubkey ( ) -> PublicKey {
5665
- let secp_ctx = Secp256k1 :: new ( ) ;
5666
- PublicKey :: from_secret_key ( & secp_ctx, & SecretKey :: from_slice ( & [ 42 ; 32 ] ) . unwrap ( ) )
5667
- }
5668
5639
5669
5640
#[ inline]
5670
- fn first_hop ( node_id : PublicKey ) -> ChannelDetails {
5641
+ #[ cfg( all( test, feature = "_bench_unstable" , not( feature = "no-std" ) ) ) ]
5642
+ pub ( crate ) fn first_hop ( node_id : PublicKey ) -> crate :: ln:: channelmanager:: ChannelDetails {
5643
+ use bitcoin:: hashes:: Hash ;
5644
+ use crate :: chain:: transaction:: OutPoint ;
5645
+ use crate :: ln:: channelmanager:: { self , ChannelCounterparty , ChannelDetails } ;
5646
+ use crate :: util:: config:: UserConfig ;
5647
+
5671
5648
ChannelDetails {
5672
5649
channel_id : [ 0 ; 32 ] ,
5673
5650
counterparty : ChannelCounterparty {
@@ -5704,6 +5681,37 @@ mod benches {
5704
5681
config : None ,
5705
5682
}
5706
5683
}
5684
+ }
5685
+
5686
+ #[ cfg( all( test, feature = "_bench_unstable" , not( feature = "no-std" ) ) ) ]
5687
+ mod benches {
5688
+ use super :: * ;
5689
+ use bitcoin:: secp256k1:: { PublicKey , Secp256k1 , SecretKey } ;
5690
+ use crate :: chain:: keysinterface:: { EntropySource , KeysManager } ;
5691
+ use crate :: ln:: channelmanager;
5692
+ use crate :: ln:: features:: InvoiceFeatures ;
5693
+ use crate :: routing:: gossip:: NetworkGraph ;
5694
+ use crate :: routing:: scoring:: { FixedPenaltyScorer , ProbabilisticScorer , ProbabilisticScoringParameters } ;
5695
+ use crate :: util:: config:: UserConfig ;
5696
+ use crate :: util:: logger:: { Logger , Record } ;
5697
+ use crate :: util:: ser:: ReadableArgs ;
5698
+
5699
+ use test:: Bencher ;
5700
+
5701
+ struct DummyLogger { }
5702
+ impl Logger for DummyLogger {
5703
+ fn log ( & self , _record : & Record ) { }
5704
+ }
5705
+
5706
+ fn read_network_graph ( logger : & DummyLogger ) -> NetworkGraph < & DummyLogger > {
5707
+ let mut d = bench_utils:: get_route_file ( ) . unwrap ( ) ;
5708
+ NetworkGraph :: read ( & mut d, logger) . unwrap ( )
5709
+ }
5710
+
5711
+ fn payer_pubkey ( ) -> PublicKey {
5712
+ let secp_ctx = Secp256k1 :: new ( ) ;
5713
+ PublicKey :: from_secret_key ( & secp_ctx, & SecretKey :: from_slice ( & [ 42 ; 32 ] ) . unwrap ( ) )
5714
+ }
5707
5715
5708
5716
#[ bench]
5709
5717
fn generate_routes_with_zero_penalty_scorer ( bench : & mut Bencher ) {
@@ -5759,7 +5767,7 @@ mod benches {
5759
5767
seed *= 0xdeadbeef ;
5760
5768
let dst = PublicKey :: from_slice ( nodes. unordered_keys ( ) . skip ( seed % nodes. len ( ) ) . next ( ) . unwrap ( ) . as_slice ( ) ) . unwrap ( ) ;
5761
5769
let params = PaymentParameters :: from_node_id ( dst, 42 ) . with_features ( features. clone ( ) ) ;
5762
- let first_hop = first_hop ( src) ;
5770
+ let first_hop = bench_utils :: first_hop ( src) ;
5763
5771
let amt = seed as u64 % 1_000_000 ;
5764
5772
if let Ok ( route) = get_route ( & payer, & params, & graph. read_only ( ) , Some ( & [ & first_hop] ) , amt, 42 , & DummyLogger { } , & scorer, & random_seed_bytes) {
5765
5773
routes. push ( route) ;
0 commit comments