1package s3 2 3import ( 4 "net/http" 5 "testing" 6 7 "github.com/aws/aws-sdk-go/aws/request" 8 "github.com/aws/aws-sdk-go/awstesting" 9) 10 11func TestUnmarhsalErrorLeak(t *testing.T) { 12 req := &request.Request{ 13 HTTPRequest: &http.Request{ 14 Header: make(http.Header), 15 Body: &awstesting.ReadCloser{Size: 2048}, 16 }, 17 } 18 req.HTTPResponse = &http.Response{ 19 Body: &awstesting.ReadCloser{Size: 2048}, 20 Header: http.Header{ 21 "X-Amzn-Requestid": []string{"1"}, 22 }, 23 StatusCode: http.StatusOK, 24 } 25 26 reader := req.HTTPResponse.Body.(*awstesting.ReadCloser) 27 unmarshalError(req) 28 29 if req.Error == nil { 30 t.Error("expected an error, but received none") 31 } 32 33 if !reader.Closed { 34 t.Error("expected reader to be closed") 35 } 36 37 if e, a := 0, reader.Size; e != a { 38 t.Errorf("expected %d, but received %d", e, a) 39 } 40} 41