@@ -1825,9 +1825,16 @@ func TestRedirectBadPath(t *testing.T) {
1825
1825
// connection immediately. But when it re-uses the connection, it typically closes
1826
1826
// the previous request's body, which is not optimal for zero-lengthed bodies,
1827
1827
// as the client would then see http.ErrBodyReadAfterClose and not 0, io.EOF.
1828
- func TestZeroLengthPostAndResponse (t * testing.T ) {
1828
+ func TestZeroLengthPostAndResponse_h1 (t * testing.T ) {
1829
+ testZeroLengthPostAndResponse (t , false )
1830
+ }
1831
+ func TestZeroLengthPostAndResponse_h2 (t * testing.T ) {
1832
+ testZeroLengthPostAndResponse (t , true )
1833
+ }
1834
+
1835
+ func testZeroLengthPostAndResponse (t * testing.T , h2 bool ) {
1829
1836
defer afterTest (t )
1830
- ts := httptest . NewServer ( HandlerFunc (func (rw ResponseWriter , r * Request ) {
1837
+ cst := newClientServerTest ( t , h2 , HandlerFunc (func (rw ResponseWriter , r * Request ) {
1831
1838
all , err := ioutil .ReadAll (r .Body )
1832
1839
if err != nil {
1833
1840
t .Fatalf ("handler ReadAll: %v" , err )
@@ -1837,17 +1844,17 @@ func TestZeroLengthPostAndResponse(t *testing.T) {
1837
1844
}
1838
1845
rw .Header ().Set ("Content-Length" , "0" )
1839
1846
}))
1840
- defer ts . Close ()
1847
+ defer cst . close ()
1841
1848
1842
- req , err := NewRequest ("POST" , ts .URL , strings .NewReader ("" ))
1849
+ req , err := NewRequest ("POST" , cst . ts .URL , strings .NewReader ("" ))
1843
1850
if err != nil {
1844
1851
t .Fatal (err )
1845
1852
}
1846
1853
req .ContentLength = 0
1847
1854
1848
1855
var resp [5 ]* Response
1849
1856
for i := range resp {
1850
- resp [i ], err = DefaultClient .Do (req )
1857
+ resp [i ], err = cst . c .Do (req )
1851
1858
if err != nil {
1852
1859
t .Fatalf ("client post #%d: %v" , i , err )
1853
1860
}
0 commit comments