forked from quic-go/quic-go
utils: remove unused now parameter from RTTStats.UpdateRTT (#4780)
This commit is contained in:
@@ -58,7 +58,7 @@ func (r *RTTStats) PTO(includeMaxAckDelay bool) time.Duration {
|
||||
}
|
||||
|
||||
// UpdateRTT updates the RTT based on a new sample.
|
||||
func (r *RTTStats) UpdateRTT(sendDelta, ackDelay time.Duration, now time.Time) {
|
||||
func (r *RTTStats) UpdateRTT(sendDelta, ackDelay time.Duration) {
|
||||
if sendDelta <= 0 {
|
||||
return
|
||||
}
|
||||
|
||||
@@ -16,35 +16,35 @@ func TestRTTStatsDefaults(t *testing.T) {
|
||||
|
||||
func TestRTTStatsSmoothedRTT(t *testing.T) {
|
||||
var rttStats RTTStats
|
||||
// Verify that ack_delay is ignored in the first measurement.
|
||||
rttStats.UpdateRTT((300 * time.Millisecond), (100 * time.Millisecond), time.Time{})
|
||||
require.Equal(t, (300 * time.Millisecond), rttStats.LatestRTT())
|
||||
require.Equal(t, (300 * time.Millisecond), rttStats.SmoothedRTT())
|
||||
// Verify that Smoothed RTT includes max ack delay if it's reasonable.
|
||||
rttStats.UpdateRTT((350 * time.Millisecond), (50 * time.Millisecond), time.Time{})
|
||||
require.Equal(t, (300 * time.Millisecond), rttStats.LatestRTT())
|
||||
require.Equal(t, (300 * time.Millisecond), rttStats.SmoothedRTT())
|
||||
// Verify that large erroneous ack_delay does not change Smoothed RTT.
|
||||
rttStats.UpdateRTT((200 * time.Millisecond), (300 * time.Millisecond), time.Time{})
|
||||
require.Equal(t, (200 * time.Millisecond), rttStats.LatestRTT())
|
||||
require.Equal(t, (287500 * time.Microsecond), rttStats.SmoothedRTT())
|
||||
// verify that ack_delay is ignored in the first measurement
|
||||
rttStats.UpdateRTT(300*time.Millisecond, 100*time.Millisecond)
|
||||
require.Equal(t, 300*time.Millisecond, rttStats.LatestRTT())
|
||||
require.Equal(t, 300*time.Millisecond, rttStats.SmoothedRTT())
|
||||
// verify that smoothed RTT includes max ack delay if it's reasonable
|
||||
rttStats.UpdateRTT(350*time.Millisecond, 50*time.Millisecond)
|
||||
require.Equal(t, 300*time.Millisecond, rttStats.LatestRTT())
|
||||
require.Equal(t, 300*time.Millisecond, rttStats.SmoothedRTT())
|
||||
// verify that large erroneous ack_delay does not change smoothed RTT
|
||||
rttStats.UpdateRTT(200*time.Millisecond, 300*time.Millisecond)
|
||||
require.Equal(t, 200*time.Millisecond, rttStats.LatestRTT())
|
||||
require.Equal(t, 287500*time.Microsecond, rttStats.SmoothedRTT())
|
||||
}
|
||||
|
||||
func TestRTTStatsMinRTT(t *testing.T) {
|
||||
var rttStats RTTStats
|
||||
rttStats.UpdateRTT((200 * time.Millisecond), 0, time.Time{})
|
||||
require.Equal(t, (200 * time.Millisecond), rttStats.MinRTT())
|
||||
rttStats.UpdateRTT((10 * time.Millisecond), 0, time.Time{}.Add((10 * time.Millisecond)))
|
||||
require.Equal(t, (10 * time.Millisecond), rttStats.MinRTT())
|
||||
rttStats.UpdateRTT((50 * time.Millisecond), 0, time.Time{}.Add((20 * time.Millisecond)))
|
||||
require.Equal(t, (10 * time.Millisecond), rttStats.MinRTT())
|
||||
rttStats.UpdateRTT((50 * time.Millisecond), 0, time.Time{}.Add((30 * time.Millisecond)))
|
||||
require.Equal(t, (10 * time.Millisecond), rttStats.MinRTT())
|
||||
rttStats.UpdateRTT((50 * time.Millisecond), 0, time.Time{}.Add((40 * time.Millisecond)))
|
||||
require.Equal(t, (10 * time.Millisecond), rttStats.MinRTT())
|
||||
// Verify that ack_delay does not go into recording of MinRTT_.
|
||||
rttStats.UpdateRTT((7 * time.Millisecond), (2 * time.Millisecond), time.Time{}.Add((50 * time.Millisecond)))
|
||||
require.Equal(t, (7 * time.Millisecond), rttStats.MinRTT())
|
||||
rttStats.UpdateRTT(200*time.Millisecond, 0)
|
||||
require.Equal(t, 200*time.Millisecond, rttStats.MinRTT())
|
||||
rttStats.UpdateRTT(10*time.Millisecond, 0)
|
||||
require.Equal(t, 10*time.Millisecond, rttStats.MinRTT())
|
||||
rttStats.UpdateRTT(50*time.Millisecond, 0)
|
||||
require.Equal(t, 10*time.Millisecond, rttStats.MinRTT())
|
||||
rttStats.UpdateRTT(50*time.Millisecond, 0)
|
||||
require.Equal(t, 10*time.Millisecond, rttStats.MinRTT())
|
||||
rttStats.UpdateRTT(50*time.Millisecond, 0)
|
||||
require.Equal(t, 10*time.Millisecond, rttStats.MinRTT())
|
||||
// verify that ack_delay does not go into recording of MinRTT
|
||||
rttStats.UpdateRTT(7*time.Millisecond, 2*time.Millisecond)
|
||||
require.Equal(t, 7*time.Millisecond, rttStats.MinRTT())
|
||||
}
|
||||
|
||||
func TestRTTStatsMaxAckDelay(t *testing.T) {
|
||||
@@ -60,7 +60,7 @@ func TestRTTStatsComputePTO(t *testing.T) {
|
||||
)
|
||||
var rttStats RTTStats
|
||||
rttStats.SetMaxAckDelay(maxAckDelay)
|
||||
rttStats.UpdateRTT(rtt, 0, time.Time{})
|
||||
rttStats.UpdateRTT(rtt, 0)
|
||||
require.Equal(t, rtt, rttStats.SmoothedRTT())
|
||||
require.Equal(t, rtt/2, rttStats.MeanDeviation())
|
||||
require.Equal(t, rtt+4*(rtt/2), rttStats.PTO(false))
|
||||
@@ -70,14 +70,14 @@ func TestRTTStatsComputePTO(t *testing.T) {
|
||||
func TestRTTStatsPTOWithShortRTT(t *testing.T) {
|
||||
const rtt = time.Microsecond
|
||||
var rttStats RTTStats
|
||||
rttStats.UpdateRTT(rtt, 0, time.Time{})
|
||||
rttStats.UpdateRTT(rtt, 0)
|
||||
require.Equal(t, rtt+protocol.TimerGranularity, rttStats.PTO(true))
|
||||
}
|
||||
|
||||
func TestRTTStatsUpdateWithBadSendDeltas(t *testing.T) {
|
||||
var rttStats RTTStats
|
||||
const initialRtt = 10 * time.Millisecond
|
||||
rttStats.UpdateRTT(initialRtt, 0, time.Time{})
|
||||
rttStats.UpdateRTT(initialRtt, 0)
|
||||
require.Equal(t, initialRtt, rttStats.MinRTT())
|
||||
require.Equal(t, initialRtt, rttStats.SmoothedRTT())
|
||||
|
||||
@@ -87,7 +87,7 @@ func TestRTTStatsUpdateWithBadSendDeltas(t *testing.T) {
|
||||
}
|
||||
|
||||
for _, badSendDelta := range badSendDeltas {
|
||||
rttStats.UpdateRTT(badSendDelta, 0, time.Time{})
|
||||
rttStats.UpdateRTT(badSendDelta, 0)
|
||||
require.Equal(t, initialRtt, rttStats.MinRTT())
|
||||
require.Equal(t, initialRtt, rttStats.SmoothedRTT())
|
||||
}
|
||||
@@ -100,7 +100,7 @@ func TestRTTStatsRestore(t *testing.T) {
|
||||
require.Equal(t, 10*time.Second, rttStats.SmoothedRTT())
|
||||
require.Zero(t, rttStats.MeanDeviation())
|
||||
// update the RTT and make sure that the initial value is immediately forgotten
|
||||
rttStats.UpdateRTT(200*time.Millisecond, 0, time.Time{})
|
||||
rttStats.UpdateRTT(200*time.Millisecond, 0)
|
||||
require.Equal(t, 200*time.Millisecond, rttStats.LatestRTT())
|
||||
require.Equal(t, 200*time.Millisecond, rttStats.SmoothedRTT())
|
||||
require.Equal(t, 100*time.Millisecond, rttStats.MeanDeviation())
|
||||
@@ -109,7 +109,7 @@ func TestRTTStatsRestore(t *testing.T) {
|
||||
func TestRTTMeasurementAfterRestore(t *testing.T) {
|
||||
var rttStats RTTStats
|
||||
const rtt = 10 * time.Millisecond
|
||||
rttStats.UpdateRTT(rtt, 0, time.Now())
|
||||
rttStats.UpdateRTT(rtt, 0)
|
||||
require.Equal(t, rtt, rttStats.LatestRTT())
|
||||
require.Equal(t, rtt, rttStats.SmoothedRTT())
|
||||
rttStats.SetInitialRTT(time.Minute)
|
||||
|
||||
Reference in New Issue
Block a user