From e4e74e087356e150f48320e921319bb5b3e3d700 Mon Sep 17 00:00:00 2001 From: Marten Seemann Date: Wed, 20 Dec 2017 17:33:36 +0700 Subject: [PATCH] properly stop the testserver at the end of a test in integration tests --- integrationtests/tools/testserver/server.go | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/integrationtests/tools/testserver/server.go b/integrationtests/tools/testserver/server.go index b370a078f..909f560b2 100644 --- a/integrationtests/tools/testserver/server.go +++ b/integrationtests/tools/testserver/server.go @@ -25,8 +25,9 @@ var ( PRData = GeneratePRData(dataLen) PRDataLong = GeneratePRData(dataLenLong) - server *h2quic.Server - port string + server *h2quic.Server + stoppedServing chan struct{} + port string ) func init() { @@ -95,14 +96,18 @@ func StartQuicServer(versions []protocol.VersionNumber) { Expect(err).NotTo(HaveOccurred()) port = strconv.Itoa(conn.LocalAddr().(*net.UDPAddr).Port) + stoppedServing = make(chan struct{}) + go func() { defer GinkgoRecover() server.Serve(conn) + close(stoppedServing) }() } func StopQuicServer() { Expect(server.Close()).NotTo(HaveOccurred()) + Eventually(stoppedServing).Should(BeClosed()) } func Port() string {