forked from quic-go/quic-go
add support for QUIC 42
QUIC 42 accepts overlapping stream data. We've been doing this for some time already, so we don't need any additional changes.
This commit is contained in:
@@ -13,10 +13,12 @@ var _ = Describe("Version", func() {
|
||||
// version numbers taken from the wiki: https://github.com/quicwg/base-drafts/wiki/QUIC-Versions
|
||||
It("has the right gQUIC version number", func() {
|
||||
Expect(Version39).To(BeEquivalentTo(0x51303339))
|
||||
Expect(Version42).To(BeEquivalentTo(0x51303432))
|
||||
})
|
||||
|
||||
It("says if a version is valid", func() {
|
||||
Expect(IsValidVersion(Version39)).To(BeTrue())
|
||||
Expect(IsValidVersion(Version42)).To(BeTrue())
|
||||
Expect(IsValidVersion(VersionTLS)).To(BeTrue())
|
||||
Expect(IsValidVersion(VersionWhatever)).To(BeFalse())
|
||||
Expect(IsValidVersion(VersionUnknown)).To(BeFalse())
|
||||
@@ -25,11 +27,13 @@ var _ = Describe("Version", func() {
|
||||
|
||||
It("says if a version supports TLS", func() {
|
||||
Expect(Version39.UsesTLS()).To(BeFalse())
|
||||
Expect(Version42.UsesTLS()).To(BeFalse())
|
||||
Expect(VersionTLS.UsesTLS()).To(BeTrue())
|
||||
})
|
||||
|
||||
It("versions don't have reserved version numbers", func() {
|
||||
Expect(isReservedVersion(Version39)).To(BeFalse())
|
||||
Expect(isReservedVersion(Version42)).To(BeFalse())
|
||||
Expect(isReservedVersion(VersionTLS)).To(BeFalse())
|
||||
})
|
||||
|
||||
@@ -48,6 +52,7 @@ var _ = Describe("Version", func() {
|
||||
|
||||
It("has the right representation for the H2 Alt-Svc tag", func() {
|
||||
Expect(Version39.ToAltSvc()).To(Equal("39"))
|
||||
Expect(Version42.ToAltSvc()).To(Equal("42"))
|
||||
Expect(VersionTLS.ToAltSvc()).To(Equal("101"))
|
||||
// check with unsupported version numbers from the wiki
|
||||
Expect(VersionNumber(0x51303133).ToAltSvc()).To(Equal("13"))
|
||||
@@ -57,30 +62,37 @@ var _ = Describe("Version", func() {
|
||||
|
||||
It("tells the Stream ID of the crypto stream", func() {
|
||||
Expect(Version39.CryptoStreamID()).To(Equal(StreamID(1)))
|
||||
Expect(Version42.CryptoStreamID()).To(Equal(StreamID(1)))
|
||||
Expect(VersionTLS.CryptoStreamID()).To(Equal(StreamID(0)))
|
||||
})
|
||||
|
||||
It("tells if a version uses the IETF frame types", func() {
|
||||
Expect(Version39.UsesIETFFrameFormat()).To(BeFalse())
|
||||
Expect(Version42.UsesIETFFrameFormat()).To(BeFalse())
|
||||
Expect(VersionTLS.UsesIETFFrameFormat()).To(BeTrue())
|
||||
})
|
||||
|
||||
It("tells if a version uses the IETF frame types", func() {
|
||||
Expect(Version39.UsesIETFFrameFormat()).To(BeFalse())
|
||||
Expect(Version42.UsesIETFFrameFormat()).To(BeFalse())
|
||||
Expect(VersionTLS.UsesIETFFrameFormat()).To(BeTrue())
|
||||
})
|
||||
|
||||
It("tells if a version uses STOP_WAITING frames", func() {
|
||||
Expect(Version39.UsesStopWaitingFrames()).To(BeTrue())
|
||||
Expect(Version42.UsesStopWaitingFrames()).To(BeTrue())
|
||||
Expect(VersionTLS.UsesStopWaitingFrames()).To(BeFalse())
|
||||
})
|
||||
|
||||
It("says if a stream contributes to connection-level flowcontrol, for gQUIC", func() {
|
||||
Expect(Version39.StreamContributesToConnectionFlowControl(1)).To(BeFalse())
|
||||
Expect(Version39.StreamContributesToConnectionFlowControl(2)).To(BeTrue())
|
||||
Expect(Version39.StreamContributesToConnectionFlowControl(3)).To(BeFalse())
|
||||
Expect(Version39.StreamContributesToConnectionFlowControl(4)).To(BeTrue())
|
||||
Expect(Version39.StreamContributesToConnectionFlowControl(5)).To(BeTrue())
|
||||
for _, v := range []VersionNumber{Version39, Version42} {
|
||||
version := v
|
||||
Expect(version.StreamContributesToConnectionFlowControl(1)).To(BeFalse())
|
||||
Expect(version.StreamContributesToConnectionFlowControl(2)).To(BeTrue())
|
||||
Expect(version.StreamContributesToConnectionFlowControl(3)).To(BeFalse())
|
||||
Expect(version.StreamContributesToConnectionFlowControl(4)).To(BeTrue())
|
||||
Expect(version.StreamContributesToConnectionFlowControl(5)).To(BeTrue())
|
||||
}
|
||||
})
|
||||
|
||||
It("says if a stream contributes to connection-level flowcontrol, for TLS", func() {
|
||||
|
||||
Reference in New Issue
Block a user