From 3e42d1da0fe31e39d80ddbca06d5f64bdcbc4359 Mon Sep 17 00:00:00 2001 From: Lucas Clemente Date: Sat, 6 Aug 2016 17:27:16 +0200 Subject: [PATCH] fix flaky h2quic tests fixes #260 --- h2quic/server_test.go | 43 +++++++++++++++++++++++++------------------ 1 file changed, 25 insertions(+), 18 deletions(-) diff --git a/h2quic/server_test.go b/h2quic/server_test.go index 6705ac91..9a81ce19 100644 --- a/h2quic/server_test.go +++ b/h2quic/server_test.go @@ -241,18 +241,22 @@ var _ = Describe("H2 server", func() { Expect(err).NotTo(HaveOccurred()) }, 0.5) - It("may only be called once", func(done Done) { - go func() { - defer GinkgoRecover() - err := s.ListenAndServe() - Expect(err).NotTo(HaveOccurred()) - close(done) - }() - time.Sleep(10 * time.Millisecond) - err := s.ListenAndServe() + It("may only be called once", func() { + cErr := make(chan error) + for i := 0; i < 2; i++ { + go func() { + defer GinkgoRecover() + err := s.ListenAndServe() + if err != nil { + cErr <- err + } + }() + } + err := <-cErr Expect(err).To(MatchError("ListenAndServe may only be called once")) err = s.Close() Expect(err).NotTo(HaveOccurred()) + }, 0.5) }) @@ -278,15 +282,18 @@ var _ = Describe("H2 server", func() { Expect(err).NotTo(HaveOccurred()) }, 0.5) - It("may only be called once", func(done Done) { - go func() { - defer GinkgoRecover() - err := s.ListenAndServeTLS(certPath+"fullchain.pem", certPath+"privkey.pem") - Expect(err).NotTo(HaveOccurred()) - close(done) - }() - time.Sleep(10 * time.Millisecond) - err := s.ListenAndServeTLS(certPath+"fullchain.pem", certPath+"privkey.pem") + It("may only be called once", func() { + cErr := make(chan error) + for i := 0; i < 2; i++ { + go func() { + defer GinkgoRecover() + err := s.ListenAndServeTLS(certPath+"fullchain.pem", certPath+"privkey.pem") + if err != nil { + cErr <- err + } + }() + } + err := <-cErr Expect(err).To(MatchError("ListenAndServe may only be called once")) err = s.Close() Expect(err).NotTo(HaveOccurred())