aboutsummaryrefslogtreecommitdiff
path: root/src/net/http/httputil/reverseproxy_test.go
diff options
context:
space:
mode:
authorIgnacio Hagopian <jsign.uy@gmail.com>2020-10-08 20:32:50 +0000
committerEmmanuel Odeke <emm.odeke@gmail.com>2020-10-12 22:23:38 +0000
commitca3c0df1f8e07337ba4048b191bf905118ebe251 (patch)
treeb4a52eb6c00d9f77d9aada6e62c5354df3a8f108 /src/net/http/httputil/reverseproxy_test.go
parentc321430bdc328c394de501bdc5f8f5d6d8952cd4 (diff)
downloadgo-ca3c0df1f8e07337ba4048b191bf905118ebe251.tar.gz
go-ca3c0df1f8e07337ba4048b191bf905118ebe251.zip
net/http/httputil: flush ReverseProxy immediately if Content-Length is -1
Finish up a prior TODO by making ReverseProxy flush immediately if Content-Length is -1, which is a case that can occur if for example we have a streamed response, or chunked encoding, or when the body's length wasn't known. Fixes #41642 Change-Id: I30babaaf3e14837b99e3ecdc562a0a0e50c579bf GitHub-Last-Rev: efc019a9fe361082d40bee77317018c3b80451a3 GitHub-Pull-Request: golang/go#41858 Reviewed-on: https://go-review.googlesource.com/c/go/+/260637 Run-TryBot: Emmanuel Odeke <emm.odeke@gmail.com> TryBot-Result: Go Bot <gobot@golang.org> Trust: Ian Lance Taylor <iant@golang.org> Trust: Emmanuel Odeke <emm.odeke@gmail.com> Reviewed-by: Emmanuel Odeke <emm.odeke@gmail.com>
Diffstat (limited to 'src/net/http/httputil/reverseproxy_test.go')
-rw-r--r--src/net/http/httputil/reverseproxy_test.go19
1 files changed, 17 insertions, 2 deletions
diff --git a/src/net/http/httputil/reverseproxy_test.go b/src/net/http/httputil/reverseproxy_test.go
index 764939fb0f..ea786864d8 100644
--- a/src/net/http/httputil/reverseproxy_test.go
+++ b/src/net/http/httputil/reverseproxy_test.go
@@ -1067,7 +1067,6 @@ func TestSelectFlushInterval(t *testing.T) {
tests := []struct {
name string
p *ReverseProxy
- req *http.Request
res *http.Response
want time.Duration
}{
@@ -1097,10 +1096,26 @@ func TestSelectFlushInterval(t *testing.T) {
p: &ReverseProxy{FlushInterval: 0},
want: -1,
},
+ {
+ name: "Content-Length: -1, overrides non-zero",
+ res: &http.Response{
+ ContentLength: -1,
+ },
+ p: &ReverseProxy{FlushInterval: 123},
+ want: -1,
+ },
+ {
+ name: "Content-Length: -1, overrides zero",
+ res: &http.Response{
+ ContentLength: -1,
+ },
+ p: &ReverseProxy{FlushInterval: 0},
+ want: -1,
+ },
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
- got := tt.p.flushInterval(tt.req, tt.res)
+ got := tt.p.flushInterval(tt.res)
if got != tt.want {
t.Errorf("flushLatency = %v; want %v", got, tt.want)
}