forked from quic-go/quic-go
fix race condition in the handshake RTT tests
This commit is contained in:
@@ -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
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user