fix race condition in the handshake RTT tests

This commit is contained in:
Marten Seemann
2017-08-23 09:49:14 +07:00
parent e513cb7ad2
commit 682d8b1c7a

View File

@@ -23,17 +23,20 @@ var _ = Describe("Handshake RTT tests", func() {
server quic.Listener server quic.Listener
serverConfig *quic.Config serverConfig *quic.Config
testStartedAt time.Time testStartedAt time.Time
acceptStopped chan struct{}
) )
rtt := 400 * time.Millisecond rtt := 400 * time.Millisecond
BeforeEach(func() { BeforeEach(func() {
acceptStopped = make(chan struct{})
serverConfig = &quic.Config{} serverConfig = &quic.Config{}
}) })
AfterEach(func() { AfterEach(func() {
Expect(proxy.Close()).To(Succeed()) Expect(proxy.Close()).To(Succeed())
Expect(server.Close()).To(Succeed()) Expect(server.Close()).To(Succeed())
<-acceptStopped
}) })
runServerAndProxy := func() { runServerAndProxy := func() {
@@ -51,8 +54,13 @@ var _ = Describe("Handshake RTT tests", func() {
testStartedAt = time.Now() testStartedAt = time.Now()
go func() { go func() {
defer GinkgoRecover()
defer close(acceptStopped)
for { for {
_, _ = server.Accept() _, err := server.Accept()
if err != nil {
return
}
} }
}() }()
} }