@@ -313,13 +313,34 @@ func TestServer(t *testing.T) {
313313 )
314314 assert .Nil (t , err , "NewServer error: %v" , err )
315315
316- conn , err := s .createConnection (context .Background ())
316+ var now time.Time
317+ conn , err := s .createConnection (context .Background (), & now )
317318 assert .Nil (t , err , "createConnection error: %v" , err )
318319
319320 assert .Equal (t , s .cfg .heartbeatTimeout , 10 * time .Second , "expected heartbeatTimeout to be: %v, got: %v" , 10 * time .Second , s .cfg .heartbeatTimeout )
320321 assert .Equal (t , s .cfg .heartbeatTimeout , conn .readTimeout , "expected readTimeout to be: %v, got: %v" , s .cfg .heartbeatTimeout , conn .readTimeout )
321322 assert .Equal (t , s .cfg .heartbeatTimeout , conn .writeTimeout , "expected writeTimeout to be: %v, got: %v" , s .cfg .heartbeatTimeout , conn .writeTimeout )
322323 })
324+ t .Run ("heartbeat connection RTT is accurately measured" , func (t * testing.T ) {
325+ dialer := & channelNetConnDialer {}
326+
327+ s , err := NewServer (
328+ address .Address ("localhost" ),
329+ WithConnectionOptions (func (connOpts ... ConnectionOption ) []ConnectionOption {
330+ return append (
331+ connOpts ,
332+ WithDialer (func (Dialer ) Dialer {
333+ return dialer
334+ }),
335+ )
336+ }),
337+ )
338+ assert .Nil (t , err , "NewServer error: %v" , err )
339+
340+ _ , _ = s .heartbeat (nil )
341+ assert .True (t , s .averageRTTSet , "expected averageRTTSet to be true but was not" )
342+ assert .True (t , s .averageRTT < time .Second , "expected average RTT to be less than 1s, got %v" , s .averageRTT )
343+ })
323344}
324345
325346func includesMetadata (t * testing.T , wm []byte ) bool {
0 commit comments