Merge pull request #1987 from lucas-clemente/fix-flaky-session-resumption-test

fix flaky session resumption integration test
This commit is contained in:
Marten Seemann
2019-07-05 20:41:41 +07:00
committed by GitHub

View File

@@ -52,19 +52,6 @@ var _ = Describe("TLS session resumption", func() {
Expect(err).ToNot(HaveOccurred()) Expect(err).ToNot(HaveOccurred())
defer server.Close() defer server.Close()
done := make(chan struct{})
go func() {
defer close(done)
defer GinkgoRecover()
sess, err := server.Accept(context.Background())
Expect(err).ToNot(HaveOccurred())
Expect(sess.ConnectionState().DidResume).To(BeFalse())
sess, err = server.Accept(context.Background())
Expect(err).ToNot(HaveOccurred())
Expect(sess.ConnectionState().DidResume).To(BeTrue())
}()
gets := make(chan string, 100) gets := make(chan string, 100)
puts := make(chan string, 100) puts := make(chan string, 100)
cache := newClientSessionCache(gets, puts) cache := newClientSessionCache(gets, puts)
@@ -80,6 +67,10 @@ var _ = Describe("TLS session resumption", func() {
Eventually(puts).Should(Receive(&sessionKey)) Eventually(puts).Should(Receive(&sessionKey))
Expect(sess.ConnectionState().DidResume).To(BeFalse()) Expect(sess.ConnectionState().DidResume).To(BeFalse())
serverSess, err := server.Accept(context.Background())
Expect(err).ToNot(HaveOccurred())
Expect(serverSess.ConnectionState().DidResume).To(BeFalse())
sess, err = quic.DialAddr( sess, err = quic.DialAddr(
fmt.Sprintf("localhost:%d", server.Addr().(*net.UDPAddr).Port), fmt.Sprintf("localhost:%d", server.Addr().(*net.UDPAddr).Port),
tlsConf, tlsConf,
@@ -89,6 +80,8 @@ var _ = Describe("TLS session resumption", func() {
Expect(gets).To(Receive(Equal(sessionKey))) Expect(gets).To(Receive(Equal(sessionKey)))
Expect(sess.ConnectionState().DidResume).To(BeTrue()) Expect(sess.ConnectionState().DidResume).To(BeTrue())
Eventually(done).Should(BeClosed()) serverSess, err = server.Accept(context.Background())
Expect(err).ToNot(HaveOccurred())
Expect(serverSess.ConnectionState().DidResume).To(BeTrue())
}) })
}) })