forked from quic-go/quic-go
improve stream limit 0-RTT integration test (#4761)
This commit is contained in:
@@ -570,11 +570,25 @@ func check0RTTRejected(t *testing.T, ln *quic.EarlyListener, addr net.Addr, conf
|
|||||||
|
|
||||||
func Test0RTTRejectedOnStreamLimitDecrease(t *testing.T) {
|
func Test0RTTRejectedOnStreamLimitDecrease(t *testing.T) {
|
||||||
const rtt = 5 * time.Millisecond
|
const rtt = 5 * time.Millisecond
|
||||||
const maxStreams = 42
|
|
||||||
const newMaxStreams = maxStreams - 1
|
const (
|
||||||
|
maxBidiStreams = 42
|
||||||
|
maxUniStreams = 10
|
||||||
|
newMaxBidiStreams = maxBidiStreams - 1
|
||||||
|
newMaxUniStreams = maxUniStreams - 1
|
||||||
|
)
|
||||||
|
|
||||||
tlsConf := getTLSConfig()
|
tlsConf := getTLSConfig()
|
||||||
clientConf := dialAndReceiveTicket(t, rtt, tlsConf, getQuicConfig(&quic.Config{Allow0RTT: true, MaxIncomingStreams: maxStreams}), nil)
|
clientConf := dialAndReceiveTicket(t,
|
||||||
|
rtt,
|
||||||
|
tlsConf,
|
||||||
|
getQuicConfig(&quic.Config{
|
||||||
|
Allow0RTT: true,
|
||||||
|
MaxIncomingStreams: maxBidiStreams,
|
||||||
|
MaxIncomingUniStreams: maxUniStreams,
|
||||||
|
}),
|
||||||
|
nil,
|
||||||
|
)
|
||||||
|
|
||||||
counter, tracer := newPacketTracer()
|
counter, tracer := newPacketTracer()
|
||||||
ln, err := quic.ListenEarly(
|
ln, err := quic.ListenEarly(
|
||||||
@@ -582,7 +596,8 @@ func Test0RTTRejectedOnStreamLimitDecrease(t *testing.T) {
|
|||||||
tlsConf,
|
tlsConf,
|
||||||
getQuicConfig(&quic.Config{
|
getQuicConfig(&quic.Config{
|
||||||
Allow0RTT: true,
|
Allow0RTT: true,
|
||||||
MaxIncomingStreams: newMaxStreams,
|
MaxIncomingStreams: newMaxBidiStreams,
|
||||||
|
MaxIncomingUniStreams: newMaxUniStreams,
|
||||||
Tracer: newTracer(tracer),
|
Tracer: newTracer(tracer),
|
||||||
}),
|
}),
|
||||||
)
|
)
|
||||||
@@ -598,11 +613,25 @@ func Test0RTTRejectedOnStreamLimitDecrease(t *testing.T) {
|
|||||||
require.NotZero(t, n)
|
require.NotZero(t, n)
|
||||||
require.Empty(t, counter.getRcvd0RTTPacketNumbers())
|
require.Empty(t, counter.getRcvd0RTTPacketNumbers())
|
||||||
|
|
||||||
for i := 0; i < newMaxStreams; i++ {
|
// It should now be possible to open new bidirectional streams up to the new limit...
|
||||||
|
for i := 0; i < newMaxBidiStreams; i++ {
|
||||||
|
_, err = conn.OpenStream()
|
||||||
|
require.NoError(t, err)
|
||||||
|
}
|
||||||
|
// ... but not beyond it.
|
||||||
|
_, err = conn.OpenStream()
|
||||||
|
require.Error(t, err)
|
||||||
|
require.Contains(t, err.Error(), "too many open streams")
|
||||||
|
|
||||||
|
// It should now be possible to open new unidirectional streams up to the new limit...
|
||||||
|
for i := 0; i < newMaxUniStreams; i++ {
|
||||||
_, err = conn.OpenUniStream()
|
_, err = conn.OpenUniStream()
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
}
|
}
|
||||||
// TODO(#4750): check that the client can't open any more streams at this point
|
// ... but not beyond it.
|
||||||
|
_, err = conn.OpenUniStream()
|
||||||
|
require.Error(t, err)
|
||||||
|
require.Contains(t, err.Error(), "too many open streams")
|
||||||
}
|
}
|
||||||
|
|
||||||
func Test0RTTRejectedOnALPNChanged(t *testing.T) {
|
func Test0RTTRejectedOnALPNChanged(t *testing.T) {
|
||||||
|
|||||||
Reference in New Issue
Block a user