forked from quic-go/quic-go
actually generate gaps in packet number space
This commit is contained in:
@@ -18,10 +18,12 @@ type packetNumberGenerator struct {
|
||||
}
|
||||
|
||||
func newPacketNumberGenerator(initial, averagePeriod protocol.PacketNumber) *packetNumberGenerator {
|
||||
return &packetNumberGenerator{
|
||||
g := &packetNumberGenerator{
|
||||
next: initial,
|
||||
averagePeriod: averagePeriod,
|
||||
}
|
||||
g.generateNewSkip()
|
||||
return g
|
||||
}
|
||||
|
||||
func (p *packetNumberGenerator) Peek() protocol.PacketNumber {
|
||||
|
||||
@@ -9,14 +9,14 @@ import (
|
||||
)
|
||||
|
||||
var _ = Describe("Packet Number Generator", func() {
|
||||
var png packetNumberGenerator
|
||||
var png *packetNumberGenerator
|
||||
|
||||
BeforeEach(func() {
|
||||
png = *newPacketNumberGenerator(1, 100)
|
||||
png = newPacketNumberGenerator(1, 100)
|
||||
})
|
||||
|
||||
It("can be initialized to return any first packet number", func() {
|
||||
png = *newPacketNumberGenerator(12345, 100)
|
||||
png = newPacketNumberGenerator(12345, 100)
|
||||
Expect(png.Pop()).To(Equal(protocol.PacketNumber(12345)))
|
||||
})
|
||||
|
||||
@@ -36,6 +36,20 @@ var _ = Describe("Packet Number Generator", func() {
|
||||
})
|
||||
|
||||
It("skips a packet number", func() {
|
||||
var last protocol.PacketNumber
|
||||
var skipped bool
|
||||
for i := 0; i < 1000; i++ {
|
||||
num := png.Pop()
|
||||
if num > last+1 {
|
||||
skipped = true
|
||||
break
|
||||
}
|
||||
last = num
|
||||
}
|
||||
Expect(skipped).To(BeTrue())
|
||||
})
|
||||
|
||||
It("skips a specific packet number", func() {
|
||||
png.nextToSkip = 2
|
||||
num := png.Pop()
|
||||
Expect(num).To(Equal(protocol.PacketNumber(1)))
|
||||
|
||||
Reference in New Issue
Block a user