Skip to content

Commit 4ea120e

Browse files
committed
client tests: simplify TestHTTP2Client test and use httptest.Server
1 parent b69aef3 commit 4ea120e

File tree

1 file changed

+17
-37
lines changed

1 file changed

+17
-37
lines changed

clients_test.go

+17-37
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package main
22

33
import (
44
"bytes"
5-
"context"
65
"crypto/tls"
76
"net/http"
87
"net/http/httptest"
@@ -59,38 +58,30 @@ func TestShouldProperlyConvertToHttpHeaders(t *testing.T) {
5958
func TestHTTP2Client(t *testing.T) {
6059
responseSize := 1024
6160
response := bytes.Repeat([]byte{'a'}, responseSize)
62-
url := "localhost:8443"
63-
s := &http.Server{
64-
Addr: url,
65-
Handler: http.HandlerFunc(
66-
func(w http.ResponseWriter, r *http.Request) {
67-
if !r.ProtoAtLeast(2, 0) {
68-
t.Errorf("invalid HTTP proto version: %v", r.Proto)
69-
}
70-
71-
w.WriteHeader(http.StatusOK)
72-
_, err := w.Write(response)
73-
if err != nil {
74-
t.Error(err)
75-
}
76-
},
77-
),
78-
TLSConfig: &tls.Config{
79-
NextProtos: []string{"http/2.0"},
80-
},
61+
s := httptest.NewUnstartedServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
62+
if !r.ProtoAtLeast(2, 0) {
63+
t.Errorf("invalid HTTP proto version: %v", r.Proto)
64+
}
65+
66+
w.WriteHeader(http.StatusOK)
67+
_, err := w.Write(response)
68+
if err != nil {
69+
t.Error(err)
70+
}
71+
}))
72+
s.EnableHTTP2 = true
73+
s.TLS = &tls.Config{
74+
InsecureSkipVerify: true,
8175
}
82-
errChan := make(chan error)
83-
go func() {
84-
err := s.ListenAndServeTLS("testserver.cert", "testserver.key")
85-
errChan <- err
86-
}()
76+
s.StartTLS()
77+
defer s.Close()
8778

8879
bytesRead, bytesWritten := int64(0), int64(0)
8980
c := newHTTPClient(&clientOpts{
9081
HTTP2: true,
9182

9283
headers: new(headersList),
93-
url: "https://" + url,
84+
url: s.URL,
9485
method: "GET",
9586
tlsConfig: &tls.Config{
9687
InsecureSkipVerify: true,
@@ -106,10 +97,6 @@ func TestHTTP2Client(t *testing.T) {
10697
t.Error(err)
10798
return
10899
}
109-
ctx := context.Background()
110-
if err := s.Shutdown(ctx); err != nil {
111-
t.Error(err)
112-
}
113100
if code != http.StatusOK {
114101
t.Errorf("invalid response code: %v", code)
115102
}
@@ -119,13 +106,6 @@ func TestHTTP2Client(t *testing.T) {
119106
if atomic.LoadInt64(&bytesWritten) == 0 {
120107
t.Errorf("empty request of size: %v", bytesWritten)
121108
}
122-
err = s.Close()
123-
if err != nil {
124-
t.Error(err)
125-
}
126-
if err := <-errChan; err != http.ErrServerClosed {
127-
t.Error(err)
128-
}
129109
}
130110

131111
func TestHTTP1Clients(t *testing.T) {

0 commit comments

Comments
 (0)