From 039edc1ccd4ad0d5a74598921eecb7dada4d2e36 Mon Sep 17 00:00:00 2001 From: Marten Seemann Date: Fri, 15 Sep 2017 16:28:19 +0700 Subject: [PATCH] add an integration test for version negotiation --- integrationtests/self/handshake_rtt_test.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/integrationtests/self/handshake_rtt_test.go b/integrationtests/self/handshake_rtt_test.go index 421e790f4..0d85805af 100644 --- a/integrationtests/self/handshake_rtt_test.go +++ b/integrationtests/self/handshake_rtt_test.go @@ -97,6 +97,16 @@ var _ = Describe("Handshake RTT tests", func() { expectDurationInRTTs(3) }) + It("does version negotiation in 1 RTT", func() { + Expect(len(protocol.SupportedVersions)).To(BeNumerically(">", 1)) + // the server doesn't support the highest supported version, which is the first one the client will try + serverConfig.Versions = protocol.SupportedVersions[1:] + runServerAndProxy() + _, err := quic.DialAddr(proxy.LocalAddr().String(), &tls.Config{InsecureSkipVerify: true}, nil) + Expect(err).ToNot(HaveOccurred()) + expectDurationInRTTs(4) + }) + // 1 RTT for verifying the source address // 1 RTT to become secure // TODO (marten-seemann): enable this test (see #625)