mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
Fix pkg/proxy tests such that they don't leek goroutines and do close transports.
This commit is contained in:
parent
8981afb6f5
commit
d8550deb7f
@ -401,13 +401,16 @@ func (s *server) listenAndServe() {
|
||||
continue
|
||||
}
|
||||
|
||||
s.closeWg.Add(2)
|
||||
go func() {
|
||||
defer s.closeWg.Done()
|
||||
// read incoming bytes from listener, dispatch to outgoing connection
|
||||
s.transmit(out, in)
|
||||
out.Close()
|
||||
in.Close()
|
||||
}()
|
||||
go func() {
|
||||
defer s.closeWg.Done()
|
||||
// read response from outgoing connection, write back to listener
|
||||
s.receive(in, out)
|
||||
in.Close()
|
||||
|
@ -477,6 +477,7 @@ func testServerHTTP(t *testing.T, secure, delayTx bool) {
|
||||
mux := http.NewServeMux()
|
||||
mux.HandleFunc("/hello", func(w http.ResponseWriter, req *http.Request) {
|
||||
d, err := ioutil.ReadAll(req.Body)
|
||||
req.Body.Close()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@ -505,13 +506,12 @@ func testServerHTTP(t *testing.T, secure, delayTx bool) {
|
||||
<-donec
|
||||
}()
|
||||
go func() {
|
||||
defer close(donec)
|
||||
if !secure {
|
||||
srv.ListenAndServe()
|
||||
} else {
|
||||
srv.ListenAndServeTLS(tlsInfo.CertFile, tlsInfo.KeyFile)
|
||||
}
|
||||
defer srv.Close()
|
||||
defer close(donec)
|
||||
}()
|
||||
time.Sleep(200 * time.Millisecond)
|
||||
|
||||
@ -525,7 +525,11 @@ func testServerHTTP(t *testing.T, secure, delayTx bool) {
|
||||
}
|
||||
p := NewServer(cfg)
|
||||
<-p.Ready()
|
||||
defer p.Close()
|
||||
defer func() {
|
||||
lg.Info("closing Proxy server...")
|
||||
p.Close()
|
||||
lg.Info("closed Proxy server.")
|
||||
}()
|
||||
|
||||
data := "Hello World!"
|
||||
|
||||
@ -537,14 +541,18 @@ func testServerHTTP(t *testing.T, secure, delayTx bool) {
|
||||
assert.NoError(t, terr)
|
||||
cli := &http.Client{Transport: tp}
|
||||
resp, err = cli.Post("https://"+srcAddr+"/hello", "", strings.NewReader(data))
|
||||
defer cli.CloseIdleConnections()
|
||||
defer tp.CloseIdleConnections()
|
||||
} else {
|
||||
resp, err = http.Post("http://"+srcAddr+"/hello", "", strings.NewReader(data))
|
||||
defer http.DefaultClient.CloseIdleConnections()
|
||||
}
|
||||
assert.NoError(t, err)
|
||||
d, err := ioutil.ReadAll(resp.Body)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
resp.Body.Close()
|
||||
took1 := time.Since(now)
|
||||
t.Logf("took %v with no latency", took1)
|
||||
|
||||
@ -571,8 +579,11 @@ func testServerHTTP(t *testing.T, secure, delayTx bool) {
|
||||
}
|
||||
cli := &http.Client{Transport: tp}
|
||||
resp, err = cli.Post("https://"+srcAddr+"/hello", "", strings.NewReader(data))
|
||||
defer cli.CloseIdleConnections()
|
||||
defer tp.CloseIdleConnections()
|
||||
} else {
|
||||
resp, err = http.Post("http://"+srcAddr+"/hello", "", strings.NewReader(data))
|
||||
defer http.DefaultClient.CloseIdleConnections()
|
||||
}
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
@ -581,6 +592,7 @@ func testServerHTTP(t *testing.T, secure, delayTx bool) {
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
resp.Body.Close()
|
||||
took2 := time.Since(now)
|
||||
t.Logf("took %v with latency %v±%v", took2, lat, rv)
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user