X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/cc1c83c261d289c7fa049637f8ae1fabe352059c..da5858d5f794c14cf00b830166bb34b1bcd79ba5:/sdk/go/arvados/client_test.go diff --git a/sdk/go/arvados/client_test.go b/sdk/go/arvados/client_test.go index a196003b8f..55e2f998c4 100644 --- a/sdk/go/arvados/client_test.go +++ b/sdk/go/arvados/client_test.go @@ -341,6 +341,20 @@ func (s *clientRetrySuite) TestNonRetryableError(c *check.C) { c.Check(s.reqs, check.HasLen, 1) } +// as of 0.7.2., retryablehttp does not recognize this as a +// non-retryable error. +func (s *clientRetrySuite) TestNonRetryableStdlibError(c *check.C) { + s.respStatus <- http.StatusOK + req, err := http.NewRequest(http.MethodGet, "https://"+s.client.APIHost+"/test", nil) + c.Assert(err, check.IsNil) + req.Header.Set("Good-Header", "T\033rrible header value") + err = s.client.DoAndDecode(&struct{}{}, req) + c.Check(err, check.ErrorMatches, `.*after 1 attempt.*net/http: invalid header .*`) + if !c.Check(s.reqs, check.HasLen, 0) { + c.Logf("%v", s.reqs[0]) + } +} + func (s *clientRetrySuite) TestNonRetryableAfter503s(c *check.C) { time.AfterFunc(time.Second, func() { s.respStatus <- http.StatusNotFound }) err := s.client.RequestAndDecode(&struct{}{}, http.MethodGet, "test", nil, nil)