forked from quic-go/quic-go
40 lines
1.6 KiB
Go
40 lines
1.6 KiB
Go
package frames
|
|
|
|
import (
|
|
"github.com/lucas-clemente/quic-go/protocol"
|
|
. "github.com/onsi/ginkgo"
|
|
. "github.com/onsi/gomega"
|
|
)
|
|
|
|
var _ = Describe("NackRange", func() {
|
|
Context("Length", func() {
|
|
It("calculates the length for a NACK range with only one packet", func() {
|
|
nackRange := NackRange{FirstPacketNumber: 2, LastPacketNumber: 2}
|
|
Expect(nackRange.Len()).To(Equal(uint64(0)))
|
|
})
|
|
|
|
It("calculates the length for a NACK range with more than one packet", func() {
|
|
nackRange := NackRange{FirstPacketNumber: 10, LastPacketNumber: 20}
|
|
Expect(nackRange.Len()).To(Equal(uint64(10)))
|
|
})
|
|
})
|
|
|
|
Context("ContainsPacketNumber", func() {
|
|
It("determines if a packet is in a NACK range with only one packet", func() {
|
|
nackRange := NackRange{FirstPacketNumber: 2, LastPacketNumber: 2}
|
|
Expect(nackRange.ContainsPacketNumber(protocol.PacketNumber(1))).To(BeFalse())
|
|
Expect(nackRange.ContainsPacketNumber(protocol.PacketNumber(3))).To(BeFalse())
|
|
Expect(nackRange.ContainsPacketNumber(protocol.PacketNumber(2))).To(BeTrue())
|
|
})
|
|
|
|
It("determines if a packet is in a NACK range with more than one packet", func() {
|
|
nackRange := NackRange{FirstPacketNumber: 10, LastPacketNumber: 20}
|
|
Expect(nackRange.ContainsPacketNumber(protocol.PacketNumber(1))).To(BeFalse())
|
|
Expect(nackRange.ContainsPacketNumber(protocol.PacketNumber(10))).To(BeTrue())
|
|
Expect(nackRange.ContainsPacketNumber(protocol.PacketNumber(15))).To(BeTrue())
|
|
Expect(nackRange.ContainsPacketNumber(protocol.PacketNumber(20))).To(BeTrue())
|
|
Expect(nackRange.ContainsPacketNumber(protocol.PacketNumber(21))).To(BeFalse())
|
|
})
|
|
})
|
|
})
|