http3: simplify buffering of small responses (#4432)

This commit is contained in:
Marten Seemann
2024-04-13 16:46:19 -07:00
committed by GitHub
parent 857c31dc7c
commit 90627f6f7c
6 changed files with 104 additions and 77 deletions

View File

@@ -26,7 +26,7 @@ func encodeResponse(status int) []byte {
buf := &bytes.Buffer{}
rstr := mockquic.NewMockStream(mockCtrl)
rstr.EXPECT().Write(gomock.Any()).Do(buf.Write).AnyTimes()
rw := newResponseWriter(rstr, nil, utils.DefaultLogger)
rw := newResponseWriter(rstr, nil, false, utils.DefaultLogger)
rw.WriteHeader(status)
rw.Flush()
return buf.Bytes()
@@ -738,7 +738,7 @@ var _ = Describe("Client", func() {
buf := &bytes.Buffer{}
rstr := mockquic.NewMockStream(mockCtrl)
rstr.EXPECT().Write(gomock.Any()).Do(buf.Write).AnyTimes()
rw := newResponseWriter(rstr, nil, utils.DefaultLogger)
rw := newResponseWriter(rstr, nil, false, utils.DefaultLogger)
rw.Header().Set("Content-Encoding", "gzip")
gz := gzip.NewWriter(rw)
gz.Write([]byte("gzipped response"))
@@ -764,7 +764,7 @@ var _ = Describe("Client", func() {
buf := &bytes.Buffer{}
rstr := mockquic.NewMockStream(mockCtrl)
rstr.EXPECT().Write(gomock.Any()).Do(buf.Write).AnyTimes()
rw := newResponseWriter(rstr, nil, utils.DefaultLogger)
rw := newResponseWriter(rstr, nil, false, utils.DefaultLogger)
rw.Write([]byte("not gzipped"))
rw.Flush()
str.EXPECT().Write(gomock.Any()).AnyTimes().DoAndReturn(func(p []byte) (int, error) { return len(p), nil })