From e9db78ace32ace42d3c9cfb2c093e1a189da94fb Mon Sep 17 00:00:00 2001 From: Marten Seemann Date: Tue, 9 May 2017 14:43:18 +0800 Subject: [PATCH] fix flaky session test fixes #603 This test can be simplified (and made race-free) by using that session.run() now returns an error. --- session_test.go | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/session_test.go b/session_test.go index e0307b87..fe39c3bc 100644 --- a/session_test.go +++ b/session_test.go @@ -1166,17 +1166,17 @@ var _ = Describe("Session", func() { }) It("closes when crypto stream errors", func() { - go sess.run() - s, err := sess.GetOrOpenStream(3) - Expect(err).NotTo(HaveOccurred()) - err = sess.handleStreamFrame(&frames.StreamFrame{ + var runErr error + go func() { + runErr = sess.run() + }() + err := sess.handleStreamFrame(&frames.StreamFrame{ StreamID: 1, Data: []byte("4242\x00\x00\x00\x00"), }) Expect(err).NotTo(HaveOccurred()) - Eventually(func() bool { return atomic.LoadUint32(&sess.closed) != 0 }).Should(BeTrue()) - _, err = s.Write([]byte{}) - Expect(err.(*qerr.QuicError).ErrorCode).To(Equal(qerr.InvalidCryptoMessageType)) + Eventually(func() error { return runErr }).Should(HaveOccurred()) + Expect(runErr.(qerr.ErrorCode)).To(Equal(qerr.InvalidCryptoMessageType)) }) Context("sending a Public Reset when receiving undecryptable packets during the handshake", func() {