forked from quic-go/quic-go
use default RTT (100ms) for 0-RTT if no prior estimate (#5388)
* utils: initialize the {Smoothed, Latest, Min}RTT to 100ms
* utils: use time.Duration.Nanoseconds instead of uint64
No functional change expected.
* congestion: better check to avoid division by zero
This commit is contained in:
@@ -17,7 +17,7 @@ func TestConnectionFlowControlWindowUpdate(t *testing.T) {
|
||||
100, // initial receive window
|
||||
100, // max receive window
|
||||
nil,
|
||||
&utils.RTTStats{},
|
||||
utils.NewRTTStats(),
|
||||
utils.DefaultLogger,
|
||||
)
|
||||
require.False(t, fc.AddBytesRead(1))
|
||||
@@ -28,7 +28,7 @@ func TestConnectionFlowControlWindowUpdate(t *testing.T) {
|
||||
|
||||
func TestConnectionWindowAutoTuningNotAllowed(t *testing.T) {
|
||||
// the RTT is 1 second
|
||||
rttStats := &utils.RTTStats{}
|
||||
rttStats := utils.NewRTTStats()
|
||||
rttStats.UpdateRTT(time.Second, 0)
|
||||
require.Equal(t, time.Second, rttStats.SmoothedRTT())
|
||||
|
||||
@@ -52,7 +52,7 @@ func TestConnectionWindowAutoTuningNotAllowed(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestConnectionFlowControlViolation(t *testing.T) {
|
||||
fc := NewConnectionFlowController(100, 100, nil, &utils.RTTStats{}, utils.DefaultLogger)
|
||||
fc := NewConnectionFlowController(100, 100, nil, utils.NewRTTStats(), utils.DefaultLogger)
|
||||
require.NoError(t, fc.IncrementHighestReceived(40, monotime.Now()))
|
||||
require.NoError(t, fc.IncrementHighestReceived(60, monotime.Now()))
|
||||
err := fc.IncrementHighestReceived(1, monotime.Now())
|
||||
@@ -62,7 +62,7 @@ func TestConnectionFlowControlViolation(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestConnectionFlowControllerReset(t *testing.T) {
|
||||
fc := NewConnectionFlowController(0, 0, nil, &utils.RTTStats{}, utils.DefaultLogger)
|
||||
fc := NewConnectionFlowController(0, 0, nil, utils.NewRTTStats(), utils.DefaultLogger)
|
||||
fc.UpdateSendWindow(100)
|
||||
fc.AddBytesSent(10)
|
||||
require.Equal(t, protocol.ByteCount(90), fc.SendWindowSize())
|
||||
@@ -71,7 +71,7 @@ func TestConnectionFlowControllerReset(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestConnectionFlowControllerResetAfterReading(t *testing.T) {
|
||||
fc := NewConnectionFlowController(0, 0, nil, &utils.RTTStats{}, utils.DefaultLogger)
|
||||
fc := NewConnectionFlowController(0, 0, nil, utils.NewRTTStats(), utils.DefaultLogger)
|
||||
fc.AddBytesRead(1)
|
||||
require.EqualError(t, fc.Reset(), "flow controller reset after reading data")
|
||||
}
|
||||
|
||||
@@ -19,13 +19,13 @@ func TestStreamFlowControlReceiving(t *testing.T) {
|
||||
protocol.MaxByteCount,
|
||||
protocol.MaxByteCount,
|
||||
nil,
|
||||
&utils.RTTStats{},
|
||||
utils.NewRTTStats(),
|
||||
utils.DefaultLogger,
|
||||
),
|
||||
100,
|
||||
protocol.MaxByteCount,
|
||||
protocol.MaxByteCount,
|
||||
&utils.RTTStats{},
|
||||
utils.NewRTTStats(),
|
||||
utils.DefaultLogger,
|
||||
)
|
||||
|
||||
@@ -52,13 +52,13 @@ func TestStreamFlowControllerFinalOffset(t *testing.T) {
|
||||
protocol.MaxByteCount,
|
||||
protocol.MaxByteCount,
|
||||
nil,
|
||||
&utils.RTTStats{},
|
||||
utils.NewRTTStats(),
|
||||
utils.DefaultLogger,
|
||||
),
|
||||
protocol.MaxByteCount,
|
||||
protocol.MaxByteCount,
|
||||
protocol.MaxByteCount,
|
||||
&utils.RTTStats{},
|
||||
utils.NewRTTStats(),
|
||||
utils.DefaultLogger,
|
||||
)
|
||||
}
|
||||
@@ -109,7 +109,7 @@ func TestStreamAbandoning(t *testing.T) {
|
||||
100,
|
||||
protocol.MaxByteCount,
|
||||
nil,
|
||||
&utils.RTTStats{},
|
||||
utils.NewRTTStats(),
|
||||
utils.DefaultLogger,
|
||||
)
|
||||
require.True(t, connFC.UpdateSendWindow(300))
|
||||
@@ -119,7 +119,7 @@ func TestStreamAbandoning(t *testing.T) {
|
||||
60,
|
||||
protocol.MaxByteCount,
|
||||
100,
|
||||
&utils.RTTStats{},
|
||||
utils.NewRTTStats(),
|
||||
utils.DefaultLogger,
|
||||
)
|
||||
|
||||
@@ -140,7 +140,7 @@ func TestStreamSendWindow(t *testing.T) {
|
||||
protocol.MaxByteCount,
|
||||
protocol.MaxByteCount,
|
||||
nil,
|
||||
&utils.RTTStats{},
|
||||
utils.NewRTTStats(),
|
||||
utils.DefaultLogger,
|
||||
)
|
||||
require.True(t, connFC.UpdateSendWindow(300))
|
||||
@@ -150,7 +150,7 @@ func TestStreamSendWindow(t *testing.T) {
|
||||
protocol.MaxByteCount,
|
||||
protocol.MaxByteCount,
|
||||
100,
|
||||
&utils.RTTStats{},
|
||||
utils.NewRTTStats(),
|
||||
utils.DefaultLogger,
|
||||
)
|
||||
// first, we're limited by the stream flow controller
|
||||
@@ -183,13 +183,13 @@ func TestStreamWindowUpdate(t *testing.T) {
|
||||
protocol.MaxByteCount,
|
||||
protocol.MaxByteCount,
|
||||
nil,
|
||||
&utils.RTTStats{},
|
||||
utils.NewRTTStats(),
|
||||
utils.DefaultLogger,
|
||||
),
|
||||
100,
|
||||
100,
|
||||
protocol.MaxByteCount,
|
||||
&utils.RTTStats{},
|
||||
utils.NewRTTStats(),
|
||||
utils.DefaultLogger,
|
||||
)
|
||||
require.Zero(t, fc.GetWindowUpdate(monotime.Now()))
|
||||
@@ -221,7 +221,7 @@ func TestStreamConnectionWindowUpdate(t *testing.T) {
|
||||
100,
|
||||
protocol.MaxByteCount,
|
||||
nil,
|
||||
&utils.RTTStats{},
|
||||
utils.NewRTTStats(),
|
||||
utils.DefaultLogger,
|
||||
)
|
||||
fc := NewStreamFlowController(
|
||||
@@ -230,7 +230,7 @@ func TestStreamConnectionWindowUpdate(t *testing.T) {
|
||||
1000,
|
||||
protocol.MaxByteCount,
|
||||
protocol.MaxByteCount,
|
||||
&utils.RTTStats{},
|
||||
utils.NewRTTStats(),
|
||||
utils.DefaultLogger,
|
||||
)
|
||||
|
||||
@@ -243,7 +243,7 @@ func TestStreamConnectionWindowUpdate(t *testing.T) {
|
||||
|
||||
func TestStreamWindowAutoTuning(t *testing.T) {
|
||||
// the RTT is 1 second
|
||||
rttStats := &utils.RTTStats{}
|
||||
rttStats := utils.NewRTTStats()
|
||||
rttStats.UpdateRTT(time.Second, 0)
|
||||
require.Equal(t, time.Second, rttStats.SmoothedRTT())
|
||||
|
||||
|
||||
Reference in New Issue
Block a user