11//! Fixed test cases for MetaAddr and MetaAddrChange.
22
3- use std:: time:: Instant ;
3+ use std:: time:: { Duration , Instant } ;
44
55use chrono:: Utc ;
66
@@ -33,6 +33,7 @@ fn sanitize_extremes() {
3333 services : Default :: default ( ) ,
3434 untrusted_last_seen : Some ( u32:: MIN . into ( ) ) ,
3535 last_response : Some ( u32:: MIN . into ( ) ) ,
36+ rtt : Some ( Duration :: ZERO ) ,
3637 last_attempt : None ,
3738 last_failure : None ,
3839 last_connection_state : Default :: default ( ) ,
@@ -45,6 +46,7 @@ fn sanitize_extremes() {
4546 services : Default :: default ( ) ,
4647 untrusted_last_seen : Some ( u32:: MAX . into ( ) ) ,
4748 last_response : Some ( u32:: MAX . into ( ) ) ,
49+ rtt : Some ( Duration :: ZERO ) ,
4850 last_attempt : None ,
4951 last_failure : None ,
5052 last_connection_state : Default :: default ( ) ,
@@ -154,7 +156,7 @@ fn recently_responded_peer_is_gossipable() {
154156 let peer_seed = MetaAddr :: new_initial_peer ( address) . into_new_meta_addr ( instant_now, local_now) ;
155157
156158 // Create a peer that has responded
157- let peer = MetaAddr :: new_responded ( address)
159+ let peer = MetaAddr :: new_responded ( address, Duration :: ZERO )
158160 . apply_to_meta_addr ( peer_seed, instant_now, chrono_now)
159161 . expect ( "Failed to create MetaAddr for responded peer" ) ;
160162
@@ -174,7 +176,7 @@ fn not_so_recently_responded_peer_is_still_gossipable() {
174176 let peer_seed = MetaAddr :: new_initial_peer ( address) . into_new_meta_addr ( instant_now, local_now) ;
175177
176178 // Create a peer that has responded
177- let mut peer = MetaAddr :: new_responded ( address)
179+ let mut peer = MetaAddr :: new_responded ( address, Duration :: ZERO )
178180 . apply_to_meta_addr ( peer_seed, instant_now, chrono_now)
179181 . expect ( "Failed to create MetaAddr for responded peer" ) ;
180182
@@ -204,7 +206,7 @@ fn responded_long_ago_peer_is_not_gossipable() {
204206 let peer_seed = MetaAddr :: new_initial_peer ( address) . into_new_meta_addr ( instant_now, local_now) ;
205207
206208 // Create a peer that has responded
207- let mut peer = MetaAddr :: new_responded ( address)
209+ let mut peer = MetaAddr :: new_responded ( address, Duration :: ZERO )
208210 . apply_to_meta_addr ( peer_seed, instant_now, chrono_now)
209211 . expect ( "Failed to create MetaAddr for responded peer" ) ;
210212
@@ -234,7 +236,7 @@ fn long_delayed_change_is_not_applied() {
234236 let peer_seed = MetaAddr :: new_initial_peer ( address) . into_new_meta_addr ( instant_now, local_now) ;
235237
236238 // Create a peer that has responded
237- let peer = MetaAddr :: new_responded ( address)
239+ let peer = MetaAddr :: new_responded ( address, Duration :: ZERO )
238240 . apply_to_meta_addr ( peer_seed, instant_now, chrono_now)
239241 . expect ( "Failed to create MetaAddr for responded peer" ) ;
240242
@@ -277,7 +279,7 @@ fn later_revert_change_is_applied() {
277279 let peer_seed = MetaAddr :: new_initial_peer ( address) . into_new_meta_addr ( instant_now, local_now) ;
278280
279281 // Create a peer that has responded
280- let peer = MetaAddr :: new_responded ( address)
282+ let peer = MetaAddr :: new_responded ( address, Duration :: ZERO )
281283 . apply_to_meta_addr ( peer_seed, instant_now, chrono_now)
282284 . expect ( "Failed to create MetaAddr for responded peer" ) ;
283285
@@ -319,7 +321,7 @@ fn concurrent_state_revert_change_is_not_applied() {
319321 let peer_seed = MetaAddr :: new_initial_peer ( address) . into_new_meta_addr ( instant_now, local_now) ;
320322
321323 // Create a peer that has responded
322- let peer = MetaAddr :: new_responded ( address)
324+ let peer = MetaAddr :: new_responded ( address, Duration :: ZERO )
323325 . apply_to_meta_addr ( peer_seed, instant_now, chrono_now)
324326 . expect ( "Failed to create MetaAddr for responded peer" ) ;
325327
@@ -378,7 +380,7 @@ fn concurrent_state_progress_change_is_applied() {
378380 let peer_seed = MetaAddr :: new_initial_peer ( address) . into_new_meta_addr ( instant_now, local_now) ;
379381
380382 // Create a peer that has responded
381- let peer = MetaAddr :: new_responded ( address)
383+ let peer = MetaAddr :: new_responded ( address, Duration :: ZERO )
382384 . apply_to_meta_addr ( peer_seed, instant_now, chrono_now)
383385 . expect ( "Failed to create MetaAddr for responded peer" ) ;
384386
@@ -423,3 +425,24 @@ fn concurrent_state_progress_change_is_applied() {
423425 peer: {peer:?}"
424426 ) ;
425427}
428+
429+ #[ test]
430+ fn rtt_is_stored_correctly_in_meta_addr ( ) {
431+ let _init_guard = zebra_test:: init ( ) ;
432+
433+ let instant_now = Instant :: now ( ) ;
434+ let chrono_now = Utc :: now ( ) ;
435+ let local_now: DateTime32 = chrono_now. try_into ( ) . expect ( "will succeed until 2038" ) ;
436+
437+ let address = PeerSocketAddr :: from ( ( [ 192 , 168 , 180 , 9 ] , 10_000 ) ) ;
438+ let peer_seed = MetaAddr :: new_initial_peer ( address) . into_new_meta_addr ( instant_now, local_now) ;
439+
440+ let rtt = Duration :: from_millis ( 128 ) ;
441+
442+ // Create a peer that has responded
443+ let peer = MetaAddr :: new_responded ( address, rtt)
444+ . apply_to_meta_addr ( peer_seed, instant_now, chrono_now)
445+ . expect ( "Failed to create MetaAddr for responded peer" ) ;
446+
447+ assert_eq ! ( peer. rtt, Some ( rtt) ) ;
448+ }
0 commit comments