From f107086d03e855730aeda6fc744cd672b69c0356 Mon Sep 17 00:00:00 2001 From: Erik Dubbelboer Date: Fri, 1 Apr 2022 16:47:46 +0200 Subject: [PATCH] Use %v for errors and %q for strings Mostly in tests. --- allocation_test.go | 2 +- args_test.go | 4 +- brotli.go | 2 +- brotli_test.go | 10 +- bytesconv_test.go | 12 +- bytesconv_timing_test.go | 10 +- client.go | 2 +- client_example_test.go | 4 +- client_test.go | 128 ++--- client_timing_test.go | 50 +- client_timing_wait_test.go | 10 +- compress.go | 8 +- cookie_test.go | 32 +- cookie_timing_test.go | 6 +- examples/client/client.go | 8 +- examples/fileserver/fileserver.go | 4 +- examples/helloworldserver/helloworldserver.go | 2 +- examples/host_client/hostclient.go | 2 +- expvarhandler/expvar.go | 2 +- expvarhandler/expvar_test.go | 2 +- fasthttpadaptor/adaptor.go | 2 +- fasthttpadaptor/adaptor_test.go | 8 +- fasthttpproxy/proxy_env.go | 4 +- fasthttputil/inmemory_listener_test.go | 22 +- fasthttputil/inmemory_listener_timing_test.go | 6 +- fasthttputil/pipeconns_test.go | 46 +- fs.go | 18 +- fs_example_test.go | 2 +- fs_handler_example_test.go | 2 +- fs_test.go | 58 +-- header.go | 2 +- header_regression_test.go | 2 +- header_test.go | 182 +++---- header_timing_test.go | 8 +- http.go | 4 +- http_test.go | 220 ++++---- lbclient_example_test.go | 2 +- peripconn_test.go | 2 +- prefork/prefork_test.go | 16 +- ...estctx_setbodystreamwriter_example_test.go | 2 +- reuseport/reuseport_error.go | 2 +- reuseport/reuseport_example_test.go | 4 +- reuseport/reuseport_test.go | 2 +- server.go | 18 +- server_example_test.go | 16 +- server_test.go | 470 +++++++++--------- server_timing_test.go | 12 +- stackless/func_test.go | 4 +- stackless/writer_test.go | 12 +- status_test.go | 2 +- status_timing_test.go | 2 +- stream_test.go | 10 +- stream_timing_test.go | 6 +- streaming_test.go | 40 +- uri.go | 2 +- uri_test.go | 2 +- userdata_test.go | 2 +- workerpool.go | 2 +- workerpool_test.go | 22 +- 59 files changed, 769 insertions(+), 769 deletions(-) diff --git a/allocation_test.go b/allocation_test.go index 56c922be60..5429ab654a 100644 --- a/allocation_test.go +++ b/allocation_test.go @@ -39,7 +39,7 @@ func TestAllocationServeConn(t *testing.T) { func TestAllocationClient(t *testing.T) { ln, err := net.Listen("tcp4", "127.0.0.1:0") if err != nil { - t.Fatalf("cannot listen: %s", err) + t.Fatalf("cannot listen: %v", err) } defer ln.Close() diff --git a/args_test.go b/args_test.go index c780c3bfed..fc365417c1 100644 --- a/args_test.go +++ b/args_test.go @@ -237,7 +237,7 @@ func TestArgsWriteTo(t *testing.T) { var w bytebufferpool.ByteBuffer n, err := a.WriteTo(&w) if err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if n != int64(len(s)) { t.Fatalf("unexpected n: %d. Expecting %d", n, len(s)) @@ -594,7 +594,7 @@ func TestArgsDeleteAll(t *testing.T) { a.Add("q2", "1234") a.Del("q1") if a.Len() != 1 || a.Has("q1") { - t.Fatalf("Expected q1 arg to be completely deleted. Current Args: %s", a.String()) + t.Fatalf("Expected q1 arg to be completely deleted. Current Args: %q", a.String()) } } diff --git a/brotli.go b/brotli.go index a88fdcec8c..41e9609287 100644 --- a/brotli.go +++ b/brotli.go @@ -140,7 +140,7 @@ func nonblockingWriteBrotli(ctxv interface{}) { _, err := zw.Write(ctx.p) if err != nil { - panic(fmt.Sprintf("BUG: brotli.Writer.Write for len(p)=%d returned unexpected error: %s", len(ctx.p), err)) + panic(fmt.Sprintf("BUG: brotli.Writer.Write for len(p)=%d returned unexpected error: %v", len(ctx.p), err)) } releaseRealBrotliWriter(zw, ctx.level) diff --git a/brotli_test.go b/brotli_test.go index a4efa0584a..15a76acb33 100644 --- a/brotli_test.go +++ b/brotli_test.go @@ -118,7 +118,7 @@ func TestCompressHandlerBrotliLevel(t *testing.T) { s := ctx.Response.String() br := bufio.NewReader(bytes.NewBufferString(s)) if err := resp.Read(br); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } ce := resp.Header.Peek(HeaderContentEncoding) if string(ce) != "" { @@ -138,7 +138,7 @@ func TestCompressHandlerBrotliLevel(t *testing.T) { s = ctx.Response.String() br = bufio.NewReader(bytes.NewBufferString(s)) if err := resp.Read(br); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } ce = resp.Header.Peek(HeaderContentEncoding) if string(ce) != "gzip" { @@ -146,7 +146,7 @@ func TestCompressHandlerBrotliLevel(t *testing.T) { } body, err := resp.BodyGunzip() if err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if string(body) != expectedBody { t.Fatalf("unexpected body %q. Expecting %q", body, expectedBody) @@ -161,7 +161,7 @@ func TestCompressHandlerBrotliLevel(t *testing.T) { s = ctx.Response.String() br = bufio.NewReader(bytes.NewBufferString(s)) if err := resp.Read(br); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } ce = resp.Header.Peek(HeaderContentEncoding) if string(ce) != "br" { @@ -169,7 +169,7 @@ func TestCompressHandlerBrotliLevel(t *testing.T) { } body, err = resp.BodyUnbrotli() if err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if string(body) != expectedBody { t.Fatalf("unexpected body %q. Expecting %q", body, expectedBody) diff --git a/bytesconv_test.go b/bytesconv_test.go index cf4a12ec2a..67c41f90a5 100644 --- a/bytesconv_test.go +++ b/bytesconv_test.go @@ -76,7 +76,7 @@ func testParseIPv4(t *testing.T, ipStr string, isValid bool) { ip, err := ParseIPv4(nil, []byte(ipStr)) if isValid { if err != nil { - t.Fatalf("unexpected error when parsing ip %q: %s", ipStr, err) + t.Fatalf("unexpected error when parsing ip %q: %v", ipStr, err) } s := string(AppendIPv4(nil, ip)) if s != ipStr { @@ -131,10 +131,10 @@ func testWriteHexInt(t *testing.T, n int, expectedS string) { var w bytebufferpool.ByteBuffer bw := bufio.NewWriter(&w) if err := writeHexInt(bw, n); err != nil { - t.Fatalf("unexpected error when writing hex %x: %s", n, err) + t.Fatalf("unexpected error when writing hex %x: %v", n, err) } if err := bw.Flush(); err != nil { - t.Fatalf("unexpected error when flushing hex %x: %s", n, err) + t.Fatalf("unexpected error when flushing hex %x: %v", n, err) } s := string(w.B) if s != expectedS { @@ -168,7 +168,7 @@ func testReadHexIntSuccess(t *testing.T, s string, expectedN int) { br := bufio.NewReader(r) n, err := readHexInt(br) if err != nil { - t.Fatalf("unexpected error: %s. s=%q", err, s) + t.Fatalf("unexpected error: %v. s=%q", err, s) } if n != expectedN { t.Fatalf("unexpected hex int %d. Expected %d. s=%q", n, expectedN, s) @@ -274,7 +274,7 @@ func testParseUfloatError(t *testing.T, s string) { func testParseUfloatSuccess(t *testing.T, s string, expectedF float64) { f, err := ParseUfloat([]byte(s)) if err != nil { - t.Fatalf("Unexpected error when parsing %q: %s", s, err) + t.Fatalf("Unexpected error when parsing %q: %v", s, err) } delta := f - expectedF if delta < 0 { @@ -298,7 +298,7 @@ func testParseUintError(t *testing.T, s string) { func testParseUintSuccess(t *testing.T, s string, expectedN int) { n, err := ParseUint([]byte(s)) if err != nil { - t.Fatalf("Unexpected error when parsing %q: %s", s, err) + t.Fatalf("Unexpected error when parsing %q: %v", s, err) } if n != expectedN { t.Fatalf("Unexpected value %d. Expected %d. num=%q", n, expectedN, s) diff --git a/bytesconv_timing_test.go b/bytesconv_timing_test.go index 34795df729..334376a94d 100644 --- a/bytesconv_timing_test.go +++ b/bytesconv_timing_test.go @@ -18,7 +18,7 @@ func BenchmarkAppendHTMLEscape(b *testing.B) { for i := 0; i < 10; i++ { buf = AppendHTMLEscape(buf[:0], sOrig) if string(buf) != sExpected { - b.Fatalf("unexpected escaped string: %s. Expecting %s", buf, sExpected) + b.Fatalf("unexpected escaped string: %q. Expecting %q", buf, sExpected) } } } @@ -34,7 +34,7 @@ func BenchmarkHTMLEscapeString(b *testing.B) { for i := 0; i < 10; i++ { s = html.EscapeString(sOrig) if s != sExpected { - b.Fatalf("unexpected escaped string: %s. Expecting %s", s, sExpected) + b.Fatalf("unexpected escaped string: %q. Expecting %q", s, sExpected) } } } @@ -49,7 +49,7 @@ func BenchmarkParseIPv4(b *testing.B) { for pb.Next() { ip, err = ParseIPv4(ip, ipStr) if err != nil { - b.Fatalf("unexpected error: %s", err) + b.Fatalf("unexpected error: %v", err) } } }) @@ -88,10 +88,10 @@ func BenchmarkParseUint(b *testing.B) { for pb.Next() { n, err := ParseUint(buf) if err != nil { - b.Fatalf("unexpected error: %s", err) + b.Fatalf("unexpected error: %v", err) } if n != 1234567 { - b.Fatalf("unexpected result: %d. Expecting %s", n, buf) + b.Fatalf("unexpected result: %d. Expecting %q", n, buf) } } }) diff --git a/client.go b/client.go index aea74116fb..5c40f782af 100644 --- a/client.go +++ b/client.go @@ -2630,7 +2630,7 @@ func (c *pipelineConnClient) init() { // Keep restarting the worker if it fails (connection errors for example). for { if err := c.worker(); err != nil { - c.logger().Printf("error in PipelineClient(%q): %s", c.Addr, err) + c.logger().Printf("error in PipelineClient(%q): %v", c.Addr, err) if netErr, ok := err.(net.Error); ok && netErr.Timeout() { // Throttle client reconnections on timeout errors time.Sleep(time.Second) diff --git a/client_example_test.go b/client_example_test.go index 9a1ad6a201..c2366e43c7 100644 --- a/client_example_test.go +++ b/client_example_test.go @@ -16,7 +16,7 @@ func ExampleHostClient() { // Fetch google page via local proxy. statusCode, body, err := c.Get(nil, "http://google.com/foo/bar") if err != nil { - log.Fatalf("Error when loading google page through local proxy: %s", err) + log.Fatalf("Error when loading google page through local proxy: %v", err) } if statusCode != fasthttp.StatusOK { log.Fatalf("Unexpected status code: %d. Expecting %d", statusCode, fasthttp.StatusOK) @@ -26,7 +26,7 @@ func ExampleHostClient() { // Fetch foobar page via local proxy. Reuse body buffer. statusCode, body, err = c.Get(body, "http://foobar.com/google/com") if err != nil { - log.Fatalf("Error when loading foobar page through local proxy: %s", err) + log.Fatalf("Error when loading foobar page through local proxy: %v", err) } if statusCode != fasthttp.StatusOK { log.Fatalf("Unexpected status code: %d. Expecting %d", statusCode, fasthttp.StatusOK) diff --git a/client_test.go b/client_test.go index e5593058e9..cd0e49c057 100644 --- a/client_test.go +++ b/client_test.go @@ -275,7 +275,7 @@ func TestClientURLAuth(t *testing.T) { val := <-ch if val != expected { - t.Fatalf("wrong %s header: %s expected %s", HeaderAuthorization, val, expected) + t.Fatalf("wrong %q header: %q expected %q", HeaderAuthorization, val, expected) } } } @@ -357,14 +357,14 @@ func TestClientParseConn(t *testing.T) { } if res.RemoteAddr().Network() != network { - t.Fatalf("req RemoteAddr parse network fail: %s, hope: %s", res.RemoteAddr().Network(), network) + t.Fatalf("req RemoteAddr parse network fail: %q, hope: %q", res.RemoteAddr().Network(), network) } if host != res.RemoteAddr().String() { - t.Fatalf("req RemoteAddr parse addr fail: %s, hope: %s", res.RemoteAddr().String(), host) + t.Fatalf("req RemoteAddr parse addr fail: %q, hope: %q", res.RemoteAddr().String(), host) } if !regexp.MustCompile(`^127\.0\.0\.1:[0-9]{4,5}$`).MatchString(res.LocalAddr().String()) { - t.Fatalf("res LocalAddr addr match fail: %s, hope match: %s", res.LocalAddr().String(), "^127.0.0.1:[0-9]{4,5}$") + t.Fatalf("res LocalAddr addr match fail: %q, hope match: %q", res.LocalAddr().String(), "^127.0.0.1:[0-9]{4,5}$") } } @@ -439,7 +439,7 @@ func TestClientRedirectSameSchema(t *testing.T) { statusCode, _, err := reqClient.GetTimeout(nil, destURL, 4000*time.Millisecond) if err != nil { - t.Fatalf("HostClient error: %s", err) + t.Fatalf("HostClient error: %v", err) return } @@ -474,7 +474,7 @@ func TestClientRedirectClientChangingSchemaHttp2Https(t *testing.T) { statusCode, _, err := reqClient.GetTimeout(nil, destURL, 4000*time.Millisecond) if err != nil { - t.Fatalf("HostClient error: %s", err) + t.Fatalf("HostClient error: %v", err) return } @@ -545,7 +545,7 @@ func testClientRedirectListener(t *testing.T, isTLS bool) net.Listener { } if err != nil { - t.Fatalf("cannot listen isTLS %v: %s", isTLS, err) + t.Fatalf("cannot listen isTLS %v: %v", isTLS, err) } return ln @@ -573,7 +573,7 @@ func testClientRedirectChangingSchemaServer(t *testing.T, https, http net.Listen go func() { err := s.Serve(ln) if err != nil { - t.Errorf("unexpected error returned from Serve(): %s", err) + t.Errorf("unexpected error returned from Serve(): %v", err) } close(ch) }() @@ -881,7 +881,7 @@ func TestClientDoWithCustomHeaders(t *testing.T) { err := c.DoTimeout(&req, &resp, time.Second) if err != nil { - t.Fatalf("error when doing request: %s", err) + t.Fatalf("error when doing request: %v", err) } select { @@ -927,7 +927,7 @@ func testPipelineClientDoConcurrent(t *testing.T, concurrency int, maxBatchDelay serverStopCh := make(chan struct{}) go func() { if err := s.Serve(ln); err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } close(serverStopCh) }() @@ -963,7 +963,7 @@ func testPipelineClientDoConcurrent(t *testing.T, concurrency int, maxBatchDelay } if err := ln.Close(); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } select { case <-serverStopCh: @@ -988,7 +988,7 @@ func testPipelineClientDo(t *testing.T, c *PipelineClient) { time.Sleep(10 * time.Millisecond) continue } - t.Errorf("unexpected error on iteration %d: %s", i, err) + t.Errorf("unexpected error on iteration %d: %v", i, err) } if resp.StatusCode() != StatusOK { t.Errorf("unexpected status code: %d. Expecting %d", resp.StatusCode(), StatusOK) @@ -1032,7 +1032,7 @@ func testPipelineClientDisableHeaderNamesNormalizing(t *testing.T, timeout time. serverStopCh := make(chan struct{}) go func() { if err := s.Serve(ln); err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } close(serverStopCh) }() @@ -1050,11 +1050,11 @@ func testPipelineClientDisableHeaderNamesNormalizing(t *testing.T, timeout time. for i := 0; i < 5; i++ { if timeout > 0 { if err := c.DoTimeout(&req, &resp, timeout); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } } else { if err := c.Do(&req, &resp); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } } hv := resp.Header.Peek("foo-BAR") @@ -1068,7 +1068,7 @@ func testPipelineClientDisableHeaderNamesNormalizing(t *testing.T, timeout time. } if err := ln.Close(); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } select { case <-serverStopCh: @@ -1092,7 +1092,7 @@ func TestClientDoTimeoutDisableHeaderNamesNormalizing(t *testing.T) { serverStopCh := make(chan struct{}) go func() { if err := s.Serve(ln); err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } close(serverStopCh) }() @@ -1109,7 +1109,7 @@ func TestClientDoTimeoutDisableHeaderNamesNormalizing(t *testing.T) { var resp Response for i := 0; i < 5; i++ { if err := c.DoTimeout(&req, &resp, time.Second); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } hv := resp.Header.Peek("foo-BAR") if string(hv) != "baz" { @@ -1122,7 +1122,7 @@ func TestClientDoTimeoutDisableHeaderNamesNormalizing(t *testing.T) { } if err := ln.Close(); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } select { case <-serverStopCh: @@ -1147,7 +1147,7 @@ func TestClientDoTimeoutDisablePathNormalizing(t *testing.T) { serverStopCh := make(chan struct{}) go func() { if err := s.Serve(ln); err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } close(serverStopCh) }() @@ -1166,7 +1166,7 @@ func TestClientDoTimeoutDisablePathNormalizing(t *testing.T) { var resp Response for i := 0; i < 5; i++ { if err := c.DoTimeout(&req, &resp, time.Second); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } hv := resp.Header.Peek("received-uri") if string(hv) != urlWithEncodedPath { @@ -1175,7 +1175,7 @@ func TestClientDoTimeoutDisablePathNormalizing(t *testing.T) { } if err := ln.Close(); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } select { case <-serverStopCh: @@ -1200,7 +1200,7 @@ func TestHostClientPendingRequests(t *testing.T) { serverStopCh := make(chan struct{}) go func() { if err := s.Serve(ln); err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } close(serverStopCh) }() @@ -1257,7 +1257,7 @@ func TestHostClientPendingRequests(t *testing.T) { select { case err := <-resultCh: if err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } case <-time.After(time.Second): t.Fatalf("timeout") @@ -1271,7 +1271,7 @@ func TestHostClientPendingRequests(t *testing.T) { // stop the server if err := ln.Close(); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } select { case <-serverStopCh: @@ -1302,7 +1302,7 @@ func TestHostClientMaxConnsWithDeadline(t *testing.T) { serverStopCh := make(chan struct{}) go func() { if err := s.Serve(ln); err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } close(serverStopCh) }() @@ -1332,7 +1332,7 @@ func TestHostClientMaxConnsWithDeadline(t *testing.T) { time.Sleep(time.Millisecond) continue } - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } break } @@ -1350,7 +1350,7 @@ func TestHostClientMaxConnsWithDeadline(t *testing.T) { wg.Wait() if err := ln.Close(); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } select { case <-serverStopCh: @@ -1380,7 +1380,7 @@ func TestHostClientMaxConnDuration(t *testing.T) { serverStopCh := make(chan struct{}) go func() { if err := s.Serve(ln); err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } close(serverStopCh) }() @@ -1396,7 +1396,7 @@ func TestHostClientMaxConnDuration(t *testing.T) { for i := 0; i < 5; i++ { statusCode, body, err := c.Get(nil, "http://aaaa.com/bbb/cc") if err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if statusCode != StatusOK { t.Fatalf("unexpected status code %d. Expecting %d", statusCode, StatusOK) @@ -1408,7 +1408,7 @@ func TestHostClientMaxConnDuration(t *testing.T) { } if err := ln.Close(); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } select { case <-serverStopCh: @@ -1435,7 +1435,7 @@ func TestHostClientMultipleAddrs(t *testing.T) { serverStopCh := make(chan struct{}) go func() { if err := s.Serve(ln); err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } close(serverStopCh) }() @@ -1452,7 +1452,7 @@ func TestHostClientMultipleAddrs(t *testing.T) { for i := 0; i < 9; i++ { statusCode, body, err := c.Get(nil, "http://foobar/baz/aaa?bbb=ddd") if err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if statusCode != StatusOK { t.Fatalf("unexpected status code %d. Expecting %d", statusCode, StatusOK) @@ -1463,7 +1463,7 @@ func TestHostClientMultipleAddrs(t *testing.T) { } if err := ln.Close(); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } select { case <-serverStopCh: @@ -1505,7 +1505,7 @@ func TestClientFollowRedirects(t *testing.T) { serverStopCh := make(chan struct{}) go func() { if err := s.Serve(ln); err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } close(serverStopCh) }() @@ -1520,7 +1520,7 @@ func TestClientFollowRedirects(t *testing.T) { for i := 0; i < 10; i++ { statusCode, body, err := c.GetTimeout(nil, "http://xxx/foo", time.Second) if err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if statusCode != StatusOK { t.Fatalf("unexpected status code: %d", statusCode) @@ -1533,7 +1533,7 @@ func TestClientFollowRedirects(t *testing.T) { for i := 0; i < 10; i++ { statusCode, body, err := c.Get(nil, "http://xxx/aaab/sss") if err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if statusCode != StatusOK { t.Fatalf("unexpected status code: %d", statusCode) @@ -1551,7 +1551,7 @@ func TestClientFollowRedirects(t *testing.T) { err := c.DoRedirects(req, resp, 16) if err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if statusCode := resp.StatusCode(); statusCode != StatusOK { @@ -1708,7 +1708,7 @@ func testClientDoTimeoutError(t *testing.T, c *Client, n int) { t.Errorf("expecting error") } if err != ErrTimeout { - t.Errorf("unexpected error: %s. Expecting %s", err, ErrTimeout) + t.Errorf("unexpected error: %v. Expecting %v", err, ErrTimeout) } } } @@ -1721,7 +1721,7 @@ func testClientGetTimeoutError(t *testing.T, c *Client, n int) { t.Errorf("expecting error") } if err != ErrTimeout { - t.Errorf("unexpected error: %s. Expecting %s", err, ErrTimeout) + t.Errorf("unexpected error: %v. Expecting %v", err, ErrTimeout) } if statusCode != 0 { t.Errorf("unexpected statusCode=%d. Expecting %d", statusCode, 0) @@ -1785,7 +1785,7 @@ func TestClientNonIdempotentRetry(t *testing.T) { dialsCount = 0 statusCode, body, err := c.Post(nil, "http://foobar/a/b", nil) if err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if statusCode != 345 { t.Fatalf("unexpected status code: %d. Expecting 345", statusCode) @@ -1798,7 +1798,7 @@ func TestClientNonIdempotentRetry(t *testing.T) { dialsCount = 0 statusCode, body, err = c.Get(nil, "http://foobar/a/b") if err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if statusCode != 345 { t.Fatalf("unexpected status code: %d. Expecting 345", statusCode) @@ -1875,7 +1875,7 @@ func TestClientIdempotentRequest(t *testing.T) { // idempotent GET must succeed. statusCode, body, err := c.Get(nil, "http://foobar/a/b") if err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if statusCode != 345 { t.Fatalf("unexpected status code: %d. Expecting 345", statusCode) @@ -1936,7 +1936,7 @@ func TestClientRetryRequestWithCustomDecider(t *testing.T) { // Post must succeed for http://foobar/a/b uri. statusCode, body, err := c.Post(nil, "http://foobar/a/b", &args) if err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if statusCode != 345 { t.Fatalf("unexpected status code: %d. Expecting 345", statusCode) @@ -1966,7 +1966,7 @@ func TestHostClientTransport(t *testing.T) { serverStopCh := make(chan struct{}) go func() { if err := s.Serve(ln); err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } close(serverStopCh) }() @@ -1996,7 +1996,7 @@ func TestHostClientTransport(t *testing.T) { for i := 0; i < 5; i++ { statusCode, body, err := c.Get(nil, "http://aaaa.com/bbb/cc") if err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if statusCode != StatusOK { t.Fatalf("unexpected status code %d. Expecting %d", statusCode, StatusOK) @@ -2007,7 +2007,7 @@ func TestHostClientTransport(t *testing.T) { } if err := ln.Close(); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } select { @@ -2146,7 +2146,7 @@ func TestSingleEchoConn(t *testing.T) { err := c.Do(&req, &res) if err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if res.StatusCode() != 345 { t.Fatalf("unexpected status code: %d. Expecting 345", res.StatusCode()) @@ -2326,7 +2326,7 @@ func testClientGet(t *testing.T, c clientGetter, addr string, n int) { statusCode, body, err := c.Get(buf, uri) buf = body if err != nil { - t.Errorf("unexpected error when doing http request: %s", err) + t.Errorf("unexpected error when doing http request: %v", err) } if statusCode != StatusOK { t.Errorf("unexpected status code: %d. Expecting %d", statusCode, StatusOK) @@ -2346,7 +2346,7 @@ func testClientDoTimeoutSuccess(t *testing.T, c *Client, addr string, n int) { uri := fmt.Sprintf("%s/foo/%d?bar=baz", addr, i) req.SetRequestURI(uri) if err := c.DoTimeout(&req, &resp, time.Second); err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } if resp.StatusCode() != StatusOK { t.Errorf("unexpected status code: %d. Expecting %d", resp.StatusCode(), StatusOK) @@ -2368,7 +2368,7 @@ func testClientGetTimeoutSuccess(t *testing.T, c *Client, addr string, n int) { statusCode, body, err := c.GetTimeout(buf, uri, time.Second) buf = body if err != nil { - t.Errorf("unexpected error when doing http request: %s", err) + t.Errorf("unexpected error when doing http request: %v", err) } if statusCode != StatusOK { t.Errorf("unexpected status code: %d. Expecting %d", statusCode, StatusOK) @@ -2394,7 +2394,7 @@ func testClientPost(t *testing.T, c clientPoster, addr string, n int) { statusCode, body, err := c.Post(buf, uri, &args) buf = body if err != nil { - t.Errorf("unexpected error when doing http request: %s", err) + t.Errorf("unexpected error when doing http request: %v", err) } if statusCode != StatusOK { t.Errorf("unexpected status code: %d. Expecting %d", statusCode, StatusOK) @@ -2484,7 +2484,7 @@ func startEchoServerExt(t *testing.T, network, addr string, isTLS bool) *testEch ln, err = net.Listen(network, addr) } if err != nil { - t.Fatalf("cannot listen %q: %s", addr, err) + t.Fatalf("cannot listen %q: %v", addr, err) } s := &Server{ @@ -2501,7 +2501,7 @@ func startEchoServerExt(t *testing.T, network, addr string, isTLS bool) *testEch go func() { err := s.Serve(ln) if err != nil { - t.Errorf("unexpected error returned from Serve(): %s", err) + t.Errorf("unexpected error returned from Serve(): %v", err) } close(ch) }() @@ -2573,7 +2573,7 @@ func TestHostClientMaxConnWaitTimeoutSuccess(t *testing.T) { serverStopCh := make(chan struct{}) go func() { if err := s.Serve(ln); err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } close(serverStopCh) }() @@ -2599,7 +2599,7 @@ func TestHostClientMaxConnWaitTimeoutSuccess(t *testing.T) { resp := AcquireResponse() if err := c.Do(req, resp); err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } if resp.StatusCode() != StatusOK { @@ -2618,7 +2618,7 @@ func TestHostClientMaxConnWaitTimeoutSuccess(t *testing.T) { t.Errorf("connsWait has %v items remaining", c.connsWait.len()) } if err := ln.Close(); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } select { case <-serverStopCh: @@ -2652,7 +2652,7 @@ func TestHostClientMaxConnWaitTimeoutError(t *testing.T) { serverStopCh := make(chan struct{}) go func() { if err := s.Serve(ln); err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } close(serverStopCh) }() @@ -2680,7 +2680,7 @@ func TestHostClientMaxConnWaitTimeoutError(t *testing.T) { if err := c.Do(req, resp); err != nil { if err != ErrNoFreeConns { - t.Errorf("unexpected error: %s. Expecting %s", err, ErrNoFreeConns) + t.Errorf("unexpected error: %v. Expecting %v", err, ErrNoFreeConns) } atomic.AddUint32(&errNoFreeConnsCount, 1) } else { @@ -2708,7 +2708,7 @@ func TestHostClientMaxConnWaitTimeoutError(t *testing.T) { t.Errorf("unexpected errorCount: %d. Expecting > 0", errNoFreeConnsCount) } if err := ln.Close(); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } select { case <-serverStopCh: @@ -2746,7 +2746,7 @@ func TestHostClientMaxConnWaitTimeoutWithEarlierDeadline(t *testing.T) { serverStopCh := make(chan struct{}) go func() { if err := s.Serve(ln); err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } close(serverStopCh) }() @@ -2774,7 +2774,7 @@ func TestHostClientMaxConnWaitTimeoutWithEarlierDeadline(t *testing.T) { if err := c.DoDeadline(req, resp, time.Now().Add(timeout)); err != nil { if err != ErrTimeout { - t.Errorf("unexpected error: %s. Expecting %s", err, ErrTimeout) + t.Errorf("unexpected error: %v. Expecting %v", err, ErrTimeout) } atomic.AddUint32(&errTimeoutCount, 1) } else { @@ -2799,7 +2799,7 @@ func TestHostClientMaxConnWaitTimeoutWithEarlierDeadline(t *testing.T) { } w.mu.Lock() if w.err != nil && w.err != ErrTimeout { - t.Errorf("unexpected error: %s. Expecting %s", w.err, ErrTimeout) + t.Errorf("unexpected error: %v. Expecting %v", w.err, ErrTimeout) } w.mu.Unlock() } @@ -2808,7 +2808,7 @@ func TestHostClientMaxConnWaitTimeoutWithEarlierDeadline(t *testing.T) { t.Errorf("unexpected errTimeoutCount: %d. Expecting > 0", errTimeoutCount) } if err := ln.Close(); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } select { case <-serverStopCh: diff --git a/client_timing_test.go b/client_timing_test.go index 7beaabab83..af885aa04c 100644 --- a/client_timing_test.go +++ b/client_timing_test.go @@ -102,7 +102,7 @@ func BenchmarkClientGetTimeoutFastServer(b *testing.B) { for pb.Next() { statusCode, bodyBuf, err = c.GetTimeout(bodyBuf[:0], url, time.Second) if err != nil { - b.Fatalf("unexpected error: %s", err) + b.Fatalf("unexpected error: %v", err) } if statusCode != StatusOK { b.Fatalf("unexpected status code: %d", statusCode) @@ -131,7 +131,7 @@ func BenchmarkClientDoFastServer(b *testing.B) { req.Header.SetRequestURI(fmt.Sprintf("http://foobar%d.com/aaa/bbb", atomic.AddUint32(&nn, 1))) for pb.Next() { if err := c.Do(&req, &resp); err != nil { - b.Fatalf("unexpected error: %s", err) + b.Fatalf("unexpected error: %v", err) } if resp.Header.StatusCode() != StatusOK { b.Fatalf("unexpected status code: %d", resp.Header.StatusCode()) @@ -159,12 +159,12 @@ func BenchmarkNetHTTPClientDoFastServer(b *testing.B) { b.RunParallel(func(pb *testing.PB) { req, err := http.NewRequest(MethodGet, fmt.Sprintf("http://foobar%d.com/aaa/bbb", atomic.AddUint32(&nn, 1)), nil) if err != nil { - b.Fatalf("unexpected error: %s", err) + b.Fatalf("unexpected error: %v", err) } for pb.Next() { resp, err := c.Do(req) if err != nil { - b.Fatalf("unexpected error: %s", err) + b.Fatalf("unexpected error: %v", err) } if resp.StatusCode != http.StatusOK { b.Fatalf("unexpected status code: %d", resp.StatusCode) @@ -172,7 +172,7 @@ func BenchmarkNetHTTPClientDoFastServer(b *testing.B) { respBody, err := ioutil.ReadAll(resp.Body) resp.Body.Close() if err != nil { - b.Fatalf("unexpected error when reading response body: %s", err) + b.Fatalf("unexpected error when reading response body: %v", err) } if !bytes.Equal(respBody, body) { b.Fatalf("unexpected response body: %q. Expected %q", respBody, body) @@ -207,13 +207,13 @@ func benchmarkClientGetEndToEndTCP(b *testing.B, parallelism int) { ln, err := net.Listen("tcp4", addr) if err != nil { - b.Fatalf("cannot listen %q: %s", addr, err) + b.Fatalf("cannot listen %q: %v", addr, err) } ch := make(chan struct{}) go func() { if err := Serve(ln, fasthttpEchoHandler); err != nil { - b.Errorf("error when serving requests: %s", err) + b.Errorf("error when serving requests: %v", err) } close(ch) }() @@ -230,7 +230,7 @@ func benchmarkClientGetEndToEndTCP(b *testing.B, parallelism int) { for pb.Next() { statusCode, body, err := c.Get(buf, url) if err != nil { - b.Fatalf("unexpected error: %s", err) + b.Fatalf("unexpected error: %v", err) } if statusCode != StatusOK { b.Fatalf("unexpected status code: %d. Expecting %d", statusCode, StatusOK) @@ -267,14 +267,14 @@ func benchmarkNetHTTPClientGetEndToEndTCP(b *testing.B, parallelism int) { ln, err := net.Listen("tcp4", addr) if err != nil { - b.Fatalf("cannot listen %q: %s", addr, err) + b.Fatalf("cannot listen %q: %v", addr, err) } ch := make(chan struct{}) go func() { if err := http.Serve(ln, http.HandlerFunc(nethttpEchoHandler)); err != nil && !strings.Contains( err.Error(), "use of closed network connection") { - b.Errorf("error when serving requests: %s", err) + b.Errorf("error when serving requests: %v", err) } close(ch) }() @@ -292,7 +292,7 @@ func benchmarkNetHTTPClientGetEndToEndTCP(b *testing.B, parallelism int) { for pb.Next() { resp, err := c.Get(url) if err != nil { - b.Fatalf("unexpected error: %s", err) + b.Fatalf("unexpected error: %v", err) } if resp.StatusCode != http.StatusOK { b.Fatalf("unexpected status code: %d. Expecting %d", resp.StatusCode, http.StatusOK) @@ -300,7 +300,7 @@ func benchmarkNetHTTPClientGetEndToEndTCP(b *testing.B, parallelism int) { body, err := ioutil.ReadAll(resp.Body) resp.Body.Close() if err != nil { - b.Fatalf("unexpected error when reading response body: %s", err) + b.Fatalf("unexpected error when reading response body: %v", err) } if string(body) != requestURI { b.Fatalf("unexpected response %q. Expecting %q", body, requestURI) @@ -342,7 +342,7 @@ func benchmarkClientGetEndToEndInmemory(b *testing.B, parallelism int) { ch := make(chan struct{}) go func() { if err := Serve(ln, fasthttpEchoHandler); err != nil { - b.Errorf("error when serving requests: %s", err) + b.Errorf("error when serving requests: %v", err) } close(ch) }() @@ -360,7 +360,7 @@ func benchmarkClientGetEndToEndInmemory(b *testing.B, parallelism int) { for pb.Next() { statusCode, body, err := c.Get(buf, url) if err != nil { - b.Fatalf("unexpected error: %s", err) + b.Fatalf("unexpected error: %v", err) } if statusCode != StatusOK { b.Fatalf("unexpected status code: %d. Expecting %d", statusCode, StatusOK) @@ -403,7 +403,7 @@ func benchmarkNetHTTPClientGetEndToEndInmemory(b *testing.B, parallelism int) { go func() { if err := http.Serve(ln, http.HandlerFunc(nethttpEchoHandler)); err != nil && !strings.Contains( err.Error(), "use of closed network connection") { - b.Errorf("error when serving requests: %s", err) + b.Errorf("error when serving requests: %v", err) } close(ch) }() @@ -422,7 +422,7 @@ func benchmarkNetHTTPClientGetEndToEndInmemory(b *testing.B, parallelism int) { for pb.Next() { resp, err := c.Get(url) if err != nil { - b.Fatalf("unexpected error: %s", err) + b.Fatalf("unexpected error: %v", err) } if resp.StatusCode != http.StatusOK { b.Fatalf("unexpected status code: %d. Expecting %d", resp.StatusCode, http.StatusOK) @@ -430,7 +430,7 @@ func benchmarkNetHTTPClientGetEndToEndInmemory(b *testing.B, parallelism int) { body, err := ioutil.ReadAll(resp.Body) resp.Body.Close() if err != nil { - b.Fatalf("unexpected error when reading response body: %s", err) + b.Fatalf("unexpected error when reading response body: %v", err) } if string(body) != requestURI { b.Fatalf("unexpected response %q. Expecting %q", body, requestURI) @@ -466,7 +466,7 @@ func benchmarkClientEndToEndBigResponseInmemory(b *testing.B, parallelism int) { ch := make(chan struct{}) go func() { if err := Serve(ln, h); err != nil { - b.Errorf("error when serving requests: %s", err) + b.Errorf("error when serving requests: %v", err) } close(ch) }() @@ -485,7 +485,7 @@ func benchmarkClientEndToEndBigResponseInmemory(b *testing.B, parallelism int) { var resp Response for pb.Next() { if err := c.DoTimeout(&req, &resp, 5*time.Second); err != nil { - b.Fatalf("unexpected error: %s", err) + b.Fatalf("unexpected error: %v", err) } if resp.StatusCode() != StatusOK { b.Fatalf("unexpected status code: %d. Expecting %d", resp.StatusCode(), StatusOK) @@ -525,7 +525,7 @@ func benchmarkNetHTTPClientEndToEndBigResponseInmemory(b *testing.B, parallelism go func() { if err := http.Serve(ln, http.HandlerFunc(h)); err != nil && !strings.Contains( err.Error(), "use of closed network connection") { - b.Errorf("error when serving requests: %s", err) + b.Errorf("error when serving requests: %v", err) } close(ch) }() @@ -544,12 +544,12 @@ func benchmarkNetHTTPClientEndToEndBigResponseInmemory(b *testing.B, parallelism b.RunParallel(func(pb *testing.PB) { req, err := http.NewRequest(MethodGet, url, nil) if err != nil { - b.Fatalf("unexpected error: %s", err) + b.Fatalf("unexpected error: %v", err) } for pb.Next() { resp, err := c.Do(req) if err != nil { - b.Fatalf("unexpected error: %s", err) + b.Fatalf("unexpected error: %v", err) } if resp.StatusCode != http.StatusOK { b.Fatalf("unexpected status code: %d. Expecting %d", resp.StatusCode, http.StatusOK) @@ -557,7 +557,7 @@ func benchmarkNetHTTPClientEndToEndBigResponseInmemory(b *testing.B, parallelism body, err := ioutil.ReadAll(resp.Body) resp.Body.Close() if err != nil { - b.Fatalf("unexpected error when reading response body: %s", err) + b.Fatalf("unexpected error when reading response body: %v", err) } if !bytes.Equal(bigResponse, body) { b.Fatalf("unexpected response %q. Expecting %q", body, bigResponse) @@ -598,7 +598,7 @@ func benchmarkPipelineClient(b *testing.B, parallelism int) { ch := make(chan struct{}) go func() { if err := Serve(ln, h); err != nil { - b.Errorf("error when serving requests: %s", err) + b.Errorf("error when serving requests: %v", err) } close(ch) }() @@ -621,7 +621,7 @@ func benchmarkPipelineClient(b *testing.B, parallelism int) { var resp Response for pb.Next() { if err := c.Do(&req, &resp); err != nil { - b.Fatalf("unexpected error: %s", err) + b.Fatalf("unexpected error: %v", err) } if resp.StatusCode() != StatusOK { b.Fatalf("unexpected status code: %d. Expecting %d", resp.StatusCode(), StatusOK) diff --git a/client_timing_wait_test.go b/client_timing_wait_test.go index caaacaccb4..4b2d90ea53 100644 --- a/client_timing_wait_test.go +++ b/client_timing_wait_test.go @@ -45,7 +45,7 @@ func benchmarkClientGetEndToEndWaitConnInmemory(b *testing.B, parallelism int) { go func() { if err := Serve(ln, newFasthttpSleepEchoHandler(sleepDuration)); err != nil { - b.Errorf("error when serving requests: %s", err) + b.Errorf("error when serving requests: %v", err) } close(ch) }() @@ -65,7 +65,7 @@ func benchmarkClientGetEndToEndWaitConnInmemory(b *testing.B, parallelism int) { statusCode, body, err := c.Get(buf, url) if err != nil { if err != ErrNoFreeConns { - b.Fatalf("unexpected error: %s", err) + b.Fatalf("unexpected error: %v", err) } } else { if statusCode != StatusOK { @@ -119,7 +119,7 @@ func benchmarkNetHTTPClientGetEndToEndWaitConnInmemory(b *testing.B, parallelism go func() { if err := http.Serve(ln, newNethttpSleepEchoHandler(sleep)); err != nil && !strings.Contains( err.Error(), "use of closed network connection") { - b.Errorf("error when serving requests: %s", err) + b.Errorf("error when serving requests: %v", err) } close(ch) }() @@ -140,7 +140,7 @@ func benchmarkNetHTTPClientGetEndToEndWaitConnInmemory(b *testing.B, parallelism resp, err := c.Get(url) if err != nil { if netErr, ok := err.(net.Error); !ok || !netErr.Timeout() { - b.Fatalf("unexpected error: %s", err) + b.Fatalf("unexpected error: %v", err) } } else { if resp.StatusCode != http.StatusOK { @@ -149,7 +149,7 @@ func benchmarkNetHTTPClientGetEndToEndWaitConnInmemory(b *testing.B, parallelism body, err := ioutil.ReadAll(resp.Body) resp.Body.Close() if err != nil { - b.Fatalf("unexpected error when reading response body: %s", err) + b.Fatalf("unexpected error when reading response body: %v", err) } if string(body) != requestURI { b.Fatalf("unexpected response %q. Expecting %q", body, requestURI) diff --git a/compress.go b/compress.go index f590d28c49..803d7cc513 100644 --- a/compress.go +++ b/compress.go @@ -101,7 +101,7 @@ func acquireRealGzipWriter(w io.Writer, level int) *gzip.Writer { if v == nil { zw, err := gzip.NewWriterLevel(w, level) if err != nil { - panic(fmt.Sprintf("BUG: unexpected error from gzip.NewWriterLevel(%d): %s", level, err)) + panic(fmt.Sprintf("BUG: unexpected error from gzip.NewWriterLevel(%d): %v", level, err)) } return zw } @@ -177,7 +177,7 @@ func nonblockingWriteGzip(ctxv interface{}) { _, err := zw.Write(ctx.p) if err != nil { - panic(fmt.Sprintf("BUG: gzip.Writer.Write for len(p)=%d returned unexpected error: %s", len(ctx.p), err)) + panic(fmt.Sprintf("BUG: gzip.Writer.Write for len(p)=%d returned unexpected error: %v", len(ctx.p), err)) } releaseRealGzipWriter(zw, ctx.level) @@ -273,7 +273,7 @@ func nonblockingWriteDeflate(ctxv interface{}) { _, err := zw.Write(ctx.p) if err != nil { - panic(fmt.Sprintf("BUG: zlib.Writer.Write for len(p)=%d returned unexpected error: %s", len(ctx.p), err)) + panic(fmt.Sprintf("BUG: zlib.Writer.Write for len(p)=%d returned unexpected error: %v", len(ctx.p), err)) } releaseRealDeflateWriter(zw, ctx.level) @@ -379,7 +379,7 @@ func acquireRealDeflateWriter(w io.Writer, level int) *zlib.Writer { if v == nil { zw, err := zlib.NewWriterLevel(w, level) if err != nil { - panic(fmt.Sprintf("BUG: unexpected error from zlib.NewWriterLevel(%d): %s", level, err)) + panic(fmt.Sprintf("BUG: unexpected error from zlib.NewWriterLevel(%d): %v", level, err)) } return zw } diff --git a/cookie_test.go b/cookie_test.go index 1a12b44c7f..b4b81ac9ab 100644 --- a/cookie_test.go +++ b/cookie_test.go @@ -33,7 +33,7 @@ func testCookieValueWithEqualAndSpaceChars(t *testing.T, expectedName, expectedP var c1 Cookie if err := c1.Parse(s); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } name := c1.Key() if string(name) != expectedName { @@ -55,7 +55,7 @@ func TestCookieSecureHttpOnly(t *testing.T) { var c Cookie if err := c.Parse("foo=bar; HttpOnly; secure"); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if !c.Secure() { t.Fatalf("secure must be set") @@ -78,7 +78,7 @@ func TestCookieSecure(t *testing.T) { var c Cookie if err := c.Parse("foo=bar; secure"); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if !c.Secure() { t.Fatalf("secure must be set") @@ -89,7 +89,7 @@ func TestCookieSecure(t *testing.T) { } if err := c.Parse("foo=bar"); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if c.Secure() { t.Fatalf("Unexpected secure flag set") @@ -106,7 +106,7 @@ func TestCookieSameSite(t *testing.T) { var c Cookie if err := c.Parse("foo=bar; samesite"); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if c.SameSite() != CookieSameSiteDefaultMode { t.Fatalf("SameSite must be set") @@ -117,7 +117,7 @@ func TestCookieSameSite(t *testing.T) { } if err := c.Parse("foo=bar; samesite=lax"); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if c.SameSite() != CookieSameSiteLaxMode { t.Fatalf("SameSite Lax Mode must be set") @@ -128,7 +128,7 @@ func TestCookieSameSite(t *testing.T) { } if err := c.Parse("foo=bar; samesite=strict"); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if c.SameSite() != CookieSameSiteStrictMode { t.Fatalf("SameSite Strict Mode must be set") @@ -139,7 +139,7 @@ func TestCookieSameSite(t *testing.T) { } if err := c.Parse("foo=bar; samesite=none"); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if c.SameSite() != CookieSameSiteNoneMode { t.Fatalf("SameSite None Mode must be set") @@ -150,7 +150,7 @@ func TestCookieSameSite(t *testing.T) { } if err := c.Parse("foo=bar"); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } c.SetSameSite(CookieSameSiteNoneMode) s = c.String() @@ -162,7 +162,7 @@ func TestCookieSameSite(t *testing.T) { } if err := c.Parse("foo=bar"); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if c.SameSite() != CookieSameSiteDisabled { t.Fatalf("Unexpected SameSite flag set") @@ -180,7 +180,7 @@ func TestCookieMaxAge(t *testing.T) { maxAge := 100 if err := c.Parse("foo=bar; max-age=100"); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if maxAge != c.MaxAge() { t.Fatalf("max-age must be set") @@ -191,7 +191,7 @@ func TestCookieMaxAge(t *testing.T) { } if err := c.Parse("foo=bar; expires=Tue, 10 Nov 2009 23:00:00 GMT; max-age=100;"); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if maxAge != c.MaxAge() { t.Fatalf("max-age ignored") @@ -221,7 +221,7 @@ func TestCookieHttpOnly(t *testing.T) { var c Cookie if err := c.Parse("foo=bar; HttpOnly"); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if !c.HTTPOnly() { t.Fatalf("HTTPOnly must be set") @@ -232,7 +232,7 @@ func TestCookieHttpOnly(t *testing.T) { } if err := c.Parse("foo=bar"); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if c.HTTPOnly() { t.Fatalf("Unexpected HTTPOnly flag set") @@ -286,7 +286,7 @@ func testCookieAcquireRelease(t *testing.T) { s := c.String() c.Reset() if err := c.Parse(s); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if string(c.Key()) != key { @@ -322,7 +322,7 @@ func TestCookieParse(t *testing.T) { func testCookieParse(t *testing.T, s, expectedS string) { var c Cookie if err := c.Parse(s); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } result := string(c.Cookie()) if result != expectedS { diff --git a/cookie_timing_test.go b/cookie_timing_test.go index bcf958c852..1af26878f1 100644 --- a/cookie_timing_test.go +++ b/cookie_timing_test.go @@ -9,7 +9,7 @@ func BenchmarkCookieParseMin(b *testing.B) { s := []byte("xxx=yyy") for i := 0; i < b.N; i++ { if err := c.ParseBytes(s); err != nil { - b.Fatalf("unexpected error when parsing cookies: %s", err) + b.Fatalf("unexpected error when parsing cookies: %v", err) } } } @@ -19,7 +19,7 @@ func BenchmarkCookieParseNoExpires(b *testing.B) { s := []byte("xxx=yyy; domain=foobar.com; path=/a/b") for i := 0; i < b.N; i++ { if err := c.ParseBytes(s); err != nil { - b.Fatalf("unexpected error when parsing cookies: %s", err) + b.Fatalf("unexpected error when parsing cookies: %v", err) } } } @@ -29,7 +29,7 @@ func BenchmarkCookieParseFull(b *testing.B) { s := []byte("xxx=yyy; expires=Tue, 10 Nov 2009 23:00:00 GMT; domain=foobar.com; path=/a/b") for i := 0; i < b.N; i++ { if err := c.ParseBytes(s); err != nil { - b.Fatalf("unexpected error when parsing cookies: %s", err) + b.Fatalf("unexpected error when parsing cookies: %v", err) } } } diff --git a/examples/client/client.go b/examples/client/client.go index 0bb66f08f3..66881c904a 100644 --- a/examples/client/client.go +++ b/examples/client/client.go @@ -53,7 +53,7 @@ func sendGetRequest() { if err == nil { fmt.Printf("DEBUG Response: %s\n", resp.Body()) } else { - fmt.Fprintf(os.Stderr, "ERR Connection error: %s\n", err) + fmt.Fprintf(os.Stderr, "ERR Connection error: %v\n", err) } fasthttp.ReleaseResponse(resp) } @@ -85,7 +85,7 @@ func sendPostRequest() { if err == io.EOF || err == nil { fmt.Printf("DEBUG Parsed Response: %v\n", respEntity) } else { - fmt.Fprintf(os.Stderr, "ERR failed to parse reponse: %s\n", err) + fmt.Fprintf(os.Stderr, "ERR failed to parse reponse: %v\n", err) } } else { fmt.Fprintf(os.Stderr, "ERR invalid HTTP response code: %d\n", statusCode) @@ -93,9 +93,9 @@ func sendPostRequest() { } else { errName, known := httpConnError(err) if known { - fmt.Fprintf(os.Stderr, "WARN conn error: %s\n", errName) + fmt.Fprintf(os.Stderr, "WARN conn error: %v\n", errName) } else { - fmt.Fprintf(os.Stderr, "ERR conn failure: %s %s\n", errName, err) + fmt.Fprintf(os.Stderr, "ERR conn failure: %v %v\n", errName, err) } } fasthttp.ReleaseResponse(resp) diff --git a/examples/fileserver/fileserver.go b/examples/fileserver/fileserver.go index f6fbd4c80f..61cc457475 100644 --- a/examples/fileserver/fileserver.go +++ b/examples/fileserver/fileserver.go @@ -63,7 +63,7 @@ func main() { log.Printf("Starting HTTP server on %q", *addr) go func() { if err := fasthttp.ListenAndServe(*addr, requestHandler); err != nil { - log.Fatalf("error in ListenAndServe: %s", err) + log.Fatalf("error in ListenAndServe: %v", err) } }() } @@ -73,7 +73,7 @@ func main() { log.Printf("Starting HTTPS server on %q", *addrTLS) go func() { if err := fasthttp.ListenAndServeTLS(*addrTLS, *certFile, *keyFile, requestHandler); err != nil { - log.Fatalf("error in ListenAndServeTLS: %s", err) + log.Fatalf("error in ListenAndServeTLS: %v", err) } }() } diff --git a/examples/helloworldserver/helloworldserver.go b/examples/helloworldserver/helloworldserver.go index 22b518aa4b..a22e0b78b5 100644 --- a/examples/helloworldserver/helloworldserver.go +++ b/examples/helloworldserver/helloworldserver.go @@ -22,7 +22,7 @@ func main() { } if err := fasthttp.ListenAndServe(*addr, h); err != nil { - log.Fatalf("Error in ListenAndServe: %s", err) + log.Fatalf("Error in ListenAndServe: %v", err) } } diff --git a/examples/host_client/hostclient.go b/examples/host_client/hostclient.go index fd1d6910c1..997abd4c96 100644 --- a/examples/host_client/hostclient.go +++ b/examples/host_client/hostclient.go @@ -29,7 +29,7 @@ func main() { if err == nil { fmt.Printf("Response: %s\n", resp.Body()) } else { - fmt.Fprintf(os.Stderr, "Connection error: %s\n", err) + fmt.Fprintf(os.Stderr, "Connection error: %v\n", err) } fasthttp.ReleaseResponse(resp) } diff --git a/expvarhandler/expvar.go b/expvarhandler/expvar.go index 84b86146d6..d9e17bf052 100644 --- a/expvarhandler/expvar.go +++ b/expvarhandler/expvar.go @@ -30,7 +30,7 @@ func ExpvarHandler(ctx *fasthttp.RequestCtx) { r, err := getExpvarRegexp(ctx) if err != nil { expvarRegexpErrors.Add(1) - fmt.Fprintf(ctx, "Error when obtaining expvar regexp: %s", err) + fmt.Fprintf(ctx, "Error when obtaining expvar regexp: %v", err) ctx.SetStatusCode(fasthttp.StatusBadRequest) return } diff --git a/expvarhandler/expvar_test.go b/expvarhandler/expvar_test.go index 550a65ec2a..6f9f286df0 100644 --- a/expvarhandler/expvar_test.go +++ b/expvarhandler/expvar_test.go @@ -26,7 +26,7 @@ func TestExpvarHandlerBasic(t *testing.T) { var m map[string]interface{} if err := json.Unmarshal(body, &m); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if _, ok := m["cmdline"]; !ok { diff --git a/fasthttpadaptor/adaptor.go b/fasthttpadaptor/adaptor.go index 51b9c7a45c..dc1b47a5e1 100644 --- a/fasthttpadaptor/adaptor.go +++ b/fasthttpadaptor/adaptor.go @@ -48,7 +48,7 @@ func NewFastHTTPHandler(h http.Handler) fasthttp.RequestHandler { return func(ctx *fasthttp.RequestCtx) { var r http.Request if err := ConvertRequest(ctx, &r, true); err != nil { - ctx.Logger().Printf("cannot parse requestURI %q: %s", r.RequestURI, err) + ctx.Logger().Printf("cannot parse requestURI %q: %v", r.RequestURI, err) ctx.Error("Internal Server Error", fasthttp.StatusInternalServerError) return } diff --git a/fasthttpadaptor/adaptor_test.go b/fasthttpadaptor/adaptor_test.go index aa50fb6f29..e6d7018dcf 100644 --- a/fasthttpadaptor/adaptor_test.go +++ b/fasthttpadaptor/adaptor_test.go @@ -31,7 +31,7 @@ func TestNewFastHTTPHandler(t *testing.T) { } expectedURL, err := url.ParseRequestURI(expectedRequestURI) if err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } expectedContextKey := "contextKey" expectedContextValue := "contextValue" @@ -69,7 +69,7 @@ func TestNewFastHTTPHandler(t *testing.T) { body, err := ioutil.ReadAll(r.Body) r.Body.Close() if err != nil { - t.Fatalf("unexpected error when reading request body: %s", err) + t.Fatalf("unexpected error when reading request body: %v", err) } if string(body) != expectedBody { t.Fatalf("unexpected body %q. Expecting %q", body, expectedBody) @@ -109,7 +109,7 @@ func TestNewFastHTTPHandler(t *testing.T) { remoteAddr, err := net.ResolveTCPAddr("tcp", expectedRemoteAddr) if err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } ctx.Init(&req, remoteAddr, nil) @@ -157,7 +157,7 @@ func TestContentType(t *testing.T) { remoteAddr, err := net.ResolveTCPAddr("tcp", "1.2.3.4:80") if err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } ctx.Init(&req, remoteAddr, nil) diff --git a/fasthttpproxy/proxy_env.go b/fasthttpproxy/proxy_env.go index 8a95c700d6..13e0f7c566 100644 --- a/fasthttpproxy/proxy_env.go +++ b/fasthttpproxy/proxy_env.go @@ -115,10 +115,10 @@ func FasthttpProxyHTTPDialerTimeout(timeout time.Duration) fasthttp.DialFunc { if res.Header.StatusCode() != 200 { if connErr := conn.Close(); connErr != nil { return nil, fmt.Errorf( - "conn close err %w precede by connect to proxy: code: %d body %s", + "conn close err %w precede by connect to proxy: code: %d body %q", connErr, res.StatusCode(), string(res.Body())) } - return nil, fmt.Errorf("could not connect to proxy: code: %d body %s", res.StatusCode(), string(res.Body())) + return nil, fmt.Errorf("could not connect to proxy: code: %d body %q", res.StatusCode(), string(res.Body())) } return conn, nil } diff --git a/fasthttputil/inmemory_listener_test.go b/fasthttputil/inmemory_listener_test.go index cdd7763c91..907a8d0ff6 100644 --- a/fasthttputil/inmemory_listener_test.go +++ b/fasthttputil/inmemory_listener_test.go @@ -23,13 +23,13 @@ func TestInmemoryListener(t *testing.T) { go func(n int) { conn, err := ln.Dial() if err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } defer conn.Close() req := fmt.Sprintf("request_%d", n) nn, err := conn.Write([]byte(req)) if err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } if nn != len(req) { t.Errorf("unexpected number of bytes written: %d. Expecting %d", nn, len(req)) @@ -37,7 +37,7 @@ func TestInmemoryListener(t *testing.T) { buf := make([]byte, 30) nn, err = conn.Read(buf) if err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } buf = buf[:nn] resp := fmt.Sprintf("response_%d", n) @@ -63,7 +63,7 @@ func TestInmemoryListener(t *testing.T) { buf := make([]byte, 30) n, err := conn.Read(buf) if err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } buf = buf[:n] if !bytes.HasPrefix(buf, []byte("request_")) { @@ -72,7 +72,7 @@ func TestInmemoryListener(t *testing.T) { resp := fmt.Sprintf("response_%s", buf[len("request_"):]) n, err = conn.Write([]byte(resp)) if err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } if n != len(resp) { t.Errorf("unexpected number of bytes written: %d. Expecting %d", n, len(resp)) @@ -89,7 +89,7 @@ func TestInmemoryListener(t *testing.T) { } if err := ln.Close(); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } select { @@ -108,7 +108,7 @@ func (s *echoServerHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { w.WriteHeader(200) time.Sleep(time.Millisecond * 100) if _, err := io.Copy(w, r.Body); err != nil { - s.t.Fatalf("unexpected error: %s", err) + s.t.Fatalf("unexpected error: %v", err) } } @@ -131,7 +131,7 @@ func testInmemoryListenerHTTP(t *testing.T, f func(t *testing.T, client *http.Cl go func() { if err := server.Serve(ln); err != nil && err != http.ErrServerClosed { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } }() @@ -145,15 +145,15 @@ func testInmemoryListenerHTTP(t *testing.T, f func(t *testing.T, client *http.Cl func testInmemoryListenerHTTPSingle(t *testing.T, client *http.Client, content string) { res, err := client.Post("http://...", "text/plain", bytes.NewBufferString(content)) if err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } b, err := ioutil.ReadAll(res.Body) if err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } s := string(b) if string(b) != content { - t.Fatalf("unexpected response %s, expecting %s", s, content) + t.Fatalf("unexpected response %q, expecting %q", s, content) } } diff --git a/fasthttputil/inmemory_listener_timing_test.go b/fasthttputil/inmemory_listener_timing_test.go index af0ef62237..10f7bda944 100644 --- a/fasthttputil/inmemory_listener_timing_test.go +++ b/fasthttputil/inmemory_listener_timing_test.go @@ -116,7 +116,7 @@ func benchmarkExt(b *testing.B, h fasthttp.RequestHandler, bc *benchConfig) { } cert, err := tls.LoadX509KeyPair(certFile, keyFile) if err != nil { - b.Fatalf("cannot load TLS certificate from certFile=%q, keyFile=%q: %s", certFile, keyFile, err) + b.Fatalf("cannot load TLS certificate from certFile=%q, keyFile=%q: %v", certFile, keyFile, err) } serverTLSConfig = &tls.Config{ Certificates: []tls.Certificate{cert}, @@ -143,7 +143,7 @@ func benchmarkExt(b *testing.B, h fasthttp.RequestHandler, bc *benchConfig) { serverLn = tls.NewListener(serverLn, serverTLSConfig) } if err := fasthttp.Serve(serverLn, h); err != nil { - b.Errorf("unexpected error in server: %s", err) + b.Errorf("unexpected error in server: %v", err) } close(serverStopCh) }() @@ -179,7 +179,7 @@ func runRequests(b *testing.B, pb *testing.PB, c *fasthttp.HostClient) { var resp fasthttp.Response for pb.Next() { if err := c.Do(&req, &resp); err != nil { - b.Fatalf("unexpected error: %s", err) + b.Fatalf("unexpected error: %v", err) } if resp.StatusCode() != fasthttp.StatusOK { b.Fatalf("unexpected status code: %d. Expecting %d", resp.StatusCode(), fasthttp.StatusOK) diff --git a/fasthttputil/pipeconns_test.go b/fasthttputil/pipeconns_test.go index 709c99462f..e81b0ad436 100644 --- a/fasthttputil/pipeconns_test.go +++ b/fasthttputil/pipeconns_test.go @@ -18,7 +18,7 @@ func TestPipeConnsWriteTimeout(t *testing.T) { deadline := time.Now().Add(time.Millisecond) if err := c1.SetWriteDeadline(deadline); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } data := []byte("foobar") @@ -28,7 +28,7 @@ func TestPipeConnsWriteTimeout(t *testing.T) { if err == ErrTimeout { break } - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } } @@ -38,14 +38,14 @@ func TestPipeConnsWriteTimeout(t *testing.T) { t.Fatalf("expecting error") } if err != ErrTimeout { - t.Fatalf("unexpected error: %s. Expecting %s", err, ErrTimeout) + t.Fatalf("unexpected error: %v. Expecting %v", err, ErrTimeout) } } // read the written data c2 := pc.Conn2() if err := c2.SetReadDeadline(time.Now().Add(10 * time.Millisecond)); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } for { _, err := c2.Read(data) @@ -53,7 +53,7 @@ func TestPipeConnsWriteTimeout(t *testing.T) { if err == ErrTimeout { break } - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } } @@ -63,7 +63,7 @@ func TestPipeConnsWriteTimeout(t *testing.T) { t.Fatalf("expecting error") } if err != ErrTimeout { - t.Fatalf("unexpected error: %s. Expecting %s", err, ErrTimeout) + t.Fatalf("unexpected error: %v. Expecting %v", err, ErrTimeout) } } } @@ -88,7 +88,7 @@ func testPipeConnsReadTimeout(t *testing.T, timeout time.Duration) { deadline := time.Now().Add(timeout) if err := c1.SetReadDeadline(deadline); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } var buf [1]byte @@ -98,23 +98,23 @@ func testPipeConnsReadTimeout(t *testing.T, timeout time.Duration) { t.Fatalf("expecting error on iteration %d", i) } if err != ErrTimeout { - t.Fatalf("unexpected error on iteration %d: %s. Expecting %s", i, err, ErrTimeout) + t.Fatalf("unexpected error on iteration %d: %v. Expecting %v", i, err, ErrTimeout) } } // disable deadline and send data from c2 to c1 if err := c1.SetReadDeadline(zeroTime); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } data := []byte("foobar") c2 := pc.Conn2() if _, err := c2.Write(data); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } dataBuf := make([]byte, len(data)) if _, err := io.ReadFull(c1, dataBuf); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if !bytes.Equal(data, dataBuf) { t.Fatalf("unexpected data received: %q. Expecting %q", dataBuf, data) @@ -190,16 +190,16 @@ func testPipeConnsCloseWhileReadWrite(t *testing.T) { time.Sleep(10 * time.Millisecond) if err := c1.Close(); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if err := c2.Close(); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } select { case err := <-readCh: if err != nil { - t.Fatalf("unexpected error in reader: %s", err) + t.Fatalf("unexpected error in reader: %v", err) } case <-time.After(time.Second): t.Fatalf("timeout") @@ -207,7 +207,7 @@ func testPipeConnsCloseWhileReadWrite(t *testing.T) { select { case err := <-writeCh: if err != nil { - t.Fatalf("unexpected error in writer: %s", err) + t.Fatalf("unexpected error in writer: %v", err) } case <-time.After(time.Second): t.Fatalf("timeout") @@ -244,7 +244,7 @@ func testPipeConnsReadWrite(t *testing.T, c1, c2 net.Conn) { s1 := fmt.Sprintf("foo_%d", i) n, err := c1.Write([]byte(s1)) if err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if n != len(s1) { t.Fatalf("unexpected number of bytes written: %d. Expecting %d", n, len(s1)) @@ -254,7 +254,7 @@ func testPipeConnsReadWrite(t *testing.T, c1, c2 net.Conn) { s2 := fmt.Sprintf("bar_%d", i) n, err = c1.Write([]byte(s2)) if err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if n != len(s2) { t.Fatalf("unexpected number of bytes written: %d. Expecting %d", n, len(s2)) @@ -264,7 +264,7 @@ func testPipeConnsReadWrite(t *testing.T, c1, c2 net.Conn) { s := s1 + s2 n, err = c2.Read(buf[:]) if err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if n != len(s) { t.Fatalf("unexpected number of bytes read: %d. Expecting %d", n, len(s)) @@ -297,7 +297,7 @@ func testPipeConnsCloseSerial(t *testing.T) { func testPipeConnsClose(t *testing.T, c1, c2 net.Conn) { if err := c1.Close(); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } var buf [10]byte @@ -319,7 +319,7 @@ func testPipeConnsClose(t *testing.T, c1, c2 net.Conn) { t.Fatalf("expecting error") } if err != io.EOF { - t.Fatalf("unexpected error: %s. Expecting %s", err, io.EOF) + t.Fatalf("unexpected error: %v. Expecting %v", err, io.EOF) } if n != 0 { t.Fatalf("unexpected number of bytes read: %d. Expecting 0", n) @@ -327,16 +327,16 @@ func testPipeConnsClose(t *testing.T, c1, c2 net.Conn) { } if err := c2.Close(); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } // attempt closing already closed conns for i := 0; i < 10; i++ { if err := c1.Close(); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if err := c2.Close(); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } } } diff --git a/fs.go b/fs.go index 72c832aad6..549cf3d8d3 100644 --- a/fs.go +++ b/fs.go @@ -104,7 +104,7 @@ func ServeFile(ctx *RequestCtx, path string) { hasTrailingSlash := len(path) > 0 && path[len(path)-1] == '/' var err error if path, err = filepath.Abs(path); err != nil { - ctx.Logger().Printf("cannot resolve path %q to absolute file path: %s", path, err) + ctx.Logger().Printf("cannot resolve path %q to absolute file path: %v", path, err) ctx.Error("Internal Server Error", StatusInternalServerError) return } @@ -825,12 +825,12 @@ func (h *fsHandler) handleRequest(ctx *RequestCtx) { } ff, err = h.openIndexFile(ctx, filePath, mustCompress, fileEncoding) if err != nil { - ctx.Logger().Printf("cannot open dir index %q: %s", filePath, err) + ctx.Logger().Printf("cannot open dir index %q: %v", filePath, err) ctx.Error("Directory index is forbidden", StatusForbidden) return } } else if err != nil { - ctx.Logger().Printf("cannot open file %q: %s", filePath, err) + ctx.Logger().Printf("cannot open file %q: %v", filePath, err) if h.pathNotFound == nil { ctx.Error("Cannot open requested path", StatusNotFound) } else { @@ -867,7 +867,7 @@ func (h *fsHandler) handleRequest(ctx *RequestCtx) { r, err := ff.NewReader() if err != nil { - ctx.Logger().Printf("cannot obtain file reader for path=%q: %s", path, err) + ctx.Logger().Printf("cannot obtain file reader for path=%q: %v", path, err) ctx.Error("Internal Server Error", StatusInternalServerError) return } @@ -889,14 +889,14 @@ func (h *fsHandler) handleRequest(ctx *RequestCtx) { startPos, endPos, err := ParseByteRange(byteRange, contentLength) if err != nil { r.(io.Closer).Close() - ctx.Logger().Printf("cannot parse byte range %q for path=%q: %s", byteRange, path, err) + ctx.Logger().Printf("cannot parse byte range %q for path=%q: %v", byteRange, path, err) ctx.Error("Range Not Satisfiable", StatusRequestedRangeNotSatisfiable) return } if err = r.(byteRangeUpdater).UpdateByteRange(startPos, endPos); err != nil { r.(io.Closer).Close() - ctx.Logger().Printf("cannot seek byte range %q for path=%q: %s", byteRange, path, err) + ctx.Logger().Printf("cannot seek byte range %q for path=%q: %v", byteRange, path, err) ctx.Error("Internal Server Error", StatusInternalServerError) return } @@ -916,7 +916,7 @@ func (h *fsHandler) handleRequest(ctx *RequestCtx) { ctx.Response.Header.SetContentLength(contentLength) if rc, ok := r.(io.Closer); ok { if err := rc.Close(); err != nil { - ctx.Logger().Printf("cannot close file reader: %s", err) + ctx.Logger().Printf("cannot close file reader: %v", err) ctx.Error("Internal Server Error", StatusInternalServerError) return } @@ -1134,7 +1134,7 @@ func (h *fsHandler) compressAndOpenFSFile(filePath string, fileEncoding string) absPath, err := filepath.Abs(compressedFilePath) if err != nil { f.Close() - return nil, fmt.Errorf("cannot determine absolute path for %q: %s", compressedFilePath, err) + return nil, fmt.Errorf("cannot determine absolute path for %q: %v", compressedFilePath, err) } flock := getFileLock(absPath) @@ -1187,7 +1187,7 @@ func (h *fsHandler) compressFileNolock(f *os.File, fileInfo os.FileInfo, filePat return nil, fmt.Errorf("error when compressing file %q to %q: %w", filePath, tmpFilePath, err) } if err = os.Chtimes(tmpFilePath, time.Now(), fileInfo.ModTime()); err != nil { - return nil, fmt.Errorf("cannot change modification time to %s for tmp file %q: %s", + return nil, fmt.Errorf("cannot change modification time to %v for tmp file %q: %v", fileInfo.ModTime(), tmpFilePath, err) } if err = os.Rename(tmpFilePath, compressedFilePath); err != nil { diff --git a/fs_example_test.go b/fs_example_test.go index 9073cb14e0..724e986ffd 100644 --- a/fs_example_test.go +++ b/fs_example_test.go @@ -23,6 +23,6 @@ func ExampleFS() { // Start the server. if err := fasthttp.ListenAndServe(":8080", h); err != nil { - log.Fatalf("error in ListenAndServe: %s", err) + log.Fatalf("error in ListenAndServe: %v", err) } } diff --git a/fs_handler_example_test.go b/fs_handler_example_test.go index dba467008e..383132721f 100644 --- a/fs_handler_example_test.go +++ b/fs_handler_example_test.go @@ -42,6 +42,6 @@ func requestHandler(ctx *fasthttp.RequestCtx) { func ExampleFSHandler() { if err := fasthttp.ListenAndServe(":80", requestHandler); err != nil { - log.Fatalf("Error in server: %s", err) + log.Fatalf("Error in server: %v", err) } } diff --git a/fs_test.go b/fs_test.go index 51a7e2ab3c..de9f8c14d8 100644 --- a/fs_test.go +++ b/fs_test.go @@ -130,7 +130,7 @@ func TestServeFileHead(t *testing.T) { s := ctx.Response.String() br := bufio.NewReader(bytes.NewBufferString(s)) if err := resp.Read(br); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } ce := resp.Header.Peek(HeaderContentEncoding) @@ -145,7 +145,7 @@ func TestServeFileHead(t *testing.T) { expectedBody, err := getFileContents("/fs.go") if err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } contentLength := resp.Header.ContentLength() if contentLength != len(expectedBody) { @@ -194,7 +194,7 @@ func TestServeFileSmallNoReadFrom(t *testing.T) { body := buf.String() if body != teststr { - t.Fatalf("expected '%s'", teststr) + t.Fatalf("expected '%q'", teststr) } } @@ -222,7 +222,7 @@ func TestServeFileCompressed(t *testing.T) { s := ctx.Response.String() br := bufio.NewReader(bytes.NewBufferString(s)) if err := resp.Read(br); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } ce := resp.Header.Peek(HeaderContentEncoding) @@ -232,11 +232,11 @@ func TestServeFileCompressed(t *testing.T) { body, err := resp.BodyGunzip() if err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } expectedBody, err := getFileContents("/fs.go") if err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if !bytes.Equal(body, expectedBody) { t.Fatalf("unexpected body %q. expecting %q", body, expectedBody) @@ -251,7 +251,7 @@ func TestServeFileCompressed(t *testing.T) { s = ctx.Response.String() br = bufio.NewReader(bytes.NewBufferString(s)) if err = resp.Read(br); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } ce = resp.Header.Peek(HeaderContentEncoding) @@ -261,11 +261,11 @@ func TestServeFileCompressed(t *testing.T) { body, err = resp.BodyUnbrotli() if err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } expectedBody, err = getFileContents("/fs.go") if err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if !bytes.Equal(body, expectedBody) { t.Fatalf("unexpected body %q. expecting %q", body, expectedBody) @@ -287,7 +287,7 @@ func TestServeFileUncompressed(t *testing.T) { s := ctx.Response.String() br := bufio.NewReader(bytes.NewBufferString(s)) if err := resp.Read(br); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } ce := resp.Header.Peek(HeaderContentEncoding) @@ -298,7 +298,7 @@ func TestServeFileUncompressed(t *testing.T) { body := resp.Body() expectedBody, err := getFileContents("/fs.go") if err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if !bytes.Equal(body, expectedBody) { t.Fatalf("unexpected body %q. expecting %q", body, expectedBody) @@ -362,7 +362,7 @@ func testFSByteRange(t *testing.T, h RequestHandler, filePath string) { expectedBody, err := getFileContents(filePath) if err != nil { - t.Fatalf("cannot read file %q: %s", filePath, err) + t.Fatalf("cannot read file %q: %v", filePath, err) } fileSize := len(expectedBody) @@ -380,7 +380,7 @@ func testFSByteRange(t *testing.T, h RequestHandler, filePath string) { s := ctx.Response.String() br := bufio.NewReader(bytes.NewBufferString(s)) if err := resp.Read(br); err != nil { - t.Fatalf("unexpected error: %s. filePath=%q", err, filePath) + t.Fatalf("unexpected error: %v. filePath=%q", err, filePath) } if resp.StatusCode() != StatusPartialContent { t.Fatalf("unexpected status code: %d. Expecting %d. filePath=%q", resp.StatusCode(), StatusPartialContent, filePath) @@ -438,7 +438,7 @@ func TestParseByteRangeSuccess(t *testing.T) { func testParseByteRangeSuccess(t *testing.T, v string, contentLength, startPos, endPos int) { startPos1, endPos1, err := ParseByteRange([]byte(v), contentLength) if err != nil { - t.Fatalf("unexpected error: %s. v=%q, contentLength=%d", err, v, contentLength) + t.Fatalf("unexpected error: %v. v=%q, contentLength=%d", err, v, contentLength) } if startPos1 != startPos { t.Fatalf("unexpected startPos=%d. Expecting %d. v=%q, contentLength=%d", startPos1, startPos, v, contentLength) @@ -562,7 +562,7 @@ func testFSCompress(t *testing.T, h RequestHandler, filePath string) { s := ctx.Response.String() br := bufio.NewReader(bytes.NewBufferString(s)) if err := resp.Read(br); err != nil { - t.Errorf("unexpected error: %s. filePath=%q", err, filePath) + t.Errorf("unexpected error: %v. filePath=%q", err, filePath) } if resp.StatusCode() != StatusOK { t.Errorf("unexpected status code: %d. Expecting %d. filePath=%q", resp.StatusCode(), StatusOK, filePath) @@ -581,7 +581,7 @@ func testFSCompress(t *testing.T, h RequestHandler, filePath string) { s = ctx.Response.String() br = bufio.NewReader(bytes.NewBufferString(s)) if err := resp.Read(br); err != nil { - t.Errorf("unexpected error: %s. filePath=%q", err, filePath) + t.Errorf("unexpected error: %v. filePath=%q", err, filePath) } if resp.StatusCode() != StatusOK { t.Errorf("unexpected status code: %d. Expecting %d. filePath=%q", resp.StatusCode(), StatusOK, filePath) @@ -592,7 +592,7 @@ func testFSCompress(t *testing.T, h RequestHandler, filePath string) { } zbody, err := resp.BodyGunzip() if err != nil { - t.Errorf("unexpected error when gunzipping response body: %s. filePath=%q", err, filePath) + t.Errorf("unexpected error when gunzipping response body: %v. filePath=%q", err, filePath) } if string(zbody) != body { t.Errorf("unexpected body len=%d. Expected len=%d. FilePath=%q", len(zbody), len(body), filePath) @@ -606,7 +606,7 @@ func testFSCompress(t *testing.T, h RequestHandler, filePath string) { s = ctx.Response.String() br = bufio.NewReader(bytes.NewBufferString(s)) if err = resp.Read(br); err != nil { - t.Errorf("unexpected error: %s. filePath=%q", err, filePath) + t.Errorf("unexpected error: %v. filePath=%q", err, filePath) } if resp.StatusCode() != StatusOK { t.Errorf("unexpected status code: %d. Expecting %d. filePath=%q", resp.StatusCode(), StatusOK, filePath) @@ -617,7 +617,7 @@ func testFSCompress(t *testing.T, h RequestHandler, filePath string) { } zbody, err = resp.BodyUnbrotli() if err != nil { - t.Errorf("unexpected error when unbrotling response body: %s. filePath=%q", err, filePath) + t.Errorf("unexpected error when unbrotling response body: %v. filePath=%q", err, filePath) } if string(zbody) != body { t.Errorf("unexpected body len=%d. Expected len=%d. FilePath=%q", len(zbody), len(body), filePath) @@ -631,13 +631,13 @@ func TestFSHandlerSingleThread(t *testing.T) { f, err := os.Open(".") if err != nil { - t.Fatalf("cannot open cwd: %s", err) + t.Fatalf("cannot open cwd: %v", err) } filenames, err := f.Readdirnames(0) f.Close() if err != nil { - t.Fatalf("cannot read dirnames in cwd: %s", err) + t.Fatalf("cannot read dirnames in cwd: %v", err) } sort.Strings(filenames) @@ -653,13 +653,13 @@ func TestFSHandlerConcurrent(t *testing.T) { f, err := os.Open(".") if err != nil { - t.Fatalf("cannot open cwd: %s", err) + t.Fatalf("cannot open cwd: %v", err) } filenames, err := f.Readdirnames(0) f.Close() if err != nil { - t.Fatalf("cannot read dirnames in cwd: %s", err) + t.Fatalf("cannot read dirnames in cwd: %v", err) } sort.Strings(filenames) @@ -693,11 +693,11 @@ func fsHandlerTest(t *testing.T, requestHandler RequestHandler, filenames []stri for _, name := range filenames { f, err := os.Open(name) if err != nil { - t.Fatalf("cannot open file %q: %s", name, err) + t.Fatalf("cannot open file %q: %v", name, err) } stat, err := f.Stat() if err != nil { - t.Fatalf("cannot get file stat %q: %s", name, err) + t.Fatalf("cannot get file stat %q: %v", name, err) } if stat.IsDir() { f.Close() @@ -706,7 +706,7 @@ func fsHandlerTest(t *testing.T, requestHandler RequestHandler, filenames []stri data, err := ioutil.ReadAll(f) f.Close() if err != nil { - t.Fatalf("cannot read file contents %q: %s", name, err) + t.Fatalf("cannot read file contents %q: %v", name, err) } ctx.URI().Update(name) @@ -716,7 +716,7 @@ func fsHandlerTest(t *testing.T, requestHandler RequestHandler, filenames []stri } body, err := ioutil.ReadAll(ctx.Response.bodyStream) if err != nil { - t.Fatalf("error when reading response body stream: %s", err) + t.Fatalf("error when reading response body stream: %v", err) } if !bytes.Equal(body, data) { t.Fatalf("unexpected body returned: %q. Expecting %q", body, data) @@ -735,7 +735,7 @@ func fsHandlerTest(t *testing.T, requestHandler RequestHandler, filenames []stri } body, err := ioutil.ReadAll(ctx.Response.bodyStream) if err != nil { - t.Fatalf("error when reading response body stream: %s", err) + t.Fatalf("error when reading response body stream: %v", err) } if len(body) == 0 { t.Fatalf("index page must be non-empty") @@ -809,7 +809,7 @@ func TestServeFileContentType(t *testing.T) { s := ctx.Response.String() br := bufio.NewReader(bytes.NewBufferString(s)) if err := resp.Read(br); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } expected := []byte("image/png") diff --git a/header.go b/header.go index 7b9df0836f..08f5912b8a 100644 --- a/header.go +++ b/header.go @@ -3181,6 +3181,6 @@ func mustPeekBuffered(r *bufio.Reader) []byte { func mustDiscard(r *bufio.Reader, n int) { if _, err := r.Discard(n); err != nil { - panic(fmt.Sprintf("bufio.Reader.Discard(%d) failed: %s", n, err)) + panic(fmt.Sprintf("bufio.Reader.Discard(%d) failed: %v", n, err)) } } diff --git a/header_regression_test.go b/header_regression_test.go index 2a9187df18..42f03447ab 100644 --- a/header_regression_test.go +++ b/header_regression_test.go @@ -69,7 +69,7 @@ func testIssue6RequestHeaderSetContentType(t *testing.T, method string) { br := bufio.NewReader(bytes.NewBufferString(s)) if err := h1.Read(br); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } issue6VerifyRequestHeader(t, &h1, contentType, contentLength, method) } diff --git a/header_test.go b/header_test.go index e313f496a6..c958dbd9a5 100644 --- a/header_test.go +++ b/header_test.go @@ -45,36 +45,36 @@ func TestResponseHeaderMultiLineValue(t *testing.T) { "\r\n" header := new(ResponseHeader) if _, err := header.parse([]byte(s)); err != nil { - t.Fatalf("parse headers with multi-line values failed, %s", err) + t.Fatalf("parse headers with multi-line values failed, %v", err) } response, err := http.ReadResponse(bufio.NewReader(strings.NewReader(s)), nil) if err != nil { - t.Fatalf("parse response using net/http failed, %s", err) + t.Fatalf("parse response using net/http failed, %v", err) } if !bytes.Equal(header.StatusMessage(), []byte("SuperOK")) { - t.Errorf("parse status line with non-default value failed, got: '%s' want: 'SuperOK'", header.StatusMessage()) + t.Errorf("parse status line with non-default value failed, got: '%q' want: 'SuperOK'", header.StatusMessage()) } header.SetProtocol([]byte("HTTP/3.3")) if !bytes.Equal(header.Protocol(), []byte("HTTP/3.3")) { - t.Errorf("parse protocol with non-default value failed, got: '%s' want: 'HTTP/3.3'", header.Protocol()) + t.Errorf("parse protocol with non-default value failed, got: '%q' want: 'HTTP/3.3'", header.Protocol()) } if !bytes.Equal(header.appendStatusLine(nil), []byte("HTTP/3.3 200 SuperOK\r\n")) { - t.Errorf("parse status line with non-default value failed, got: '%s' want: 'HTTP/3.3 200 SuperOK'", header.Protocol()) + t.Errorf("parse status line with non-default value failed, got: '%q' want: 'HTTP/3.3 200 SuperOK'", header.Protocol()) } header.SetStatusMessage(nil) if !bytes.Equal(header.appendStatusLine(nil), []byte("HTTP/3.3 200 OK\r\n")) { - t.Errorf("parse status line with default protocol value failed, got: '%s' want: 'HTTP/3.3 200 OK'", header.appendStatusLine(nil)) + t.Errorf("parse status line with default protocol value failed, got: '%q' want: 'HTTP/3.3 200 OK'", header.appendStatusLine(nil)) } header.SetStatusMessage(s2b(StatusMessage(200))) if !bytes.Equal(header.appendStatusLine(nil), []byte("HTTP/3.3 200 OK\r\n")) { - t.Errorf("parse status line with default protocol value failed, got: '%s' want: 'HTTP/3.3 200 OK'", header.appendStatusLine(nil)) + t.Errorf("parse status line with default protocol value failed, got: '%q' want: 'HTTP/3.3 200 OK'", header.appendStatusLine(nil)) } for name, vals := range response.Header { @@ -82,7 +82,7 @@ func TestResponseHeaderMultiLineValue(t *testing.T) { want := vals[0] if got != want { - t.Errorf("unexpected %s got: %q want: %q", name, got, want) + t.Errorf("unexpected %q got: %q want: %q", name, got, want) } } } @@ -105,15 +105,15 @@ func TestResponseHeaderMultiLineName(t *testing.T) { } if !bytes.Equal(header.StatusMessage(), []byte("OK")) { - t.Errorf("expected default status line, got: %s", header.StatusMessage()) + t.Errorf("expected default status line, got: %q", header.StatusMessage()) } if !bytes.Equal(header.Protocol(), []byte("HTTP/1.1")) { - t.Errorf("expected default protocol, got: %s", header.Protocol()) + t.Errorf("expected default protocol, got: %q", header.Protocol()) } if !bytes.Equal(header.appendStatusLine(nil), []byte("HTTP/1.1 200 OK\r\n")) { - t.Errorf("parse status line with non-default value failed, got: %s want: HTTP/1.1 200 OK", header.Protocol()) + t.Errorf("parse status line with non-default value failed, got: %q want: HTTP/1.1 200 OK", header.Protocol()) } } @@ -138,7 +138,7 @@ func TestResponseHeaderEmptyValueFromHeader(t *testing.T) { var h ResponseHeader br := bufio.NewReader(bytes.NewBufferString(s)) if err := h.Read(br); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if string(h.ContentType()) != string(h1.ContentType()) { t.Fatalf("unexpected content-type: %q. Expecting %q", h.ContentType(), h1.ContentType()) @@ -165,7 +165,7 @@ func TestResponseHeaderEmptyValueFromString(t *testing.T) { var h ResponseHeader br := bufio.NewReader(bytes.NewBufferString(s)) if err := h.Read(br); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if string(h.ContentType()) != "foo/bar" { t.Fatalf("unexpected content-type: %q. Expecting %q", h.ContentType(), "foo/bar") @@ -193,7 +193,7 @@ func TestRequestHeaderEmptyValueFromHeader(t *testing.T) { var h RequestHeader br := bufio.NewReader(bytes.NewBufferString(s)) if err := h.Read(br); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if string(h.Host()) != string(h1.Host()) { t.Fatalf("unexpected host: %q. Expecting %q", h.Host(), h1.Host()) @@ -219,7 +219,7 @@ func TestRequestHeaderEmptyValueFromString(t *testing.T) { var h RequestHeader br := bufio.NewReader(bytes.NewBufferString(s)) if err := h.Read(br); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if string(h.Host()) != "foobar" { t.Fatalf("unexpected host: %q. Expecting %q", h.Host(), "foobar") @@ -246,7 +246,7 @@ func TestRequestRawHeaders(t *testing.T) { var h RequestHeader br := bufio.NewReader(bytes.NewBufferString(s)) if err := h.Read(br); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if string(h.Host()) != "foobar" { t.Fatalf("unexpected host: %q. Expecting %q", h.Host(), "foobar") @@ -272,7 +272,7 @@ func TestRequestRawHeaders(t *testing.T) { var h RequestHeader br := bufio.NewReader(bytes.NewBufferString(s)) if err := h.Read(br); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if string(h.Host()) != "foobar" { t.Fatalf("unexpected host: %q. Expecting %q", h.Host(), "foobar") @@ -292,7 +292,7 @@ func TestRequestRawHeaders(t *testing.T) { var h RequestHeader br := bufio.NewReader(bytes.NewBufferString(s)) if err := h.Read(br); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if string(h.Host()) != "foobar" { t.Fatalf("unexpected host: %q. Expecting %q", h.Host(), "foobar") @@ -312,7 +312,7 @@ func TestRequestRawHeaders(t *testing.T) { h.DisableNormalizing() br := bufio.NewReader(bytes.NewBufferString(s)) if err := h.Read(br); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if string(h.Host()) != "" { t.Fatalf("unexpected host: %q. Expecting %q", h.Host(), "") @@ -335,13 +335,13 @@ func TestRequestHeaderSetCookieWithSpecialChars(t *testing.T) { s := h.String() if !strings.Contains(s, "Cookie: ID&14") { - t.Fatalf("Missing cookie in request header: [%s]", s) + t.Fatalf("Missing cookie in request header: %q", s) } var h1 RequestHeader br := bufio.NewReader(bytes.NewBufferString(s)) if err := h1.Read(br); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } cookie := h1.Peek(HeaderCookie) if string(cookie) != "ID&14" { @@ -380,7 +380,7 @@ func TestResponseHeaderDelClientCookie(t *testing.T) { t.Fatalf("expecting cookie %q", c.Key()) } if !c.Expire().Equal(CookieExpireDelete) { - t.Fatalf("unexpected cookie expiration time: %s. Expecting %s", c.Expire(), CookieExpireDelete) + t.Fatalf("unexpected cookie expiration time: %q. Expecting %q", c.Expire(), CookieExpireDelete) } if len(c.Value()) > 0 { t.Fatalf("unexpected cookie value: %q. Expecting empty value", c.Value()) @@ -425,7 +425,7 @@ func TestResponseHeaderAdd(t *testing.T) { br := bufio.NewReader(bytes.NewBufferString(s)) var h1 ResponseHeader if err := h1.Read(br); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } h.VisitAll(func(k, v []byte) { @@ -478,7 +478,7 @@ func TestRequestHeaderAdd(t *testing.T) { br := bufio.NewReader(bytes.NewBufferString(s)) var h1 RequestHeader if err := h1.Read(br); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } h.VisitAll(func(k, v []byte) { @@ -666,14 +666,14 @@ func TestResponseHeaderSetTrailerGetBytes(t *testing.T) { headerBytes := h.Header() n, err := h.parseFirstLine(headerBytes) if err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if string(headerBytes[n:]) != "Foo: bar\r\nTrailer: Baz\r\n\r\n" { - t.Fatalf("Unexpected header: %q. Expected %s", headerBytes[n:], "Foo: bar\nTrailer: Baz\n\n") + t.Fatalf("Unexpected header: %q. Expected %q", headerBytes[n:], "Foo: bar\nTrailer: Baz\n\n") } if string(h.TrailerHeader()) != "Baz: test\r\n\r\n" { - t.Fatalf("Unexpected trailer header: %q. Expected %s", h.TrailerHeader(), "Baz: test\r\n\r\n") + t.Fatalf("Unexpected trailer header: %q. Expected %q", h.TrailerHeader(), "Baz: test\r\n\r\n") } } @@ -688,14 +688,14 @@ func TestRequestHeaderSetTrailerGetBytes(t *testing.T) { headerBytes := h.Header() n, err := h.parseFirstLine(headerBytes) if err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if string(headerBytes[n:]) != "Foo: bar\r\nTrailer: Baz\r\n\r\n" { - t.Fatalf("Unexpected header: %q. Expected %s", headerBytes[n:], "Foo: bar\nTrailer: Baz\n\n") + t.Fatalf("Unexpected header: %q. Expected %q", headerBytes[n:], "Foo: bar\nTrailer: Baz\n\n") } if string(h.TrailerHeader()) != "Baz: test\r\n\r\n" { - t.Fatalf("Unexpected trailer header: %q. Expected %s", h.TrailerHeader(), "Baz: test\r\n\r\n") + t.Fatalf("Unexpected trailer header: %q. Expected %q", h.TrailerHeader(), "Baz: test\r\n\r\n") } } @@ -723,7 +723,7 @@ func TestRequestHeaderHTTP10ConnectionClose(t *testing.T) { var h RequestHeader br := bufio.NewReader(bytes.NewBufferString(s)) if err := h.Read(br); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if !h.ConnectionClose() { @@ -738,7 +738,7 @@ func TestRequestHeaderHTTP10ConnectionKeepAlive(t *testing.T) { var h RequestHeader br := bufio.NewReader(bytes.NewBufferString(s)) if err := h.Read(br); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if h.ConnectionClose() { @@ -774,7 +774,7 @@ func TestBufferSnippet(t *testing.T) { func testBufferSnippet(t *testing.T, buf, expectedSnippet string) { snippet := bufferSnippet([]byte(buf)) if snippet != expectedSnippet { - t.Fatalf("unexpected snippet %s. Expecting %s", snippet, expectedSnippet) + t.Fatalf("unexpected snippet %q. Expecting %q", snippet, expectedSnippet) } } @@ -787,7 +787,7 @@ func TestResponseHeaderTrailingCRLFSuccess(t *testing.T) { var r ResponseHeader br := bufio.NewReader(bytes.NewBufferString(s)) if err := r.Read(br); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } // try reading the trailing CRLF. It must return EOF @@ -796,7 +796,7 @@ func TestResponseHeaderTrailingCRLFSuccess(t *testing.T) { t.Fatalf("expecting error") } if err != io.EOF { - t.Fatalf("unexpected error: %s. Expecting %s", err, io.EOF) + t.Fatalf("unexpected error: %v. Expecting %v", err, io.EOF) } } @@ -809,7 +809,7 @@ func TestResponseHeaderTrailingCRLFError(t *testing.T) { var r ResponseHeader br := bufio.NewReader(bytes.NewBufferString(s)) if err := r.Read(br); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } // try reading the trailing CRLF. It must return EOF @@ -818,7 +818,7 @@ func TestResponseHeaderTrailingCRLFError(t *testing.T) { t.Fatalf("expecting error") } if err == io.EOF { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } } @@ -831,7 +831,7 @@ func TestRequestHeaderTrailingCRLFSuccess(t *testing.T) { var r RequestHeader br := bufio.NewReader(bytes.NewBufferString(s)) if err := r.Read(br); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } // try reading the trailing CRLF. It must return EOF @@ -840,7 +840,7 @@ func TestRequestHeaderTrailingCRLFSuccess(t *testing.T) { t.Fatalf("expecting error") } if err != io.EOF { - t.Fatalf("unexpected error: %s. Expecting %s", err, io.EOF) + t.Fatalf("unexpected error: %v. Expecting %v", err, io.EOF) } } @@ -853,7 +853,7 @@ func TestRequestHeaderTrailingCRLFError(t *testing.T) { var r RequestHeader br := bufio.NewReader(bytes.NewBufferString(s)) if err := r.Read(br); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } // try reading the trailing CRLF. It must return EOF @@ -862,7 +862,7 @@ func TestRequestHeaderTrailingCRLFError(t *testing.T) { t.Fatalf("expecting error") } if err == io.EOF { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } } @@ -877,7 +877,7 @@ func TestRequestHeaderReadEOF(t *testing.T) { t.Fatalf("expecting error") } if err != io.EOF { - t.Fatalf("unexpected error: %s. Expecting %s", err, io.EOF) + t.Fatalf("unexpected error: %v. Expecting %v", err, io.EOF) } // incomplete request header mustn't return io.EOF @@ -902,7 +902,7 @@ func TestResponseHeaderReadEOF(t *testing.T) { t.Fatalf("expecting error") } if err != io.EOF { - t.Fatalf("unexpected error: %s. Expecting %s", err, io.EOF) + t.Fatalf("unexpected error: %v. Expecting %v", err, io.EOF) } // incomplete response header mustn't return io.EOF @@ -925,14 +925,14 @@ func TestResponseHeaderOldVersion(t *testing.T) { s += "HTTP/1.0 200 OK\r\nContent-Length: 2\r\nContent-Type: ass\r\nConnection: keep-alive\r\n\r\n42" br := bufio.NewReader(bytes.NewBufferString(s)) if err := h.Read(br); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if !h.ConnectionClose() { t.Fatalf("expecting 'Connection: close' for the response with old http protocol") } if err := h.Read(br); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if h.ConnectionClose() { t.Fatalf("unexpected 'Connection: close' for keep-alive response with old http protocol") @@ -1033,7 +1033,7 @@ func testRequestMultipartFormBoundary(t *testing.T, s, boundary string) { r := bytes.NewBufferString(s) br := bufio.NewReader(r) if err := h.Read(br); err != nil { - t.Fatalf("unexpected error: %s. s=%q, boundary=%q", err, s, boundary) + t.Fatalf("unexpected error: %v. s=%q, boundary=%q", err, s, boundary) } b := h.MultipartFormBoundary() @@ -1071,7 +1071,7 @@ func testResponseHeaderConnectionUpgrade(t *testing.T, s string, isUpgrade, isKe r := bytes.NewBufferString(s) br := bufio.NewReader(r) if err := h.Read(br); err != nil { - t.Fatalf("unexpected error: %s. Response header %q", err, s) + t.Fatalf("unexpected error: %v. Response header %q", err, s) } upgrade := h.ConnectionUpgrade() if upgrade != isUpgrade { @@ -1118,7 +1118,7 @@ func testRequestHeaderConnectionUpgrade(t *testing.T, s string, isUpgrade, isKee r := bytes.NewBufferString(s) br := bufio.NewReader(r) if err := h.Read(br); err != nil { - t.Fatalf("unexpected error: %s. Request header %q", err, s) + t.Fatalf("unexpected error: %v. Request header %q", err, s) } upgrade := h.ConnectionUpgrade() if upgrade != isUpgrade { @@ -1140,21 +1140,21 @@ func TestRequestHeaderProxyWithCookie(t *testing.T) { r := bytes.NewBufferString("GET /foo HTTP/1.1\r\nFoo: bar\r\nHost: aaa.com\r\nCookie: foo=bar; bazzz=aaaaaaa; x=y\r\nCookie: aqqqqq=123\r\n\r\n") br := bufio.NewReader(r) if err := h.Read(br); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } w := &bytes.Buffer{} bw := bufio.NewWriter(w) if err := h.Write(bw); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if err := bw.Flush(); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } var h1 RequestHeader br.Reset(w) if err := h1.Read(br); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if string(h1.RequestURI()) != "/foo" { t.Fatalf("unexpected requestURI: %q. Expecting %q", h1.RequestURI(), "/foo") @@ -1191,7 +1191,7 @@ func TestResponseHeaderFirstByteReadEOF(t *testing.T) { t.Fatalf("expecting error") } if err != io.EOF { - t.Fatalf("unexpected error %s. Expecting %s", err, io.EOF) + t.Fatalf("unexpected error %v. Expecting %v", err, io.EOF) } } @@ -1247,7 +1247,7 @@ func testResponseHeaderHTTPVer(t *testing.T, s string, connectionClose bool) { r := bytes.NewBufferString(s) br := bufio.NewReader(r) if err := h.Read(br); err != nil { - t.Fatalf("unexpected error: %s. response=%q", err, s) + t.Fatalf("unexpected error: %v. response=%q", err, s) } if h.ConnectionClose() != connectionClose { t.Fatalf("unexpected connectionClose %v. Expecting %v. response=%q", h.ConnectionClose(), connectionClose, s) @@ -1260,7 +1260,7 @@ func testRequestHeaderHTTPVer(t *testing.T, s string, connectionClose bool) { r := bytes.NewBufferString(s) br := bufio.NewReader(r) if err := h.Read(br); err != nil { - t.Fatalf("unexpected error: %s. request=%q", err, s) + t.Fatalf("unexpected error: %v. request=%q", err, s) } if h.ConnectionClose() != connectionClose { t.Fatalf("unexpected connectionClose %v. Expecting %v. request=%q", h.ConnectionClose(), connectionClose, s) @@ -1364,16 +1364,16 @@ func TestRequestContentTypeDefaultNotEmpty(t *testing.T) { w := &bytes.Buffer{} bw := bufio.NewWriter(w) if err := h.Write(bw); err != nil { - t.Fatalf("Unexpected error: %s", err) + t.Fatalf("Unexpected error: %v", err) } if err := bw.Flush(); err != nil { - t.Fatalf("Unexpected error: %s", err) + t.Fatalf("Unexpected error: %v", err) } var h1 RequestHeader br := bufio.NewReader(w) if err := h1.Read(br); err != nil { - t.Fatalf("Unexpected error: %s", err) + t.Fatalf("Unexpected error: %v", err) } if string(h1.contentType) != "application/octet-stream" { @@ -1391,16 +1391,16 @@ func TestRequestContentTypeNoDefault(t *testing.T) { w := &bytes.Buffer{} bw := bufio.NewWriter(w) if err := h.Write(bw); err != nil { - t.Fatalf("Unexpected error: %s", err) + t.Fatalf("Unexpected error: %v", err) } if err := bw.Flush(); err != nil { - t.Fatalf("Unexpected error: %s", err) + t.Fatalf("Unexpected error: %v", err) } var h1 RequestHeader br := bufio.NewReader(w) if err := h1.Read(br); err != nil { - t.Fatalf("Unexpected error: %s", err) + t.Fatalf("Unexpected error: %v", err) } if string(h1.contentType) != "" { @@ -1436,16 +1436,16 @@ func TestRequestHeaderConnectionClose(t *testing.T) { var w bytes.Buffer bw := bufio.NewWriter(&w) if err := h.Write(bw); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if err := bw.Flush(); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } var h1 RequestHeader br := bufio.NewReader(&w) if err := h1.Read(br); err != nil { - t.Fatalf("error when reading request header: %s", err) + t.Fatalf("error when reading request header: %v", err) } if !h1.ConnectionClose() { @@ -1516,7 +1516,7 @@ func TestResponseHeaderVisitAll(t *testing.T) { r := bytes.NewBufferString("HTTP/1.1 200 OK\r\nContent-Type: aa\r\nContent-Length: 123\r\nSet-Cookie: aa=bb; path=/foo/bar\r\nSet-Cookie: ccc\r\nTrailer: Foo, Bar\r\n\r\n") br := bufio.NewReader(r) if err := h.Read(br); err != nil { - t.Fatalf("Unexpected error: %s", err) + t.Fatalf("Unexpected error: %v", err) } if h.Len() != 5 { @@ -1574,7 +1574,7 @@ func TestRequestHeaderVisitAll(t *testing.T) { r := bytes.NewBufferString("GET / HTTP/1.1\r\nHost: aa.com\r\nXX: YYY\r\nXX: ZZ\r\nCookie: a=b; c=d\r\nTrailer: Foo, Bar\r\n\r\n") br := bufio.NewReader(r) if err := h.Read(br); err != nil { - t.Fatalf("Unexpected error: %s", err) + t.Fatalf("Unexpected error: %v", err) } if h.Len() != 5 { @@ -1632,7 +1632,7 @@ func TestRequestHeaderVisitAllInOrder(t *testing.T) { r := bytes.NewBufferString("GET / HTTP/1.1\r\nContent-Type: aa\r\nCookie: a=b\r\nHost: example.com\r\nUser-Agent: xxx\r\n\r\n") br := bufio.NewReader(r) if err := h.Read(br); err != nil { - t.Fatalf("Unexpected error: %s", err) + t.Fatalf("Unexpected error: %v", err) } if h.Len() != 4 { @@ -1764,10 +1764,10 @@ func TestResponseHeaderCookie(t *testing.T) { w := &bytes.Buffer{} bw := bufio.NewWriter(w) if err := h.Write(bw); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if err := bw.Flush(); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } h.DelAllCookies() @@ -1775,7 +1775,7 @@ func TestResponseHeaderCookie(t *testing.T) { var h1 ResponseHeader br := bufio.NewReader(w) if err := h1.Read(br); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } c.SetKey("foobar") @@ -1850,16 +1850,16 @@ func TestRequestHeaderCookie(t *testing.T) { w := &bytes.Buffer{} bw := bufio.NewWriter(w) if err := h.Write(bw); err != nil { - t.Fatalf("Unexpected error: %s", err) + t.Fatalf("Unexpected error: %v", err) } if err := bw.Flush(); err != nil { - t.Fatalf("Unexpected error: %s", err) + t.Fatalf("Unexpected error: %v", err) } var h1 RequestHeader br := bufio.NewReader(w) if err := h1.Read(br); err != nil { - t.Fatalf("Unexpected error: %s", err) + t.Fatalf("Unexpected error: %v", err) } if !bytes.Equal(h1.Cookie("foo"), h.Cookie("foo")) { @@ -2000,7 +2000,7 @@ func testRequestHeaderMethod(t *testing.T, expectedMethod string) { var h1 RequestHeader br := bufio.NewReader(bytes.NewBufferString(s)) if err := h1.Read(br); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } m1 := h1.Method() if string(m) != string(m1) { @@ -2045,16 +2045,16 @@ func TestRequestHeaderSetGet(t *testing.T) { bw := bufio.NewWriter(w) err := h.Write(bw) if err != nil { - t.Fatalf("Unexpected error when writing request header: %s", err) + t.Fatalf("Unexpected error when writing request header: %v", err) } if err := bw.Flush(); err != nil { - t.Fatalf("Unexpected error when flushing request header: %s", err) + t.Fatalf("Unexpected error when flushing request header: %v", err) } var h1 RequestHeader br := bufio.NewReader(w) if err = h1.Read(br); err != nil { - t.Fatalf("Unexpected error when reading request header: %s", err) + t.Fatalf("Unexpected error when reading request header: %v", err) } if h1.ContentLength() != h.ContentLength() { @@ -2106,16 +2106,16 @@ func TestResponseHeaderSetGet(t *testing.T) { bw := bufio.NewWriter(w) err := h.Write(bw) if err != nil { - t.Fatalf("Unexpected error when writing response header: %s", err) + t.Fatalf("Unexpected error when writing response header: %v", err) } if err := bw.Flush(); err != nil { - t.Fatalf("Unexpected error when flushing response header: %s", err) + t.Fatalf("Unexpected error when flushing response header: %v", err) } var h1 ResponseHeader br := bufio.NewReader(w) if err = h1.Read(br); err != nil { - t.Fatalf("Unexpected error when reading response header: %s", err) + t.Fatalf("Unexpected error when reading response header: %v", err) } if h1.ContentLength() != h.ContentLength() { @@ -2162,17 +2162,17 @@ func testResponseHeaderConnectionClose(t *testing.T, connectionClose bool) { bw := bufio.NewWriter(w) err := h.Write(bw) if err != nil { - t.Fatalf("Unexpected error when writing response header: %s", err) + t.Fatalf("Unexpected error when writing response header: %v", err) } if err := bw.Flush(); err != nil { - t.Fatalf("Unexpected error when flushing response header: %s", err) + t.Fatalf("Unexpected error when flushing response header: %v", err) } var h1 ResponseHeader br := bufio.NewReader(w) err = h1.Read(br) if err != nil { - t.Fatalf("Unexpected error when reading response header: %s", err) + t.Fatalf("Unexpected error when reading response header: %v", err) } if h1.ConnectionClose() != h.ConnectionClose() { t.Fatalf("Unexpected value for ConnectionClose: %v. Expected %v", h1.ConnectionClose(), h.ConnectionClose()) @@ -2235,7 +2235,7 @@ func TestRequestHeaderBufioPeek(t *testing.T) { br := bufio.NewReaderSize(r, 4096) h := &RequestHeader{} if err := h.Read(br); err != nil { - t.Fatalf("Unexpected error when reading request: %s", err) + t.Fatalf("Unexpected error when reading request: %v", err) } verifyRequestHeader(t, h, -2, "/", "foobar.com", "", "") } @@ -2249,7 +2249,7 @@ func TestResponseHeaderBufioPeek(t *testing.T) { br := bufio.NewReaderSize(r, 4096) h := &ResponseHeader{} if err := h.Read(br); err != nil { - t.Fatalf("Unexpected error when reading response: %s", err) + t.Fatalf("Unexpected error when reading response: %v", err) } verifyResponseHeader(t, h, 200, 10, "aaa") } @@ -2718,7 +2718,7 @@ func testResponseHeaderReadSuccess(t *testing.T, h *ResponseHeader, headers stri br := bufio.NewReader(r) err := h.Read(br) if err != nil { - t.Fatalf("Unexpected error when parsing response headers: %s. headers=%q", err, headers) + t.Fatalf("Unexpected error when parsing response headers: %v. headers=%q", err, headers) } verifyResponseHeader(t, h, expectedStatusCode, expectedContentLength, expectedContentType) } @@ -2729,7 +2729,7 @@ func testRequestHeaderReadSuccess(t *testing.T, h *RequestHeader, headers string br := bufio.NewReader(r) err := h.Read(br) if err != nil { - t.Fatalf("Unexpected error when parsing request headers: %s. headers=%q", err, headers) + t.Fatalf("Unexpected error when parsing request headers: %v. headers=%q", err, headers) } verifyRequestHeader(t, h, expectedContentLength, expectedRequestURI, expectedHost, expectedReferer, expectedContentType) } @@ -2775,7 +2775,7 @@ func verifyResponseTrailer(t *testing.T, h *ResponseHeader, expectedTrailers map for k, v := range expectedTrailers { got := h.Peek(k) if !bytes.Equal(got, []byte(v)) { - t.Fatalf("Unexpected trailer %s. Expected %s. Got %q", k, v, got) + t.Fatalf("Unexpected trailer %q. Expected %q. Got %q", k, v, got) } } } @@ -2784,7 +2784,7 @@ func verifyRequestTrailer(t *testing.T, h *RequestHeader, expectedTrailers map[s for k, v := range expectedTrailers { got := h.Peek(k) if !bytes.Equal(got, []byte(v)) { - t.Fatalf("Unexpected trailer %s. Expected %s. Got %q", k, v, got) + t.Fatalf("Unexpected trailer %q. Expected %q. Got %q", k, v, got) } } } @@ -2797,7 +2797,7 @@ func verifyTrailer(t *testing.T, r *bufio.Reader, expectedTrailers map[string]st return } if err != nil { - t.Fatalf("Cannot read trailer: %s", err) + t.Fatalf("Cannot read trailer: %v", err) } verifyRequestTrailer(t, &req.Header, expectedTrailers) return @@ -2809,7 +2809,7 @@ func verifyTrailer(t *testing.T, r *bufio.Reader, expectedTrailers map[string]st return } if err != nil { - t.Fatalf("Cannot read trailer: %s", err) + t.Fatalf("Cannot read trailer: %v", err) } verifyResponseTrailer(t, &resp.Header, expectedTrailers) } diff --git a/header_timing_test.go b/header_timing_test.go index 745b5c303e..0d7ab67860 100644 --- a/header_timing_test.go +++ b/header_timing_test.go @@ -38,7 +38,7 @@ func BenchmarkRequestHeaderRead(b *testing.B) { buf.n = 0 br.Reset(buf) if err := h.Read(br); err != nil { - b.Fatalf("unexpected error when reading header: %s", err) + b.Fatalf("unexpected error when reading header: %v", err) } } }) @@ -55,7 +55,7 @@ func BenchmarkResponseHeaderRead(b *testing.B) { buf.n = 0 br.Reset(buf) if err := h.Read(br); err != nil { - b.Fatalf("unexpected error when reading header: %s", err) + b.Fatalf("unexpected error when reading header: %v", err) } } }) @@ -71,7 +71,7 @@ func BenchmarkRequestHeaderWrite(b *testing.B) { var w bytebufferpool.ByteBuffer for pb.Next() { if _, err := h.WriteTo(&w); err != nil { - b.Fatalf("unexpected error when writing header: %s", err) + b.Fatalf("unexpected error when writing header: %v", err) } w.Reset() } @@ -89,7 +89,7 @@ func BenchmarkResponseHeaderWrite(b *testing.B) { var w bytebufferpool.ByteBuffer for pb.Next() { if _, err := h.WriteTo(&w); err != nil { - b.Fatalf("unexpected error when writing header: %s", err) + b.Fatalf("unexpected error when writing header: %v", err) } w.Reset() } diff --git a/http.go b/http.go index 75b40c9b74..4771db0f80 100644 --- a/http.go +++ b/http.go @@ -932,7 +932,7 @@ func WriteMultipartForm(w io.Writer, f *multipart.Form, boundary string) error { } fh, err := fv.Open() if err != nil { - return fmt.Errorf("cannot open form file %q (%q): %s", k, fv.Filename, err) + return fmt.Errorf("cannot open form file %q (%q): %w", k, fv.Filename, err) } if _, err = copyZeroAlloc(vw, fh); err != nil { return fmt.Errorf("error when copying form file %q (%q): %w", k, fv.Filename, err) @@ -2168,7 +2168,7 @@ func parseChunkSize(r *bufio.Reader) (int, error) { c, err := r.ReadByte() if err != nil { return -1, ErrBrokenChunk{ - error: fmt.Errorf("cannot read '\r' char at the end of chunk size: %s", err), + error: fmt.Errorf("cannot read '\r' char at the end of chunk size: %w", err), } } // Skip chunk extension after chunk size. diff --git a/http_test.go b/http_test.go index 12ca1f1a8e..71d5c6e98d 100644 --- a/http_test.go +++ b/http_test.go @@ -118,7 +118,7 @@ func TestIssue875(t *testing.T) { ctx.Response.Header.Set("Location", q) if !strings.Contains(ctx.Response.String(), tcase.expectedLocation) { - subT.Errorf("invalid escaping, got\n%s", ctx.Response.String()) + subT.Errorf("invalid escaping, got\n%q", ctx.Response.String()) } }) } @@ -140,7 +140,7 @@ func TestRequestCopyTo(t *testing.T) { expectedHost, expectedContentType, len(expectedBody), expectedBody) br := bufio.NewReader(bytes.NewBufferString(s)) if err := req.Read(br); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } testRequestCopyTo(t, &req) } @@ -202,7 +202,7 @@ func testRequestBodyStreamWithTrailer(t *testing.T, body []byte, disableNormaliz for k, v := range expectedTrailer { err := req1.Header.AddTrailer(k) if err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } req1.Header.Set(k, v) } @@ -210,17 +210,17 @@ func testRequestBodyStreamWithTrailer(t *testing.T, body []byte, disableNormaliz w := &bytes.Buffer{} bw := bufio.NewWriter(w) if err := req1.Write(bw); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if err := bw.Flush(); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } var req2 Request req2.Header.disableNormalizing = disableNormalizing br := bufio.NewReader(w) if err := req2.Read(br); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } reqBody := req2.Body() @@ -233,7 +233,7 @@ func testRequestBodyStreamWithTrailer(t *testing.T, body []byte, disableNormaliz normalizeHeaderKey(kBytes, disableNormalizing) r := req2.Header.Peek(k) if string(r) != v { - t.Fatalf("unexpected trailer header %q: %q. Expecting %s", kBytes, r, v) + t.Fatalf("unexpected trailer header %q: %q. Expecting %q", kBytes, r, v) } } } @@ -259,7 +259,7 @@ func testResponseBodyStreamWithTrailer(t *testing.T, body []byte, disableNormali for k, v := range expectedTrailer { err := resp1.Header.AddTrailer(k) if err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } resp1.Header.Set(k, v) } @@ -267,17 +267,17 @@ func testResponseBodyStreamWithTrailer(t *testing.T, body []byte, disableNormali w := &bytes.Buffer{} bw := bufio.NewWriter(w) if err := resp1.Write(bw); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if err := bw.Flush(); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } var resp2 Response resp2.Header.disableNormalizing = disableNormalizing br := bufio.NewReader(w) if err := resp2.Read(br); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } respBody := resp2.Body() @@ -290,7 +290,7 @@ func testResponseBodyStreamWithTrailer(t *testing.T, body []byte, disableNormali normalizeHeaderKey(kBytes, disableNormalizing) r := resp2.Header.Peek(k) if string(r) != v { - t.Fatalf("unexpected trailer header %q: %q. Expecting %s", kBytes, r, v) + t.Fatalf("unexpected trailer header %q: %q. Expecting %q", kBytes, r, v) } } } @@ -328,21 +328,21 @@ func testResponseBodyStreamDeflate(t *testing.T, body []byte, bodySize int) { w := &bytes.Buffer{} bw := bufio.NewWriter(w) if err := r.WriteDeflate(bw); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if err := bw.Flush(); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } var resp Response br := bufio.NewReader(w) if err := resp.Read(br); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } respBody, err := resp.BodyInflate() if err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if !bytes.Equal(respBody, body) { t.Fatalf("unexpected body: %q. Expecting %q", respBody, body) @@ -356,21 +356,21 @@ func testResponseBodyStreamGzip(t *testing.T, body []byte, bodySize int) { w := &bytes.Buffer{} bw := bufio.NewWriter(w) if err := r.WriteGzip(bw); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if err := bw.Flush(); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } var resp Response br := bufio.NewReader(w) if err := resp.Read(br); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } respBody, err := resp.BodyGunzip() if err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if !bytes.Equal(respBody, body) { t.Fatalf("unexpected body: %q. Expecting %q", respBody, body) @@ -384,10 +384,10 @@ func TestResponseWriteGzipNilBody(t *testing.T) { w := &bytes.Buffer{} bw := bufio.NewWriter(w) if err := r.WriteGzip(bw); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if err := bw.Flush(); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } } @@ -398,10 +398,10 @@ func TestResponseWriteDeflateNilBody(t *testing.T) { w := &bytes.Buffer{} bw := bufio.NewWriter(w) if err := r.WriteDeflate(bw); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if err := bw.Flush(); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } } @@ -549,7 +549,7 @@ func TestRequestContentTypeWithCharsetIssue100(t *testing.T) { br := bufio.NewReader(bytes.NewBufferString(s)) var r Request if err := r.Read(br); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } body := r.Body() @@ -599,12 +599,12 @@ tailfoobar` var r Request if err := r.Read(br); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } tail, err := ioutil.ReadAll(br) if err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if string(tail) != "tailfoobar" { t.Fatalf("unexpected tail %q. Expecting %q", tail, "tailfoobar") @@ -612,7 +612,7 @@ tailfoobar` f, err := r.MultipartForm() if err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } defer r.RemoveMultipartFormFiles() @@ -763,7 +763,7 @@ func TestUseHostHeader2(t *testing.T) { t.Parallel() testServer := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { if r.Host != "SomeHost" { - http.Error(w, fmt.Sprintf("Expected Host header to be '%s', but got '%s'", "SomeHost", r.Host), http.StatusBadRequest) + http.Error(w, fmt.Sprintf("Expected Host header to be '%q', but got '%q'", "SomeHost", r.Host), http.StatusBadRequest) } else { w.WriteHeader(http.StatusOK) } @@ -780,17 +780,17 @@ func TestUseHostHeader2(t *testing.T) { req.UseHostHeader = true req.Header.SetHost("SomeHost") if err := client.DoTimeout(req, resp, 1*time.Second); err != nil { - t.Fatalf("DoTimeout returned an error '%s'", err) + t.Fatalf("DoTimeout returned an error '%v'", err) } else { if resp.StatusCode() != http.StatusOK { - t.Fatalf("DoTimeout: %s", resp.body) + t.Fatalf("DoTimeout: %v", resp.body) } } if err := client.Do(req, resp); err != nil { - t.Fatalf("DoTimeout returned an error '%s'", err) + t.Fatalf("DoTimeout returned an error '%v'", err) } else { if resp.StatusCode() != http.StatusOK { - t.Fatalf("Do: %s", resp.body) + t.Fatalf("Do: %q", resp.body) } } } @@ -900,7 +900,7 @@ func TestRequestBodyWriteToMultipart(t *testing.T) { var r Request br := bufio.NewReader(bytes.NewBufferString(s)) if err := r.Read(br); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } testBodyWriteTo(t, &r, expectedS, true) @@ -914,7 +914,7 @@ type bodyWriterTo interface { func testBodyWriteTo(t *testing.T, bw bodyWriterTo, expectedS string, isRetainedBody bool) { var buf bytebufferpool.ByteBuffer if err := bw.BodyWriteTo(&buf); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } s := buf.B @@ -945,7 +945,7 @@ func TestRequestReadEOF(t *testing.T) { t.Fatalf("expecting error") } if err != io.EOF { - t.Fatalf("unexpected error: %s. Expecting %s", err, io.EOF) + t.Fatalf("unexpected error: %v. Expecting %v", err, io.EOF) } // incomplete request mustn't return io.EOF @@ -970,7 +970,7 @@ func TestResponseReadEOF(t *testing.T) { t.Fatalf("expecting error") } if err != io.EOF { - t.Fatalf("unexpected error: %s. Expecting %s", err, io.EOF) + t.Fatalf("unexpected error: %v. Expecting %v", err, io.EOF) } // incomplete response mustn't return io.EOF @@ -993,7 +993,7 @@ func TestRequestReadNoBody(t *testing.T) { err := r.Read(br) r.SetHost("foobar") if err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } s := r.String() if strings.Contains(s, "Content-Length: ") { @@ -1012,7 +1012,7 @@ func TestResponseWriteTo(t *testing.T) { var buf bytebufferpool.ByteBuffer n, err := r.WriteTo(&buf) if err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if n != int64(len(s)) { t.Fatalf("unexpected response length %d. Expecting %d", n, len(s)) @@ -1033,7 +1033,7 @@ func TestRequestWriteTo(t *testing.T) { var buf bytebufferpool.ByteBuffer n, err := r.WriteTo(&buf) if err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if n != int64(len(s)) { t.Fatalf("unexpected request length %d. Expecting %d", n, len(s)) @@ -1142,7 +1142,7 @@ func TestRequestReadGzippedBody(t *testing.T) { len(body), body) br := bufio.NewReader(bytes.NewBufferString(s)) if err := r.Read(br); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if string(r.Header.Peek(HeaderContentEncoding)) != "gzip" { @@ -1157,7 +1157,7 @@ func TestRequestReadGzippedBody(t *testing.T) { bodyGunzipped, err := AppendGunzipBytes(nil, r.Body()) if err != nil { - t.Fatalf("unexpected error when uncompressing data: %s", err) + t.Fatalf("unexpected error when uncompressing data: %v", err) } if string(bodyGunzipped) != bodyOriginal { t.Fatalf("unexpected uncompressed body %q. Expecting %q", bodyGunzipped, bodyOriginal) @@ -1172,7 +1172,7 @@ func TestRequestReadPostNoBody(t *testing.T) { s := "POST /foo/bar HTTP/1.1\r\nContent-Type: aaa/bbb\r\n\r\naaaa" br := bufio.NewReader(bytes.NewBufferString(s)) if err := r.Read(br); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if string(r.Header.RequestURI()) != "/foo/bar" { @@ -1190,7 +1190,7 @@ func TestRequestReadPostNoBody(t *testing.T) { tail, err := ioutil.ReadAll(br) if err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if string(tail) != "aaaa" { t.Fatalf("unexpected tail %q. Expecting %q", tail, "aaaa") @@ -1205,14 +1205,14 @@ func TestRequestContinueReadBody(t *testing.T) { var r Request if err := r.Read(br); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if !r.MayContinue() { t.Fatalf("MayContinue must return true") } if err := r.ContinueReadBody(br, 0, true); err != nil { - t.Fatalf("error when reading request body: %s", err) + t.Fatalf("error when reading request body: %v", err) } body := r.Body() if string(body) != "abcde" { @@ -1221,7 +1221,7 @@ func TestRequestContinueReadBody(t *testing.T) { tail, err := ioutil.ReadAll(br) if err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if string(tail) != "f4343" { t.Fatalf("unexpected tail %q. Expecting %q", tail, "f4343") @@ -1237,12 +1237,12 @@ func TestRequestContinueReadBodyDisablePrereadMultipartForm(t *testing.T) { k := fmt.Sprintf("key_%d", i) v := fmt.Sprintf("value_%d", i) if err := mw.WriteField(k, v); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } } boundary := mw.Boundary() if err := mw.Close(); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } formData := w.Bytes() @@ -1253,11 +1253,11 @@ func TestRequestContinueReadBodyDisablePrereadMultipartForm(t *testing.T) { var r Request if err := r.Header.Read(br); err != nil { - t.Fatalf("unexpected error reading headers: %s", err) + t.Fatalf("unexpected error reading headers: %v", err) } if err := r.readLimitBody(br, 10000, false, false); err != nil { - t.Fatalf("unexpected error reading body: %s", err) + t.Fatalf("unexpected error reading body: %v", err) } if r.multipartForm != nil { @@ -1304,7 +1304,7 @@ func TestResponseGzipStream(t *testing.T) { time.Sleep(time.Millisecond) fmt.Fprintf(w, "1234") //nolint:errcheck if err := w.Flush(); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } }) if !r.IsBodyStream() { @@ -1327,7 +1327,7 @@ func TestResponseDeflateStream(t *testing.T) { w.Flush() //nolint:errcheck w.Write([]byte("1234")) //nolint:errcheck if err := w.Flush(); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } }) if !r.IsBodyStream() { @@ -1371,16 +1371,16 @@ func testResponseDeflateExt(t *testing.T, r *Response, s string) { var err error bw := bufio.NewWriter(&buf) if err = r.WriteDeflate(bw); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if err = bw.Flush(); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } var r1 Response br := bufio.NewReader(&buf) if err = r1.Read(br); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } ce := r1.Header.Peek(HeaderContentEncoding) @@ -1392,7 +1392,7 @@ func testResponseDeflateExt(t *testing.T, r *Response, s string) { } body, err = r1.BodyInflate() if err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } } else { if len(ce) > 0 { @@ -1424,16 +1424,16 @@ func testResponseGzipExt(t *testing.T, r *Response, s string) { var err error bw := bufio.NewWriter(&buf) if err = r.WriteGzip(bw); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if err = bw.Flush(); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } var r1 Response br := bufio.NewReader(&buf) if err = r1.Read(br); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } ce := r1.Header.Peek(HeaderContentEncoding) @@ -1445,7 +1445,7 @@ func testResponseGzipExt(t *testing.T, r *Response, s string) { } body, err = r1.BodyGunzip() if err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } } else { if len(ce) > 0 { @@ -1475,12 +1475,12 @@ func TestRequestMultipartForm(t *testing.T) { k := fmt.Sprintf("key_%d", i) v := fmt.Sprintf("value_%d", i) if err := mw.WriteField(k, v); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } } boundary := mw.Boundary() if err := mw.Close(); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } formData := w.Bytes() @@ -1494,13 +1494,13 @@ func TestRequestMultipartForm(t *testing.T) { var req Request br := bufio.NewReader(bytes.NewBufferString(s)) if err := req.Read(br); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } s = req.String() br = bufio.NewReader(bytes.NewBufferString(s)) if err := req.Read(br); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } testRequestMultipartForm(t, "foobar", req.Body(), 3) @@ -1515,12 +1515,12 @@ func testRequestMultipartForm(t *testing.T, boundary string, formData []byte, pa r := bytes.NewBufferString(s) br := bufio.NewReader(r) if err := req.Read(br); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } f, err := req.MultipartForm() if err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } defer req.RemoveMultipartFormFiles() @@ -1597,7 +1597,7 @@ func testResponseReadLimitBodyError(t *testing.T, s string, maxBodySize int, exp t.Fatalf("expecting error. s=%q, maxBodySize=%d", s, maxBodySize) } if err != expectedErr { - t.Fatalf("unexpected error: %s. Expecting %s. s=%q, maxBodySize=%d", err, expectedErr, s, maxBodySize) + t.Fatalf("unexpected error: %v. Expecting %v. s=%q, maxBodySize=%d", err, expectedErr, s, maxBodySize) } } @@ -1606,7 +1606,7 @@ func testResponseReadLimitBodySuccess(t *testing.T, s string, maxBodySize int) { r := bytes.NewBufferString(s) br := bufio.NewReader(r) if err := req.ReadLimitBody(br, maxBodySize); err != nil { - t.Fatalf("unexpected error: %s. s=%q, maxBodySize=%d", err, s, maxBodySize) + t.Fatalf("unexpected error: %v. s=%q, maxBodySize=%d", err, s, maxBodySize) } } @@ -1619,7 +1619,7 @@ func testRequestReadLimitBodyError(t *testing.T, s string, maxBodySize int, expe t.Fatalf("expecting error. s=%q, maxBodySize=%d", s, maxBodySize) } if err != expectedErr { - t.Fatalf("unexpected error: %s. Expecting %s. s=%q, maxBodySize=%d", err, expectedErr, s, maxBodySize) + t.Fatalf("unexpected error: %v. Expecting %v. s=%q, maxBodySize=%d", err, expectedErr, s, maxBodySize) } } @@ -1628,7 +1628,7 @@ func testRequestReadLimitBodySuccess(t *testing.T, s string, maxBodySize int) { r := bytes.NewBufferString(s) br := bufio.NewReader(r) if err := req.ReadLimitBody(br, maxBodySize); err != nil { - t.Fatalf("unexpected error: %s. s=%q, maxBodySize=%d", err, s, maxBodySize) + t.Fatalf("unexpected error: %v. s=%q, maxBodySize=%d", err, s, maxBodySize) } } @@ -1676,16 +1676,16 @@ func TestRequestWriteRequestURINoHost(t *testing.T) { var w bytes.Buffer bw := bufio.NewWriter(&w) if err := req.Write(bw); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if err := bw.Flush(); err != nil { - t.Fatalf("unexepcted error: %s", err) + t.Fatalf("unexepcted error: %v", err) } var req1 Request br := bufio.NewReader(&w) if err := req1.Read(br); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if string(req1.Header.Host()) != "google.com" { t.Fatalf("unexpected host: %q. Expecting %q", req1.Header.Host(), "google.com") @@ -1761,16 +1761,16 @@ func testSetRequestBodyStream(t *testing.T, body string) { var w bytes.Buffer bw := bufio.NewWriter(&w) if err := req.Write(bw); err != nil { - t.Fatalf("unexpected error when writing request: %s. body=%q", err, body) + t.Fatalf("unexpected error when writing request: %v. body=%q", err, body) } if err := bw.Flush(); err != nil { - t.Fatalf("unexpected error when flushing request: %s. body=%q", err, body) + t.Fatalf("unexpected error when flushing request: %v. body=%q", err, body) } var req1 Request br := bufio.NewReader(&w) if err := req1.Read(br); err != nil { - t.Fatalf("unexpected error when reading request: %s. body=%q", err, body) + t.Fatalf("unexpected error when reading request: %v. body=%q", err, body) } if string(req1.Body()) != body { t.Fatalf("unexpected body %q. Expecting %q", req1.Body(), body) @@ -1795,23 +1795,23 @@ func testSetRequestBodyStreamChunked(t *testing.T, body string, trailer map[stri for k := range trailer { err := req.Header.AddTrailer(k) if err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } } if err := req.Write(bw); err != nil { - t.Fatalf("unexpected error when writing request: %s. body=%q", err, body) + t.Fatalf("unexpected error when writing request: %v. body=%q", err, body) } for k, v := range trailer { req.Header.Set(k, v) } if err := bw.Flush(); err != nil { - t.Fatalf("unexpected error when flushing request: %s. body=%q", err, body) + t.Fatalf("unexpected error when flushing request: %v. body=%q", err, body) } var req1 Request br := bufio.NewReader(&w) if err := req1.Read(br); err != nil { - t.Fatalf("unexpected error when reading request: %s. body=%q", err, body) + t.Fatalf("unexpected error when reading request: %v. body=%q", err, body) } if string(req1.Body()) != body { t.Fatalf("unexpected body %q. Expecting %q", req1.Body(), body) @@ -1819,7 +1819,7 @@ func testSetRequestBodyStreamChunked(t *testing.T, body string, trailer map[stri for k, v := range trailer { r := req.Header.Peek(k) if string(r) != v { - t.Fatalf("unexpected trailer %s. Expecting %s. Got %q", k, v, r) + t.Fatalf("unexpected trailer %q. Expecting %q. Got %q", k, v, r) } } } @@ -1838,16 +1838,16 @@ func testSetResponseBodyStream(t *testing.T, body string) { var w bytes.Buffer bw := bufio.NewWriter(&w) if err := resp.Write(bw); err != nil { - t.Fatalf("unexpected error when writing response: %s. body=%q", err, body) + t.Fatalf("unexpected error when writing response: %v. body=%q", err, body) } if err := bw.Flush(); err != nil { - t.Fatalf("unexpected error when flushing response: %s. body=%q", err, body) + t.Fatalf("unexpected error when flushing response: %v. body=%q", err, body) } var resp1 Response br := bufio.NewReader(&w) if err := resp1.Read(br); err != nil { - t.Fatalf("unexpected error when reading response: %s. body=%q", err, body) + t.Fatalf("unexpected error when reading response: %v. body=%q", err, body) } if string(resp1.Body()) != body { t.Fatalf("unexpected body %q. Expecting %q", resp1.Body(), body) @@ -1869,14 +1869,14 @@ func testSetResponseBodyStreamChunked(t *testing.T, body string, trailer map[str for k := range trailer { err := resp.Header.AddTrailer(k) if err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } } if err := resp.Write(bw); err != nil { - t.Fatalf("unexpected error when writing response: %s. body=%q", err, body) + t.Fatalf("unexpected error when writing response: %v. body=%q", err, body) } if err := bw.Flush(); err != nil { - t.Fatalf("unexpected error when flushing response: %s. body=%q", err, body) + t.Fatalf("unexpected error when flushing response: %v. body=%q", err, body) } for k, v := range trailer { resp.Header.Set(k, v) @@ -1885,7 +1885,7 @@ func testSetResponseBodyStreamChunked(t *testing.T, body string, trailer map[str var resp1 Response br := bufio.NewReader(&w) if err := resp1.Read(br); err != nil { - t.Fatalf("unexpected error when reading response: %s. body=%q", err, body) + t.Fatalf("unexpected error when reading response: %v. body=%q", err, body) } if string(resp1.Body()) != body { t.Fatalf("unexpected body %q. Expecting %q", resp1.Body(), body) @@ -1893,7 +1893,7 @@ func testSetResponseBodyStreamChunked(t *testing.T, body string, trailer map[str for k, v := range trailer { r := resp.Header.Peek(k) if string(r) != v { - t.Fatalf("unexpected trailer %s. Expecting %s. Got %q", k, v, r) + t.Fatalf("unexpected trailer %q. Expecting %q. Got %q", k, v, r) } } } @@ -1929,7 +1929,7 @@ func TestRequestReadChunked(t *testing.T) { rb := bufio.NewReader(r) err := req.Read(rb) if err != nil { - t.Fatalf("Unexpected error when reading chunked request: %s", err) + t.Fatalf("Unexpected error when reading chunked request: %v", err) } expectedBody := "abc12345" if string(req.Body()) != expectedBody { @@ -1950,7 +1950,7 @@ func TestRequestChunkedWhitespace(t *testing.T) { rb := bufio.NewReader(r) err := req.Read(rb) if err != nil { - t.Fatalf("Unexpected error when reading chunked request: %s", err) + t.Fatalf("Unexpected error when reading chunked request: %v", err) } expectedBody := "abc" if string(req.Body()) != expectedBody { @@ -1987,7 +1987,7 @@ func testResponseReadWithoutBody(t *testing.T, resp *Response, s string, skipBod resp.SkipBody = skipBody err := resp.Read(rb) if err != nil { - t.Fatalf("Unexpected error when reading response without body: %s. response=%q", err, s) + t.Fatalf("Unexpected error when reading response without body: %v. response=%q", err, s) } if len(resp.Body()) != 0 { t.Fatalf("Unexpected response body %q. Expected %q. response=%q", resp.Body(), "", s) @@ -2062,16 +2062,16 @@ func testResponseSuccess(t *testing.T, statusCode int, contentType, serverName, bw := bufio.NewWriter(w) err := resp.Write(bw) if err != nil { - t.Fatalf("Unexpected error when calling Response.Write(): %s", err) + t.Fatalf("Unexpected error when calling Response.Write(): %v", err) } if err = bw.Flush(); err != nil { - t.Fatalf("Unexpected error when flushing bufio.Writer: %s", err) + t.Fatalf("Unexpected error when flushing bufio.Writer: %v", err) } var resp1 Response br := bufio.NewReader(w) if err = resp1.Read(br); err != nil { - t.Fatalf("Unexpected error when calling Response.Read(): %s", err) + t.Fatalf("Unexpected error when calling Response.Read(): %v", err) } if resp1.StatusCode() != expectedStatusCode { t.Fatalf("Unexpected status code: %d. Expected %d", resp1.StatusCode(), expectedStatusCode) @@ -2132,16 +2132,16 @@ func testRequestSuccess(t *testing.T, method, requestURI, host, userAgent, body, bw := bufio.NewWriter(w) err := req.Write(bw) if err != nil { - t.Fatalf("Unexpected error when calling Request.Write(): %s", err) + t.Fatalf("Unexpected error when calling Request.Write(): %v", err) } if err = bw.Flush(); err != nil { - t.Fatalf("Unexpected error when flushing bufio.Writer: %s", err) + t.Fatalf("Unexpected error when flushing bufio.Writer: %v", err) } var req1 Request br := bufio.NewReader(w) if err = req1.Read(br); err != nil { - t.Fatalf("Unexpected error when calling Request.Read(): %s", err) + t.Fatalf("Unexpected error when calling Request.Read(): %v", err) } if string(req1.Header.Method()) != expectedMethod { t.Fatalf("Unexpected method: %q. Expected %q", req1.Header.Method(), expectedMethod) @@ -2266,7 +2266,7 @@ func testResponseReadSuccess(t *testing.T, resp *Response, response string, expe rb := bufio.NewReader(r) err := resp.Read(rb) if err != nil { - t.Fatalf("Unexpected error: %s", err) + t.Fatalf("Unexpected error: %v", err) } verifyResponseHeader(t, &resp.Header, expectedStatusCode, expectedContentLength, expectedContentType) @@ -2397,7 +2397,7 @@ func testRequestPostArgsError(t *testing.T, req *Request, s string) { br := bufio.NewReader(r) err := req.Read(br) if err != nil { - t.Fatalf("Unexpected error when reading %q: %s", s, err) + t.Fatalf("Unexpected error when reading %q: %v", s, err) } ss := req.PostArgs().String() if len(ss) != 0 { @@ -2410,7 +2410,7 @@ func testRequestPostArgsSuccess(t *testing.T, req *Request, s string, expectedAr br := bufio.NewReader(r) err := req.Read(br) if err != nil { - t.Fatalf("Unexpected error when reading %q: %s", s, err) + t.Fatalf("Unexpected error when reading %q: %v", s, err) } args := req.PostArgs() @@ -2437,7 +2437,7 @@ func testReadBodyChunked(t *testing.T, bodySize int) { br := bufio.NewReader(r) b, err := readBodyChunked(br, 0, nil) if err != nil { - t.Fatalf("Unexpected error for bodySize=%d: %s. body=%q, chunkedBody=%q", bodySize, err, body, chunkedBody) + t.Fatalf("Unexpected error for bodySize=%d: %v. body=%q, chunkedBody=%q", bodySize, err, body, chunkedBody) } if !bytes.Equal(b, body) { t.Fatalf("Unexpected response read for bodySize=%d: %q. Expected %q. chunkedBody=%q", bodySize, b, body, chunkedBody) @@ -2451,7 +2451,7 @@ func testReadBodyFixedSize(t *testing.T, bodySize int) { br := bufio.NewReader(r) b, err := readBody(br, bodySize, 0, nil) if err != nil { - t.Fatalf("Unexpected error in ReadResponseBody(%d): %s", bodySize, err) + t.Fatalf("Unexpected error in ReadResponseBody(%d): %v", bodySize, err) } if !bytes.Equal(b, body) { t.Fatalf("Unexpected response read for bodySize=%d: %q. Expected %q", bodySize, b, body) @@ -2511,11 +2511,11 @@ Content-Type: application/json mr := multipart.NewReader(strings.NewReader(s), "foo") form, err := mr.ReadForm(1024) if err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if err := WriteMultipartForm(&w, form, "foo"); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if w.String() != s { @@ -2678,7 +2678,7 @@ func TestResponseImmediateHeaderFlushFixedLength(t *testing.T) { go func() { if err := bw.Write(bb); err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } waitForIt <- struct{}{} }() @@ -2727,7 +2727,7 @@ func TestResponseImmediateHeaderFlushFixedLengthSkipBody(t *testing.T) { bw := &r if err := bw.Write(bb); err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } if !strings.Contains(headersOnClose, "Content-Length: 0") { @@ -2759,7 +2759,7 @@ func TestResponseImmediateHeaderFlushChunked(t *testing.T) { go func() { if err := bw.Write(bb); err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } waitForIt <- struct{}{} @@ -2809,7 +2809,7 @@ func TestResponseImmediateHeaderFlushChunkedNoBody(t *testing.T) { bw := &r if err := bw.Write(bb); err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } if !strings.Contains(headersOnClose, "Transfer-Encoding: chunked") { diff --git a/lbclient_example_test.go b/lbclient_example_test.go index a9e240de93..3cc7e2421c 100644 --- a/lbclient_example_test.go +++ b/lbclient_example_test.go @@ -31,7 +31,7 @@ func ExampleLBClient() { url := fmt.Sprintf("http://abcedfg/foo/bar/%d", i) req.SetRequestURI(url) if err := lbc.Do(&req, &resp); err != nil { - log.Fatalf("Error when sending request: %s", err) + log.Fatalf("Error when sending request: %v", err) } if resp.StatusCode() != fasthttp.StatusOK { log.Fatalf("unexpected status code: %d. Expecting %d", resp.StatusCode(), fasthttp.StatusOK) diff --git a/peripconn_test.go b/peripconn_test.go index b67e8a9389..e2137c0f84 100644 --- a/peripconn_test.go +++ b/peripconn_test.go @@ -16,7 +16,7 @@ func testIPxUint32(t *testing.T, n uint32) { ip := uint322ip(n) nn := ip2uint32(ip) if n != nn { - t.Fatalf("Unexpected value=%d for ip=%s. Expected %d", nn, ip, n) + t.Fatalf("Unexpected value=%d for ip=%q. Expected %d", nn, ip, n) } } diff --git a/prefork/prefork_test.go b/prefork/prefork_test.go index 19b2e471da..9a9a873563 100644 --- a/prefork/prefork_test.go +++ b/prefork/prefork_test.go @@ -48,7 +48,7 @@ func Test_New(t *testing.T) { p := New(s) if p.Network != defaultNetwork { - t.Errorf("Prefork.Netork == %s, want %s", p.Network, defaultNetwork) + t.Errorf("Prefork.Netork == %q, want %q", p.Network, defaultNetwork) } if reflect.ValueOf(p.ServeFunc).Pointer() != reflect.ValueOf(s.Serve).Pointer() { @@ -82,11 +82,11 @@ func Test_listen(t *testing.T) { lnAddr := ln.Addr().String() if lnAddr != addr { - t.Errorf("Prefork.Addr == %s, want %s", lnAddr, addr) + t.Errorf("Prefork.Addr == %q, want %q", lnAddr, addr) } if p.Network != defaultNetwork { - t.Errorf("Prefork.Network == %s, want %s", p.Network, defaultNetwork) + t.Errorf("Prefork.Network == %q, want %q", p.Network, defaultNetwork) } procs := runtime.GOMAXPROCS(0) @@ -119,11 +119,11 @@ func Test_setTCPListenerFiles(t *testing.T) { lnAddr := p.ln.Addr().String() if lnAddr != addr { - t.Errorf("Prefork.Addr == %s, want %s", lnAddr, addr) + t.Errorf("Prefork.Addr == %q, want %q", lnAddr, addr) } if p.Network != defaultNetwork { - t.Errorf("Prefork.Network == %s, want %s", p.Network, defaultNetwork) + t.Errorf("Prefork.Network == %q, want %q", p.Network, defaultNetwork) } if len(p.files) != 1 { @@ -155,7 +155,7 @@ func Test_ListenAndServe(t *testing.T) { lnAddr := p.ln.Addr().String() if lnAddr != addr { - t.Errorf("Prefork.Addr == %s, want %s", lnAddr, addr) + t.Errorf("Prefork.Addr == %q, want %q", lnAddr, addr) } if p.ln == nil { @@ -187,7 +187,7 @@ func Test_ListenAndServeTLS(t *testing.T) { lnAddr := p.ln.Addr().String() if lnAddr != addr { - t.Errorf("Prefork.Addr == %s, want %s", lnAddr, addr) + t.Errorf("Prefork.Addr == %q, want %q", lnAddr, addr) } if p.ln == nil { @@ -219,7 +219,7 @@ func Test_ListenAndServeTLSEmbed(t *testing.T) { lnAddr := p.ln.Addr().String() if lnAddr != addr { - t.Errorf("Prefork.Addr == %s, want %s", lnAddr, addr) + t.Errorf("Prefork.Addr == %q, want %q", lnAddr, addr) } if p.ln == nil { diff --git a/requestctx_setbodystreamwriter_example_test.go b/requestctx_setbodystreamwriter_example_test.go index 6bdcb812d2..af9b09c5c1 100644 --- a/requestctx_setbodystreamwriter_example_test.go +++ b/requestctx_setbodystreamwriter_example_test.go @@ -12,7 +12,7 @@ import ( func ExampleRequestCtx_SetBodyStreamWriter() { // Start fasthttp server for streaming responses. if err := fasthttp.ListenAndServe(":8080", responseStreamHandler); err != nil { - log.Fatalf("unexpected error in server: %s", err) + log.Fatalf("unexpected error in server: %v", err) } } diff --git a/reuseport/reuseport_error.go b/reuseport/reuseport_error.go index 3e29d42ae7..062f09bb9a 100644 --- a/reuseport/reuseport_error.go +++ b/reuseport/reuseport_error.go @@ -11,5 +11,5 @@ type ErrNoReusePort struct { // Error implements error interface. func (e *ErrNoReusePort) Error() string { - return fmt.Sprintf("The OS doesn't support SO_REUSEPORT: %s", e.err) + return fmt.Sprintf("The OS doesn't support SO_REUSEPORT: %v", e.err) } diff --git a/reuseport/reuseport_example_test.go b/reuseport/reuseport_example_test.go index 6bac22a170..82b82506ef 100644 --- a/reuseport/reuseport_example_test.go +++ b/reuseport/reuseport_example_test.go @@ -11,11 +11,11 @@ import ( func ExampleListen() { ln, err := reuseport.Listen("tcp4", "localhost:12345") if err != nil { - log.Fatalf("error in reuseport listener: %s", err) + log.Fatalf("error in reuseport listener: %v", err) } if err = fasthttp.Serve(ln, requestHandler); err != nil { - log.Fatalf("error in fasthttp Server: %s", err) + log.Fatalf("error in fasthttp Server: %v", err) } } diff --git a/reuseport/reuseport_test.go b/reuseport/reuseport_test.go index 93d4295a34..8ebf3d8417 100644 --- a/reuseport/reuseport_test.go +++ b/reuseport/reuseport_test.go @@ -23,7 +23,7 @@ func TestTCP6(t *testing.T) { func hasLocalIPv6(t *testing.T) bool { addrs, err := net.InterfaceAddrs() if err != nil { - t.Fatalf("cannot obtain local interfaces: %s", err) + t.Fatalf("cannot obtain local interfaces: %v", err) } for _, a := range addrs { if a.String() == "::1/128" { diff --git a/server.go b/server.go index a970e82760..44c973025b 100644 --- a/server.go +++ b/server.go @@ -1536,13 +1536,13 @@ func (s *Server) getNextProto(c net.Conn) (proto string, err error) { if tlsConn, ok := c.(connTLSer); ok { if s.ReadTimeout > 0 { if err := c.SetReadDeadline(time.Now().Add(s.ReadTimeout)); err != nil { - panic(fmt.Sprintf("BUG: error in SetReadDeadline(%s): %s", s.ReadTimeout, err)) + panic(fmt.Sprintf("BUG: error in SetReadDeadline(%v): %v", s.ReadTimeout, err)) } } if s.WriteTimeout > 0 { if err := c.SetWriteDeadline(time.Now().Add(s.WriteTimeout)); err != nil { - panic(fmt.Sprintf("BUG: error in SetWriteDeadline(%s): %s", s.WriteTimeout, err)) + panic(fmt.Sprintf("BUG: error in SetWriteDeadline(%v): %v", s.WriteTimeout, err)) } } @@ -1761,7 +1761,7 @@ func (s *Server) AppendCertEmbed(certData, keyData []byte) error { cert, err := tls.X509KeyPair(certData, keyData) if err != nil { - return fmt.Errorf("cannot load TLS key pair from the provided certData(%d) and keyData(%d): %s", + return fmt.Errorf("cannot load TLS key pair from the provided certData(%d) and keyData(%d): %w", len(certData), len(keyData), err) } @@ -1916,12 +1916,12 @@ func acceptConn(s *Server, ln net.Listener, lastPerIPErrorTime *time.Time) (net. panic("BUG: net.Listener returned non-nil conn and non-nil error") } if netErr, ok := err.(net.Error); ok && netErr.Timeout() { - s.logger().Printf("Timeout error when accepting new connections: %s", netErr) + s.logger().Printf("Timeout error when accepting new connections: %v", netErr) time.Sleep(time.Second) continue } if err != io.EOF && !strings.Contains(err.Error(), "use of closed network connection") { - s.logger().Printf("Permanent error when accepting new connections: %s", err) + s.logger().Printf("Permanent error when accepting new connections: %v", err) return nil, err } return nil, io.EOF @@ -2094,7 +2094,7 @@ func (s *Server) serveConn(c net.Conn) (err error) { // The next handler is responsible for setting its own deadlines. if s.ReadTimeout > 0 || s.WriteTimeout > 0 { if err := c.SetDeadline(zeroTime); err != nil { - panic(fmt.Sprintf("BUG: error in SetDeadline(zeroTime): %s", err)) + panic(fmt.Sprintf("BUG: error in SetDeadline(zeroTime): %v", err)) } } @@ -2222,7 +2222,7 @@ func (s *Server) serveConn(c net.Conn) (err error) { if reqConf.ReadTimeout > 0 { deadline := time.Now().Add(reqConf.ReadTimeout) if err := c.SetReadDeadline(deadline); err != nil { - panic(fmt.Sprintf("BUG: error in SetReadDeadline(%s): %s", deadline, err)) + panic(fmt.Sprintf("BUG: error in SetReadDeadline(%v): %v", deadline, err)) } } if reqConf.MaxRequestBodySize > 0 { @@ -2360,13 +2360,13 @@ func (s *Server) serveConn(c net.Conn) (err error) { if writeTimeout > 0 { if err := c.SetWriteDeadline(time.Now().Add(writeTimeout)); err != nil { - panic(fmt.Sprintf("BUG: error in SetWriteDeadline(%s): %s", writeTimeout, err)) + panic(fmt.Sprintf("BUG: error in SetWriteDeadline(%v): %v", writeTimeout, err)) } previousWriteTimeout = writeTimeout } else if previousWriteTimeout > 0 { // We don't want a write timeout but we previously set one, remove it. if err := c.SetWriteDeadline(zeroTime); err != nil { - panic(fmt.Sprintf("BUG: error in SetWriteDeadline(zeroTime): %s", err)) + panic(fmt.Sprintf("BUG: error in SetWriteDeadline(zeroTime): %v", err)) } previousWriteTimeout = 0 } diff --git a/server_example_test.go b/server_example_test.go index 68321fbd5f..cb26cdcd8e 100644 --- a/server_example_test.go +++ b/server_example_test.go @@ -27,7 +27,7 @@ func ExampleListenAndServe() { // // ListenAndServe returns only on error, so usually it blocks forever. if err := fasthttp.ListenAndServe(listenAddr, requestHandler); err != nil { - log.Fatalf("error in ListenAndServe: %s", err) + log.Fatalf("error in ListenAndServe: %v", err) } } @@ -39,7 +39,7 @@ func ExampleServe() { // For example, unix socket listener or TLS listener. ln, err := net.Listen("tcp4", "127.0.0.1:8080") if err != nil { - log.Fatalf("error in net.Listen: %s", err) + log.Fatalf("error in net.Listen: %v", err) } // This function will be called by the server for each incoming request. @@ -55,7 +55,7 @@ func ExampleServe() { // // Serve returns on ln.Close() or error, so usually it blocks forever. if err := fasthttp.Serve(ln, requestHandler); err != nil { - log.Fatalf("error in Serve: %s", err) + log.Fatalf("error in Serve: %v", err) } } @@ -82,7 +82,7 @@ func ExampleServer() { // // ListenAndServe returns only on error, so usually it blocks forever. if err := s.ListenAndServe("127.0.0.1:80"); err != nil { - log.Fatalf("error in ListenAndServe: %s", err) + log.Fatalf("error in ListenAndServe: %v", err) } } @@ -94,7 +94,7 @@ func ExampleRequestCtx_Hijack() { var buf [1]byte for { if _, err := c.Read(buf[:]); err != nil { - log.Printf("error when reading from hijacked connection: %s", err) + log.Printf("error when reading from hijacked connection: %v", err) return } fmt.Fprintf(c, "You sent me %q. Waiting for new data\n", buf[:]) @@ -120,7 +120,7 @@ func ExampleRequestCtx_Hijack() { } if err := fasthttp.ListenAndServe(":80", requestHandler); err != nil { - log.Fatalf("error in ListenAndServe: %s", err) + log.Fatalf("error in ListenAndServe: %v", err) } } @@ -151,7 +151,7 @@ func ExampleRequestCtx_TimeoutError() { } if err := fasthttp.ListenAndServe(":80", requestHandler); err != nil { - log.Fatalf("error in ListenAndServe: %s", err) + log.Fatalf("error in ListenAndServe: %v", err) } } @@ -172,6 +172,6 @@ func ExampleRequestCtx_Logger() { } if err := fasthttp.ListenAndServe(":80", requestHandler); err != nil { - log.Fatalf("error in ListenAndServe: %s", err) + log.Fatalf("error in ListenAndServe: %v", err) } } diff --git a/server_test.go b/server_test.go index 5436606432..65bcce32dc 100644 --- a/server_test.go +++ b/server_test.go @@ -51,13 +51,13 @@ func TestServerCRNLAfterPost_Pipeline(t *testing.T) { go func() { if err := s.Serve(ln); err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } }() c, err := ln.Dial() if err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } defer c.Close() if _, err = c.Write([]byte("POST / HTTP/1.1\r\nHost: golang.org\r\nContent-Length: 3\r\n\r\nABC" + @@ -69,13 +69,13 @@ func TestServerCRNLAfterPost_Pipeline(t *testing.T) { br := bufio.NewReader(c) var resp Response if err := resp.Read(br); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if resp.StatusCode() != StatusOK { t.Fatalf("unexpected status code: %d. Expecting %d", resp.StatusCode(), StatusOK) } if err := resp.Read(br); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if resp.StatusCode() != StatusOK { t.Fatalf("unexpected status code: %d. Expecting %d", resp.StatusCode(), StatusOK) @@ -97,13 +97,13 @@ func TestServerCRNLAfterPost(t *testing.T) { go func() { if err := s.Serve(ln); err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } }() c, err := ln.Dial() if err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } defer c.Close() if _, err = c.Write([]byte("POST / HTTP/1.1\r\nHost: golang.org\r\nContent-Length: 3\r\n\r\nABC" + @@ -115,7 +115,7 @@ func TestServerCRNLAfterPost(t *testing.T) { br := bufio.NewReader(c) var resp Response if err := resp.Read(br); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if resp.StatusCode() != StatusOK { t.Fatalf("unexpected status code: %d. Expecting %d", resp.StatusCode(), StatusOK) @@ -136,13 +136,13 @@ func TestServerPipelineFlush(t *testing.T) { go func() { if err := s.Serve(ln); err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } }() c, err := ln.Dial() if err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if _, err = c.Write([]byte("GET /foo1 HTTP/1.1\r\nHost: google.com\r\n\r\n")); err != nil { t.Fatal(err) @@ -166,7 +166,7 @@ func TestServerPipelineFlush(t *testing.T) { var resp Response if err := resp.Read(br); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if resp.StatusCode() != StatusOK { t.Fatalf("unexpected status code: %d. Expecting %d", resp.StatusCode(), StatusOK) @@ -179,7 +179,7 @@ func TestServerPipelineFlush(t *testing.T) { } if err := resp.Read(br); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if resp.StatusCode() != StatusOK { t.Fatalf("unexpected status code: %d. Expecting %d", resp.StatusCode(), StatusOK) @@ -202,13 +202,13 @@ func TestServerInvalidHeader(t *testing.T) { go func() { if err := s.Serve(ln); err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } }() c, err := ln.Dial() if err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if _, err = c.Write([]byte("POST /foo HTTP/1.1\r\nHost: gle.com\r\nFoo : bar\r\nContent-Length: 5\r\n\r\n12345")); err != nil { t.Fatal(err) @@ -217,7 +217,7 @@ func TestServerInvalidHeader(t *testing.T) { br := bufio.NewReader(c) var resp Response if err := resp.Read(br); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if resp.StatusCode() != StatusBadRequest { t.Fatalf("unexpected status code: %d. Expecting %d", resp.StatusCode(), StatusBadRequest) @@ -225,7 +225,7 @@ func TestServerInvalidHeader(t *testing.T) { c, err = ln.Dial() if err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if _, err = c.Write([]byte("GET /foo HTTP/1.1\r\nHost: gle.com\r\nFoo : bar\r\n\r\n")); err != nil { t.Fatal(err) @@ -233,7 +233,7 @@ func TestServerInvalidHeader(t *testing.T) { br = bufio.NewReader(c) if err := resp.Read(br); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if resp.StatusCode() != StatusBadRequest { @@ -241,10 +241,10 @@ func TestServerInvalidHeader(t *testing.T) { } if err := c.Close(); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if err := ln.Close(); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } } @@ -264,7 +264,7 @@ func TestServerConnState(t *testing.T) { serverCh := make(chan struct{}) go func() { if err := s.Serve(ln); err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } close(serverCh) }() @@ -273,24 +273,24 @@ func TestServerConnState(t *testing.T) { go func() { c, err := ln.Dial() if err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } br := bufio.NewReader(c) // Send 2 requests on the same connection. for i := 0; i < 2; i++ { if _, err = c.Write([]byte("GET / HTTP/1.1\r\nHost: aa\r\n\r\n")); err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } var resp Response if err := resp.Read(br); err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } if resp.StatusCode() != StatusOK { t.Errorf("unexpected status code: %d. Expecting %d", resp.StatusCode(), StatusOK) } } if err := c.Close(); err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } // Give the server a little bit of time to transition the connection to the close state. time.Sleep(time.Millisecond * 100) @@ -304,7 +304,7 @@ func TestServerConnState(t *testing.T) { } if err := ln.Close(); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } select { @@ -317,7 +317,7 @@ func TestServerConnState(t *testing.T) { expected := []string{"new", "active", "idle", "active", "idle", "closed"} if !reflect.DeepEqual(expected, states) { - t.Fatalf("wrong state, expected %s, got %s", expected, states) + t.Fatalf("wrong state, expected %q, got %q", expected, states) } } @@ -391,12 +391,12 @@ func TestServerName(t *testing.T) { rw.r.WriteString("GET / HTTP/1.1\r\nHost: google.com\r\n\r\n") if err := s.ServeConn(rw); err != nil { - t.Fatalf("Unexpected error from serveConn: %s", err) + t.Fatalf("Unexpected error from serveConn: %v", err) } resp, err := ioutil.ReadAll(&rw.w) if err != nil { - t.Fatalf("Unexpected error from ReadAll: %s", err) + t.Fatalf("Unexpected error from ReadAll: %v", err) } return resp @@ -492,7 +492,7 @@ func TestServerErrSmallBuffer(t *testing.T) { br := bufio.NewReader(&rw.w) var resp Response if err := resp.Read(br); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } statusCode := resp.StatusCode() if statusCode != StatusRequestHeaderFieldsTooLarge { @@ -548,7 +548,7 @@ func TestRequestCtxRedirectHTTPSSchemeless(t *testing.T) { s := "GET /foo/bar?baz HTTP/1.1\nHost: aaa.com\n\n" br := bufio.NewReader(bytes.NewBufferString(s)) if err := ctx.Request.Read(br); err != nil { - t.Fatalf("cannot read request: %s", err) + t.Fatalf("cannot read request: %v", err) } ctx.Request.isTLS = true @@ -623,7 +623,7 @@ func TestServerResponseServerHeader(t *testing.T) { serverCh := make(chan struct{}) go func() { if err := s.Serve(ln); err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } close(serverCh) }() @@ -632,15 +632,15 @@ func TestServerResponseServerHeader(t *testing.T) { go func() { c, err := ln.Dial() if err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } if _, err = c.Write([]byte("GET / HTTP/1.1\r\nHost: aa\r\n\r\n")); err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } br := bufio.NewReader(c) var resp Response if err = resp.Read(br); err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } if resp.StatusCode() != StatusNotFound { @@ -653,7 +653,7 @@ func TestServerResponseServerHeader(t *testing.T) { t.Errorf("unexpected server header: %q. Expecting %q", resp.Header.Server(), serverName) } if err = c.Close(); err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } close(clientCh) }() @@ -665,7 +665,7 @@ func TestServerResponseServerHeader(t *testing.T) { } if err := ln.Close(); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } select { @@ -704,7 +704,7 @@ func TestServerResponseBodyStream(t *testing.T) { serverCh := make(chan struct{}) go func() { if err := Serve(ln, h); err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } close(serverCh) }() @@ -713,15 +713,15 @@ func TestServerResponseBodyStream(t *testing.T) { go func() { c, err := ln.Dial() if err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } if _, err = c.Write([]byte("GET / HTTP/1.1\r\nHost: aa\r\n\r\n")); err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } br := bufio.NewReader(c) var respH ResponseHeader if err = respH.Read(br); err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } if respH.StatusCode() != StatusOK { t.Errorf("unexpected status code: %d. Expecting %d", respH.StatusCode(), StatusOK) @@ -730,7 +730,7 @@ func TestServerResponseBodyStream(t *testing.T) { buf := make([]byte, 1024) n, err := br.Read(buf) if err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } b := buf[:n] if string(b) != "5\r\nfirst\r\n" { @@ -740,7 +740,7 @@ func TestServerResponseBodyStream(t *testing.T) { tail, err := ioutil.ReadAll(br) if err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } if string(tail) != "6\r\nsecond\r\n0\r\n\r\n" { t.Errorf("unexpected tail %q. Expecting %q", tail, "6\r\nsecond\r\n0\r\n\r\n") @@ -756,7 +756,7 @@ func TestServerResponseBodyStream(t *testing.T) { } if err := ln.Close(); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } select { @@ -781,7 +781,7 @@ func TestServerDisableKeepalive(t *testing.T) { serverCh := make(chan struct{}) go func() { if err := s.Serve(ln); err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } close(serverCh) }() @@ -790,15 +790,15 @@ func TestServerDisableKeepalive(t *testing.T) { go func() { c, err := ln.Dial() if err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } if _, err = c.Write([]byte("GET / HTTP/1.1\r\nHost: aa\r\n\r\n")); err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } br := bufio.NewReader(c) var resp Response if err = resp.Read(br); err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } if resp.StatusCode() != StatusOK { t.Errorf("unexpected status code: %d. Expecting %d", resp.StatusCode(), StatusOK) @@ -813,7 +813,7 @@ func TestServerDisableKeepalive(t *testing.T) { // make sure the connection is closed data, err := ioutil.ReadAll(br) if err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } if len(data) > 0 { t.Errorf("unexpected data read from the connection: %q. Expecting empty data", data) @@ -829,7 +829,7 @@ func TestServerDisableKeepalive(t *testing.T) { } if err := ln.Close(); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } select { @@ -858,7 +858,7 @@ func TestServerMaxConnsPerIPLimit(t *testing.T) { Listener: ln, } if err := s.Serve(fakeLN); err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } close(serverCh) }() @@ -867,16 +867,16 @@ func TestServerMaxConnsPerIPLimit(t *testing.T) { go func() { c1, err := ln.Dial() if err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } c2, err := ln.Dial() if err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } br := bufio.NewReader(c2) var resp Response if err = resp.Read(br); err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } if resp.StatusCode() != StatusTooManyRequests { t.Errorf("unexpected status code for the second connection: %d. Expecting %d", @@ -884,11 +884,11 @@ func TestServerMaxConnsPerIPLimit(t *testing.T) { } if _, err = c1.Write([]byte("GET / HTTP/1.1\r\nHost: aa\r\n\r\n")); err != nil { - t.Errorf("unexpected error when writing to the first connection: %s", err) + t.Errorf("unexpected error when writing to the first connection: %v", err) } br = bufio.NewReader(c1) if err = resp.Read(br); err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } if resp.StatusCode() != StatusOK { t.Errorf("unexpected status code for the first connection: %d. Expecting %d", @@ -907,7 +907,7 @@ func TestServerMaxConnsPerIPLimit(t *testing.T) { } if err := ln.Close(); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } select { @@ -938,7 +938,7 @@ type fakeIPConn struct { func (conn *fakeIPConn) RemoteAddr() net.Addr { addr, err := net.ResolveTCPAddr("tcp4", "1.2.3.4:5789") if err != nil { - panic(fmt.Sprintf("BUG: unexpected error: %s", err)) + panic(fmt.Sprintf("BUG: unexpected error: %v", err)) } return addr } @@ -959,7 +959,7 @@ func TestServerConcurrencyLimit(t *testing.T) { serverCh := make(chan struct{}) go func() { if err := s.Serve(ln); err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } close(serverCh) }() @@ -968,16 +968,16 @@ func TestServerConcurrencyLimit(t *testing.T) { go func() { c1, err := ln.Dial() if err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } c2, err := ln.Dial() if err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } br := bufio.NewReader(c2) var resp Response if err = resp.Read(br); err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } if resp.StatusCode() != StatusServiceUnavailable { t.Errorf("unexpected status code for the second connection: %d. Expecting %d", @@ -985,11 +985,11 @@ func TestServerConcurrencyLimit(t *testing.T) { } if _, err = c1.Write([]byte("GET / HTTP/1.1\r\nHost: aa\r\n\r\n")); err != nil { - t.Errorf("unexpected error when writing to the first connection: %s", err) + t.Errorf("unexpected error when writing to the first connection: %v", err) } br = bufio.NewReader(c1) if err = resp.Read(br); err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } if resp.StatusCode() != StatusOK { t.Errorf("unexpected status code for the first connection: %d. Expecting %d", @@ -1008,7 +1008,7 @@ func TestServerConcurrencyLimit(t *testing.T) { } if err := ln.Close(); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } select { @@ -1031,7 +1031,7 @@ func TestServerWriteFastError(t *testing.T) { br := bufio.NewReader(&buf) var resp Response if err := resp.Read(br); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if resp.StatusCode() != StatusForbidden { t.Fatalf("unexpected status code: %d. Expecting %d", resp.StatusCode(), StatusForbidden) @@ -1180,7 +1180,7 @@ func TestServerServeTLSEmbed(t *testing.T) { ctx.WriteString("success") //nolint:errcheck }) if err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } close(ch) }() @@ -1188,7 +1188,7 @@ func TestServerServeTLSEmbed(t *testing.T) { // establish connection to the server conn, err := ln.Dial() if err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } tlsConn := tls.Client(conn, &tls.Config{ InsecureSkipVerify: true, @@ -1196,7 +1196,7 @@ func TestServerServeTLSEmbed(t *testing.T) { // send request if _, err = tlsConn.Write([]byte("GET / HTTP/1.1\r\nHost: aaa\r\n\r\n")); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } // read response @@ -1221,7 +1221,7 @@ func TestServerServeTLSEmbed(t *testing.T) { // close the server if err = ln.Close(); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } select { case <-ch: @@ -1278,7 +1278,7 @@ Connection: close case "/upload": f, err := ctx.MultipartForm() if err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } if len(f.Value) != 1 { t.Errorf("unexpected values %d. Expecting %d", len(f.Value), 1) @@ -1300,17 +1300,17 @@ Connection: close ch := make(chan struct{}) go func() { if err := s.Serve(ln); err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } close(ch) }() conn, err := ln.Dial() if err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if _, err = conn.Write([]byte(reqS)); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } var resp Response @@ -1318,7 +1318,7 @@ Connection: close respCh := make(chan struct{}) go func() { if err := resp.Read(br); err != nil { - t.Errorf("error when reading response: %s", err) + t.Errorf("error when reading response: %v", err) } if resp.StatusCode() != StatusSeeOther { t.Errorf("unexpected status code %d. Expecting %d", resp.StatusCode(), StatusSeeOther) @@ -1329,7 +1329,7 @@ Connection: close } if err := resp.Read(br); err != nil { - t.Errorf("error when reading the second response: %s", err) + t.Errorf("error when reading the second response: %v", err) } if resp.StatusCode() != StatusOK { t.Errorf("unexpected status code: %d. Expecting %d", resp.StatusCode(), StatusOK) @@ -1348,7 +1348,7 @@ Connection: close } if err := ln.Close(); err != nil { - t.Fatalf("error when closing listener: %s", err) + t.Fatalf("error when closing listener: %v", err) } select { @@ -1373,12 +1373,12 @@ func TestServerGetWithContent(t *testing.T) { rw.r.WriteString("GET / HTTP/1.1\r\nHost: mm.com\r\nContent-Length: 5\r\n\r\nabcde") if err := s.ServeConn(rw); err != nil { - t.Fatalf("Unexpected error from serveConn: %s", err) + t.Fatalf("Unexpected error from serveConn: %v", err) } resp := rw.w.String() if !strings.HasSuffix(resp, "success") { - t.Fatalf("unexpected response %s.", resp) + t.Fatalf("unexpected response %q.", resp) } } @@ -1409,14 +1409,14 @@ func TestServerDisableHeaderNamesNormalizing(t *testing.T) { rw.r.WriteString(fmt.Sprintf("GET / HTTP/1.1\r\n%s: %s\r\nHost: google.com\r\n\r\n", headerName, headerValue)) if err := s.ServeConn(rw); err != nil { - t.Fatalf("Unexpected error from serveConn: %s", err) + t.Fatalf("Unexpected error from serveConn: %v", err) } br := bufio.NewReader(&rw.w) var resp Response resp.Header.DisableNormalizing() if err := resp.Read(br); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } hv := resp.Header.Peek(headerName) @@ -1442,7 +1442,7 @@ func TestServerReduceMemoryUsageSerial(t *testing.T) { ch := make(chan struct{}) go func() { if err := s.Serve(ln); err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } close(ch) }() @@ -1450,7 +1450,7 @@ func TestServerReduceMemoryUsageSerial(t *testing.T) { testServerRequests(t, ln) if err := ln.Close(); err != nil { - t.Fatalf("error when closing listener: %s", err) + t.Fatalf("error when closing listener: %v", err) } select { @@ -1473,7 +1473,7 @@ func TestServerReduceMemoryUsageConcurrent(t *testing.T) { ch := make(chan struct{}) go func() { if err := s.Serve(ln); err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } close(ch) }() @@ -1494,7 +1494,7 @@ func TestServerReduceMemoryUsageConcurrent(t *testing.T) { } if err := ln.Close(); err != nil { - t.Fatalf("error when closing listener: %s", err) + t.Fatalf("error when closing listener: %v", err) } select { @@ -1507,20 +1507,20 @@ func TestServerReduceMemoryUsageConcurrent(t *testing.T) { func testServerRequests(t *testing.T, ln *fasthttputil.InmemoryListener) { conn, err := ln.Dial() if err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } br := bufio.NewReader(conn) var resp Response for i := 0; i < 10; i++ { if _, err = fmt.Fprintf(conn, "GET / HTTP/1.1\r\nHost: aaa\r\n\r\n"); err != nil { - t.Fatalf("unexpected error on iteration %d: %s", i, err) + t.Fatalf("unexpected error on iteration %d: %v", i, err) } respCh := make(chan struct{}) go func() { if err = resp.Read(br); err != nil { - t.Errorf("unexpected error when reading response on iteration %d: %s", i, err) + t.Errorf("unexpected error when reading response on iteration %d: %v", i, err) } close(respCh) }() @@ -1532,7 +1532,7 @@ func testServerRequests(t *testing.T, ln *fasthttputil.InmemoryListener) { } if err = conn.Close(); err != nil { - t.Fatalf("error when closing the connection: %s", err) + t.Fatalf("error when closing the connection: %v", err) } } @@ -1549,34 +1549,34 @@ func TestServerHTTP10ConnectionKeepAlive(t *testing.T) { } }) if err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } close(ch) }() conn, err := ln.Dial() if err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } _, err = fmt.Fprintf(conn, "%s", "GET / HTTP/1.0\r\nHost: aaa\r\nConnection: keep-alive\r\n\r\n") if err != nil { - t.Fatalf("error when writing request: %s", err) + t.Fatalf("error when writing request: %v", err) } _, err = fmt.Fprintf(conn, "%s", "GET /close HTTP/1.0\r\nHost: aaa\r\nConnection: keep-alive\r\n\r\n") if err != nil { - t.Fatalf("error when writing request: %s", err) + t.Fatalf("error when writing request: %v", err) } br := bufio.NewReader(conn) var resp Response if err = resp.Read(br); err != nil { - t.Fatalf("error when reading response: %s", err) + t.Fatalf("error when reading response: %v", err) } if resp.ConnectionClose() { t.Fatal("response mustn't have 'Connection: close' header") } if err = resp.Read(br); err != nil { - t.Fatalf("error when reading response: %s", err) + t.Fatalf("error when reading response: %v", err) } if !resp.ConnectionClose() { t.Fatal("response must have 'Connection: close' header") @@ -1586,7 +1586,7 @@ func TestServerHTTP10ConnectionKeepAlive(t *testing.T) { go func() { tail, err := ioutil.ReadAll(br) if err != nil { - t.Errorf("error when reading tail: %s", err) + t.Errorf("error when reading tail: %v", err) } if len(tail) > 0 { t.Errorf("unexpected non-zero tail %q", tail) @@ -1601,11 +1601,11 @@ func TestServerHTTP10ConnectionKeepAlive(t *testing.T) { } if err = conn.Close(); err != nil { - t.Fatalf("error when closing the connection: %s", err) + t.Fatalf("error when closing the connection: %v", err) } if err = ln.Close(); err != nil { - t.Fatalf("error when closing listener: %s", err) + t.Fatalf("error when closing listener: %v", err) } select { @@ -1633,24 +1633,24 @@ func TestServerHTTP10ConnectionClose(t *testing.T) { ctx.Response.Header.Set(HeaderConnection, "keep-alive") }) if err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } close(ch) }() conn, err := ln.Dial() if err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } _, err = fmt.Fprintf(conn, "%s", "GET / HTTP/1.0\r\nHost: aaa\r\n\r\n") if err != nil { - t.Fatalf("error when writing request: %s", err) + t.Fatalf("error when writing request: %v", err) } br := bufio.NewReader(conn) var resp Response if err = resp.Read(br); err != nil { - t.Fatalf("error when reading response: %s", err) + t.Fatalf("error when reading response: %v", err) } if !resp.ConnectionClose() { @@ -1661,7 +1661,7 @@ func TestServerHTTP10ConnectionClose(t *testing.T) { go func() { tail, err := ioutil.ReadAll(br) if err != nil { - t.Errorf("error when reading tail: %s", err) + t.Errorf("error when reading tail: %v", err) } if len(tail) > 0 { t.Errorf("unexpected non-zero tail %q", tail) @@ -1676,11 +1676,11 @@ func TestServerHTTP10ConnectionClose(t *testing.T) { } if err = conn.Close(); err != nil { - t.Fatalf("error when closing the connection: %s", err) + t.Fatalf("error when closing the connection: %v", err) } if err = ln.Close(); err != nil { - t.Fatalf("error when closing listener: %s", err) + t.Fatalf("error when closing listener: %v", err) } select { @@ -1773,14 +1773,14 @@ func TestServerHeadRequest(t *testing.T) { rw.r.WriteString("HEAD /foobar HTTP/1.1\r\nHost: aaa.com\r\n\r\n") if err := s.ServeConn(rw); err != nil { - t.Fatalf("Unexpected error from serveConn: %s", err) + t.Fatalf("Unexpected error from serveConn: %v", err) } br := bufio.NewReader(&rw.w) var resp Response resp.SkipBody = true if err := resp.Read(br); err != nil { - t.Fatalf("Unexpected error when parsing response: %s", err) + t.Fatalf("Unexpected error when parsing response: %v", err) } if resp.Header.StatusCode() != StatusOK { t.Fatalf("unexpected status code: %d. Expecting %d", resp.Header.StatusCode(), StatusOK) @@ -1797,7 +1797,7 @@ func TestServerHeadRequest(t *testing.T) { data, err := ioutil.ReadAll(br) if err != nil { - t.Fatalf("Unexpected error when reading remaining data: %s", err) + t.Fatalf("Unexpected error when reading remaining data: %v", err) } if len(data) > 0 { t.Fatalf("unexpected remaining data %q", data) @@ -1830,7 +1830,7 @@ func TestServerExpect100Continue(t *testing.T) { rw.r.WriteString("POST /foo HTTP/1.1\r\nHost: gle.com\r\nExpect: 100-continue\r\nContent-Length: 5\r\nContent-Type: a/b\r\n\r\n12345") if err := s.ServeConn(rw); err != nil { - t.Fatalf("Unexpected error from serveConn: %s", err) + t.Fatalf("Unexpected error from serveConn: %v", err) } br := bufio.NewReader(&rw.w) @@ -1838,7 +1838,7 @@ func TestServerExpect100Continue(t *testing.T) { data, err := ioutil.ReadAll(br) if err != nil { - t.Fatalf("Unexpected error when reading remaining data: %s", err) + t.Fatalf("Unexpected error when reading remaining data: %v", err) } if len(data) > 0 { t.Fatalf("unexpected remaining data %q", data) @@ -1886,7 +1886,7 @@ func TestServerContinueHandler(t *testing.T) { sendRequest := func(rw *readWriter, expectedStatusCode int, expectedResponse string) { if err := s.ServeConn(rw); err != nil { - t.Fatalf("Unexpected error from serveConn: %s", err) + t.Fatalf("Unexpected error from serveConn: %v", err) } br := bufio.NewReader(&rw.w) @@ -1894,7 +1894,7 @@ func TestServerContinueHandler(t *testing.T) { data, err := ioutil.ReadAll(br) if err != nil { - t.Fatalf("Unexpected error when reading remaining data: %s", err) + t.Fatalf("Unexpected error when reading remaining data: %v", err) } if len(data) > 0 { t.Fatalf("unexpected remaining data %q", data) @@ -1941,7 +1941,7 @@ func TestCompressHandler(t *testing.T) { s := ctx.Response.String() br := bufio.NewReader(bytes.NewBufferString(s)) if err := resp.Read(br); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } ce := resp.Header.Peek(HeaderContentEncoding) if string(ce) != "" { @@ -1961,7 +1961,7 @@ func TestCompressHandler(t *testing.T) { s = ctx.Response.String() br = bufio.NewReader(bytes.NewBufferString(s)) if err := resp.Read(br); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } ce = resp.Header.Peek(HeaderContentEncoding) if string(ce) != "gzip" { @@ -1969,7 +1969,7 @@ func TestCompressHandler(t *testing.T) { } body, err := resp.BodyGunzip() if err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if string(body) != expectedBody { t.Fatalf("unexpected body %q. Expecting %q", body, expectedBody) @@ -1984,7 +1984,7 @@ func TestCompressHandler(t *testing.T) { s = ctx.Response.String() br = bufio.NewReader(bytes.NewBufferString(s)) if err := resp.Read(br); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } ce = resp.Header.Peek(HeaderContentEncoding) if string(ce) != "gzip" { @@ -1992,7 +1992,7 @@ func TestCompressHandler(t *testing.T) { } body, err = resp.BodyGunzip() if err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if string(body) != expectedBody { t.Fatalf("unexpected body %q. Expecting %q", body, expectedBody) @@ -2007,7 +2007,7 @@ func TestCompressHandler(t *testing.T) { s = ctx.Response.String() br = bufio.NewReader(bytes.NewBufferString(s)) if err := resp.Read(br); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } ce = resp.Header.Peek(HeaderContentEncoding) if string(ce) != "deflate" { @@ -2015,7 +2015,7 @@ func TestCompressHandler(t *testing.T) { } body, err = resp.BodyInflate() if err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if string(body) != expectedBody { t.Fatalf("unexpected body %q. Expecting %q", body, expectedBody) @@ -2028,14 +2028,14 @@ func TestRequestCtxWriteString(t *testing.T) { var ctx RequestCtx n, err := ctx.WriteString("foo") if err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if n != 3 { t.Fatalf("unexpected n %d. Expecting 3", n) } n, err = ctx.WriteString("привет") if err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if n != 12 { t.Fatalf("unexpected n=%d. Expecting 12", n) @@ -2073,7 +2073,7 @@ func TestServeConnKeepRequestAndResponseUntilResetUserValues(t *testing.T) { }}) }) if err != nil { - t.Errorf("unexpected error in ServeConn: %s", err) + t.Errorf("unexpected error in ServeConn: %v", err) } close(ch) }() @@ -2085,11 +2085,11 @@ func TestServeConnKeepRequestAndResponseUntilResetUserValues(t *testing.T) { } if resultReqStr != reqStr { - t.Errorf("Request == %s, want %s", resultReqStr, reqStr) + t.Errorf("Request == %q, want %q", resultReqStr, reqStr) } if !respRegex.MatchString(resultRespStr) { - t.Errorf("Response == %s, want regex %s", resultRespStr, respRegex) + t.Errorf("Response == %q, want regex %q", resultRespStr, respRegex) } } @@ -2129,7 +2129,7 @@ func TestServerErrorHandler(t *testing.T) { go func() { err := s.ServeConn(rw) if err != nil && !errors.Is(err, ErrBodyTooLarge) { - t.Errorf("unexpected error in ServeConn: %s", err) + t.Errorf("unexpected error in ServeConn: %v", err) } close(ch) }() @@ -2141,11 +2141,11 @@ func TestServerErrorHandler(t *testing.T) { } if resultReqStr != expectedReqStr { - t.Errorf("[iter: %d] Request == %s, want %s", i, resultReqStr, reqStr) + t.Errorf("[iter: %d] Request == %q, want %s", i, resultReqStr, reqStr) } if !respRegex.MatchString(resultRespStr) { - t.Errorf("[iter: %d] Response == %s, want regex %s", i, resultRespStr, respRegex) + t.Errorf("[iter: %d] Response == %q, want regex %q", i, resultRespStr, respRegex) } } } @@ -2170,7 +2170,7 @@ func TestServeConnHijackResetUserValues(t *testing.T) { ) }) if err != nil { - t.Errorf("unexpected error in ServeConn: %s", err) + t.Errorf("unexpected error in ServeConn: %v", err) } }() @@ -2198,7 +2198,7 @@ func TestServeConnNonHTTP11KeepAlive(t *testing.T) { ctx.SuccessString("aaa/bbb", "foobar") }) if err != nil { - t.Errorf("unexpected error in ServeConn: %s", err) + t.Errorf("unexpected error in ServeConn: %v", err) } close(ch) }() @@ -2215,7 +2215,7 @@ func TestServeConnNonHTTP11KeepAlive(t *testing.T) { // verify the first response if err := resp.Read(br); err != nil { - t.Fatalf("Unexpected error when parsing response: %s", err) + t.Fatalf("Unexpected error when parsing response: %v", err) } if string(resp.Header.Peek(HeaderConnection)) != "keep-alive" { t.Fatalf("unexpected Connection header %q. Expecting %q", resp.Header.Peek(HeaderConnection), "keep-alive") @@ -2226,7 +2226,7 @@ func TestServeConnNonHTTP11KeepAlive(t *testing.T) { // verify the second response if err := resp.Read(br); err != nil { - t.Fatalf("Unexpected error when parsing response: %s", err) + t.Fatalf("Unexpected error when parsing response: %v", err) } if string(resp.Header.Peek(HeaderConnection)) != "close" { t.Fatalf("unexpected Connection header %q. Expecting %q", resp.Header.Peek(HeaderConnection), "close") @@ -2237,7 +2237,7 @@ func TestServeConnNonHTTP11KeepAlive(t *testing.T) { data, err := ioutil.ReadAll(br) if err != nil { - t.Fatalf("Unexpected error when reading remaining data: %s", err) + t.Fatalf("Unexpected error when reading remaining data: %v", err) } if len(data) != 0 { t.Fatalf("Unexpected data read after responses %q", data) @@ -2261,7 +2261,7 @@ func TestRequestCtxSetBodyStreamWriter(t *testing.T) { ctx.SetBodyStreamWriter(func(w *bufio.Writer) { fmt.Fprintf(w, "body writer line 1\n") if err := w.Flush(); err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } fmt.Fprintf(w, "body writer line 2\n") }) @@ -2274,7 +2274,7 @@ func TestRequestCtxSetBodyStreamWriter(t *testing.T) { br := bufio.NewReader(bytes.NewBufferString(s)) var resp Response if err := resp.Read(br); err != nil { - t.Fatalf("Error when reading response: %s", err) + t.Fatalf("Error when reading response: %v", err) } body := string(resp.Body()) @@ -2324,7 +2324,7 @@ func TestRequestCtxSendFileNotModified(t *testing.T) { filePath := "./server_test.go" lastModified, err := FileLastModified(filePath) if err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } ctx.Request.Header.Set("If-Modified-Since", string(AppendHTTPDate(nil, lastModified))) @@ -2335,7 +2335,7 @@ func TestRequestCtxSendFileNotModified(t *testing.T) { var resp Response br := bufio.NewReader(bytes.NewBufferString(s)) if err := resp.Read(br); err != nil { - t.Fatalf("error when reading response: %s", err) + t.Fatalf("error when reading response: %v", err) } if resp.StatusCode() != StatusNotModified { t.Fatalf("unexpected status code: %d. Expecting %d", resp.StatusCode(), StatusNotModified) @@ -2355,7 +2355,7 @@ func TestRequestCtxSendFileModified(t *testing.T) { filePath := "./server_test.go" lastModified, err := FileLastModified(filePath) if err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } lastModified = lastModified.Add(-time.Hour) ctx.Request.Header.Set("If-Modified-Since", string(AppendHTTPDate(nil, lastModified))) @@ -2367,7 +2367,7 @@ func TestRequestCtxSendFileModified(t *testing.T) { var resp Response br := bufio.NewReader(bytes.NewBufferString(s)) if err := resp.Read(br); err != nil { - t.Fatalf("error when reading response: %s", err) + t.Fatalf("error when reading response: %v", err) } if resp.StatusCode() != StatusOK { t.Fatalf("unexpected status code: %d. Expecting %d", resp.StatusCode(), StatusOK) @@ -2375,12 +2375,12 @@ func TestRequestCtxSendFileModified(t *testing.T) { f, err := os.Open(filePath) if err != nil { - t.Fatalf("cannot open file: %s", err) + t.Fatalf("cannot open file: %v", err) } body, err := ioutil.ReadAll(f) f.Close() if err != nil { - t.Fatalf("error when reading file: %s", err) + t.Fatalf("error when reading file: %v", err) } if !bytes.Equal(resp.Body(), body) { @@ -2401,16 +2401,16 @@ func TestRequestCtxSendFile(t *testing.T) { w := &bytes.Buffer{} bw := bufio.NewWriter(w) if err := ctx.Response.Write(bw); err != nil { - t.Fatalf("error when writing response: %s", err) + t.Fatalf("error when writing response: %v", err) } if err := bw.Flush(); err != nil { - t.Fatalf("error when flushing response: %s", err) + t.Fatalf("error when flushing response: %v", err) } var resp Response br := bufio.NewReader(w) if err := resp.Read(br); err != nil { - t.Fatalf("error when reading response: %s", err) + t.Fatalf("error when reading response: %v", err) } if resp.StatusCode() != StatusOK { t.Fatalf("unexpected status code: %d. Expecting %d", resp.StatusCode(), StatusOK) @@ -2418,12 +2418,12 @@ func TestRequestCtxSendFile(t *testing.T) { f, err := os.Open(filePath) if err != nil { - t.Fatalf("cannot open file: %s", err) + t.Fatalf("cannot open file: %v", err) } body, err := ioutil.ReadAll(f) f.Close() if err != nil { - t.Fatalf("error when reading file: %s", err) + t.Fatalf("error when reading file: %v", err) } if !bytes.Equal(resp.Body(), body) { @@ -2469,13 +2469,13 @@ func testRequestCtxHijack(t *testing.T, s *Server) { continue } - t.Errorf("unexpected read error: %s", err) + t.Errorf("unexpected read error: %v", err) } else if n != 1 { t.Errorf("unexpected number of bytes read: %d. Expecting 1", n) } if _, err = c.Write(b); err != nil { - t.Errorf("unexpected error when writing data: %s", err) + t.Errorf("unexpected error when writing data: %v", err) } } }) @@ -2500,7 +2500,7 @@ func testRequestCtxHijack(t *testing.T, s *Server) { rw.r.WriteString(hijackedString) if err := s.ServeConn(rw); err != nil { - t.Errorf("[iter: %d] Unexpected error from serveConn: %s", id, err) + t.Errorf("[iter: %d] Unexpected error from serveConn: %v", id, err) } hijackStartCh <- &hijackSignal{id, rw} @@ -2523,13 +2523,13 @@ func testRequestCtxHijack(t *testing.T, s *Server) { data, err := ioutil.ReadAll(br) if err != nil { - t.Errorf("[iter: %d] Unexpected error when reading remaining data: %s", id, err) + t.Errorf("[iter: %d] Unexpected error when reading remaining data: %v", id, err) return } if string(data) != hijackedString { t.Errorf( - "[iter: %d] Unexpected response %s. Expecting %s", + "[iter: %d] Unexpected response %q. Expecting %q", id, data, hijackedString, ) @@ -2576,13 +2576,13 @@ func TestRequestCtxHijackNoResponse(t *testing.T) { rw.r.WriteString("GET /foo HTTP/1.1\r\nHost: google.com\r\nContent-Length: 0\r\n\r\n") if err := s.ServeConn(rw); err != nil { - t.Fatalf("Unexpected error from serveConn: %s", err) + t.Fatalf("Unexpected error from serveConn: %v", err) } select { case err := <-hijackDone: if err != nil { - t.Fatalf("Unexpected error from hijack: %s", err) + t.Fatalf("Unexpected error from hijack: %v", err) } case <-time.After(100 * time.Millisecond): t.Fatal("timeout") @@ -2607,7 +2607,7 @@ func TestRequestCtxNoHijackNoResponse(t *testing.T) { rw.r.WriteString("GET /foo HTTP/1.1\r\nHost: google.com\r\nContent-Length: 0\r\n\r\n") if err := s.ServeConn(rw); err != nil { - t.Fatalf("Unexpected error from serveConn: %s", err) + t.Fatalf("Unexpected error from serveConn: %v", err) } bf := bufio.NewReader( @@ -2654,7 +2654,7 @@ func TestTimeoutHandlerSuccess(t *testing.T) { serverCh := make(chan struct{}) go func() { if err := s.Serve(ln); err != nil { - t.Errorf("unexepcted error: %s", err) + t.Errorf("unexepcted error: %v", err) } close(serverCh) }() @@ -2665,10 +2665,10 @@ func TestTimeoutHandlerSuccess(t *testing.T) { go func() { conn, err := ln.Dial() if err != nil { - t.Errorf("unexepcted error: %s", err) + t.Errorf("unexepcted error: %v", err) } if _, err = conn.Write([]byte("GET / HTTP/1.1\r\nHost: google.com\r\n\r\n")); err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } br := bufio.NewReader(conn) verifyResponse(t, br, StatusOK, "aaa/bbb", "real response") @@ -2685,7 +2685,7 @@ func TestTimeoutHandlerSuccess(t *testing.T) { } if err := ln.Close(); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } select { @@ -2712,7 +2712,7 @@ func TestTimeoutHandlerTimeout(t *testing.T) { serverCh := make(chan struct{}) go func() { if err := s.Serve(ln); err != nil { - t.Errorf("unexepcted error: %s", err) + t.Errorf("unexepcted error: %v", err) } close(serverCh) }() @@ -2723,10 +2723,10 @@ func TestTimeoutHandlerTimeout(t *testing.T) { go func() { conn, err := ln.Dial() if err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } if _, err = conn.Write([]byte("GET / HTTP/1.1\r\nHost: google.com\r\n\r\n")); err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } br := bufio.NewReader(conn) verifyResponse(t, br, StatusRequestTimeout, string(defaultContentType), "timeout!!!") @@ -2752,7 +2752,7 @@ func TestTimeoutHandlerTimeout(t *testing.T) { } if err := ln.Close(); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } select { @@ -2777,27 +2777,27 @@ func TestTimeoutHandlerTimeoutReuse(t *testing.T) { } go func() { if err := s.Serve(ln); err != nil { - t.Errorf("unexepcted error: %s", err) + t.Errorf("unexepcted error: %v", err) } }() conn, err := ln.Dial() if err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } br := bufio.NewReader(conn) if _, err = conn.Write([]byte("GET /timeout HTTP/1.1\r\nHost: google.com\r\n\r\n")); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } verifyResponse(t, br, StatusRequestTimeout, string(defaultContentType), "timeout!!!") if _, err = conn.Write([]byte("GET / HTTP/1.1\r\nHost: google.com\r\n\r\n")); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } verifyResponse(t, br, StatusOK, string(defaultContentType), "ok") if err := ln.Close(); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } } @@ -2829,7 +2829,7 @@ func TestServerGetOnly(t *testing.T) { t.Fatal("expecting error") } if err != ErrGetOnly { - t.Fatalf("Unexpected error from serveConn: %s. Expecting %s", err, ErrGetOnly) + t.Fatalf("Unexpected error from serveConn: %v. Expecting %v", err, ErrGetOnly) } case <-time.After(100 * time.Millisecond): t.Fatal("timeout") @@ -2838,7 +2838,7 @@ func TestServerGetOnly(t *testing.T) { br := bufio.NewReader(&rw.w) var resp Response if err := resp.Read(br); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } statusCode := resp.StatusCode() if statusCode != StatusBadRequest { @@ -2877,7 +2877,7 @@ func TestServerTimeoutErrorWithResponse(t *testing.T) { rw.r.WriteString("GET /bar HTTP/1.1\r\nHost: google.com\r\n\r\n") if err := s.ServeConn(rw); err != nil { - t.Fatalf("Unexpected error from serveConn: %s", err) + t.Fatalf("Unexpected error from serveConn: %v", err) } br := bufio.NewReader(&rw.w) @@ -2886,7 +2886,7 @@ func TestServerTimeoutErrorWithResponse(t *testing.T) { data, err := ioutil.ReadAll(br) if err != nil { - t.Fatalf("Unexpected error when reading remaining data: %s", err) + t.Fatalf("Unexpected error when reading remaining data: %v", err) } if len(data) != 0 { t.Fatalf("Unexpected data read after the first response %q. Expecting %q", data, "") @@ -2911,7 +2911,7 @@ func TestServerTimeoutErrorWithCode(t *testing.T) { rw.r.WriteString("GET /foo HTTP/1.1\r\nHost: google.com\r\n\r\n") if err := s.ServeConn(rw); err != nil { - t.Fatalf("Unexpected error from serveConn: %s", err) + t.Fatalf("Unexpected error from serveConn: %v", err) } br := bufio.NewReader(&rw.w) @@ -2920,7 +2920,7 @@ func TestServerTimeoutErrorWithCode(t *testing.T) { data, err := ioutil.ReadAll(br) if err != nil { - t.Fatalf("Unexpected error when reading remaining data: %s", err) + t.Fatalf("Unexpected error when reading remaining data: %v", err) } if len(data) != 0 { t.Fatalf("Unexpected data read after the first response %q. Expecting %q", data, "") @@ -2945,7 +2945,7 @@ func TestServerTimeoutError(t *testing.T) { rw.r.WriteString("GET /foo HTTP/1.1\r\nHost: google.com\r\n\r\n") if err := s.ServeConn(rw); err != nil { - t.Fatalf("Unexpected error from serveConn: %s", err) + t.Fatalf("Unexpected error from serveConn: %v", err) } br := bufio.NewReader(&rw.w) @@ -2954,7 +2954,7 @@ func TestServerTimeoutError(t *testing.T) { data, err := ioutil.ReadAll(br) if err != nil { - t.Fatalf("Unexpected error when reading remaining data: %s", err) + t.Fatalf("Unexpected error when reading remaining data: %v", err) } if len(data) != 0 { t.Fatalf("Unexpected data read after the first response %q. Expecting %q", data, "") @@ -2974,13 +2974,13 @@ func TestServerMaxRequestsPerConn(t *testing.T) { rw.r.WriteString("GET /bar HTTP/1.1\r\nHost: aaa.com\r\n\r\n") if err := s.ServeConn(rw); err != nil { - t.Fatalf("Unexpected error from serveConn: %s", err) + t.Fatalf("Unexpected error from serveConn: %v", err) } br := bufio.NewReader(&rw.w) var resp Response if err := resp.Read(br); err != nil { - t.Fatalf("Unexpected error when parsing response: %s", err) + t.Fatalf("Unexpected error when parsing response: %v", err) } if !resp.ConnectionClose() { t.Fatal("Response must have 'connection: close' header") @@ -2989,7 +2989,7 @@ func TestServerMaxRequestsPerConn(t *testing.T) { data, err := ioutil.ReadAll(br) if err != nil { - t.Fatalf("Unexpected error when reading remaining data: %s", err) + t.Fatalf("Unexpected error when reading remaining data: %v", err) } if len(data) != 0 { t.Fatalf("Unexpected data read after the first response %q. Expecting %q", data, "") @@ -3010,14 +3010,14 @@ func TestServerConnectionClose(t *testing.T) { rw.r.WriteString("GET /must/be/ignored HTTP/1.1\r\nHost: aaa.com\r\n\r\n") if err := s.ServeConn(rw); err != nil { - t.Fatalf("Unexpected error from serveConn: %s", err) + t.Fatalf("Unexpected error from serveConn: %v", err) } br := bufio.NewReader(&rw.w) var resp Response if err := resp.Read(br); err != nil { - t.Fatalf("Unexpected error when parsing response: %s", err) + t.Fatalf("Unexpected error when parsing response: %v", err) } if !resp.ConnectionClose() { t.Fatal("expecting Connection: close header") @@ -3025,7 +3025,7 @@ func TestServerConnectionClose(t *testing.T) { data, err := ioutil.ReadAll(br) if err != nil { - t.Fatalf("Unexpected error when reading remaining data: %s", err) + t.Fatalf("Unexpected error when reading remaining data: %v", err) } if len(data) != 0 { t.Fatalf("Unexpected data read after the first response %q. Expecting %q", data, "") @@ -3047,7 +3047,7 @@ func TestServerRequestNumAndTime(t *testing.T) { connT = ctx.ConnTime() } if ctx.ConnTime() != connT { - t.Errorf("unexpected serve conn time: %s. Expecting %s", ctx.ConnTime(), connT) + t.Errorf("unexpected serve conn time: %q. Expecting %q", ctx.ConnTime(), connT) } }, } @@ -3058,7 +3058,7 @@ func TestServerRequestNumAndTime(t *testing.T) { rw.r.WriteString("GET /baz HTTP/1.1\r\nHost: google.com\r\n\r\n") if err := s.ServeConn(rw); err != nil { - t.Fatalf("Unexpected error from serveConn: %s", err) + t.Fatalf("Unexpected error from serveConn: %v", err) } if n != 3 { @@ -3082,7 +3082,7 @@ func TestServerEmptyResponse(t *testing.T) { rw.r.WriteString("GET /foo1 HTTP/1.1\r\nHost: google.com\r\n\r\n") if err := s.ServeConn(rw); err != nil { - t.Fatalf("Unexpected error from serveConn: %s", err) + t.Fatalf("Unexpected error from serveConn: %v", err) } br := bufio.NewReader(&rw.w) @@ -3120,7 +3120,7 @@ func TestServerLogger(t *testing.T) { globalConnID = 0 if err := s.ServeConn(rwx); err != nil { - t.Fatalf("Unexpected error from serveConn: %s", err) + t.Fatalf("Unexpected error from serveConn: %v", err) } br := bufio.NewReader(&rw.w) @@ -3160,7 +3160,7 @@ func TestServerRemoteAddr(t *testing.T) { } if err := s.ServeConn(rwx); err != nil { - t.Fatalf("Unexpected error from serveConn: %s", err) + t.Fatalf("Unexpected error from serveConn: %v", err) } br := bufio.NewReader(&rw.w) @@ -3200,7 +3200,7 @@ func TestServerCustomRemoteAddr(t *testing.T) { } if err := s.ServeConn(rwx); err != nil { - t.Fatalf("Unexpected error from serveConn: %s", err) + t.Fatalf("Unexpected error from serveConn: %v", err) } br := bufio.NewReader(&rw.w) @@ -3246,13 +3246,13 @@ func TestServerConnError(t *testing.T) { rw.r.WriteString("GET /foo/bar?baz HTTP/1.1\r\nHost: google.com\r\n\r\n") if err := s.ServeConn(rw); err != nil { - t.Fatalf("Unexpected error from serveConn: %s", err) + t.Fatalf("Unexpected error from serveConn: %v", err) } br := bufio.NewReader(&rw.w) var resp Response if err := resp.Read(br); err != nil { - t.Fatalf("Unexpected error when reading response: %s", err) + t.Fatalf("Unexpected error when reading response: %v", err) } if resp.Header.StatusCode() != 423 { t.Fatalf("Unexpected status code %d. Expected %d", resp.Header.StatusCode(), 423) @@ -3282,7 +3282,7 @@ func TestServeConnSingleRequest(t *testing.T) { rw.r.WriteString("GET /foo/bar?baz HTTP/1.1\r\nHost: google.com\r\n\r\n") if err := s.ServeConn(rw); err != nil { - t.Fatalf("Unexpected error from serveConn: %s", err) + t.Fatalf("Unexpected error from serveConn: %v", err) } br := bufio.NewReader(&rw.w) @@ -3303,7 +3303,7 @@ func TestServeConnMultiRequests(t *testing.T) { rw.r.WriteString("GET /foo/bar?baz HTTP/1.1\r\nHost: google.com\r\n\r\nGET /abc HTTP/1.1\r\nHost: foobar.com\r\n\r\n") if err := s.ServeConn(rw); err != nil { - t.Fatalf("Unexpected error from serveConn: %s", err) + t.Fatalf("Unexpected error from serveConn: %v", err) } br := bufio.NewReader(&rw.w) @@ -3324,7 +3324,7 @@ func TestShutdown(t *testing.T) { serveCh := make(chan struct{}) go func() { if err := s.Serve(ln); err != nil { - t.Errorf("unexepcted error: %s", err) + t.Errorf("unexepcted error: %v", err) } _, err := ln.Dial() if err == nil { @@ -3336,10 +3336,10 @@ func TestShutdown(t *testing.T) { go func() { conn, err := ln.Dial() if err != nil { - t.Errorf("unexepcted error: %s", err) + t.Errorf("unexepcted error: %v", err) } if _, err = conn.Write([]byte("GET / HTTP/1.1\r\nHost: google.com\r\n\r\n")); err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } br := bufio.NewReader(conn) resp := verifyResponse(t, br, StatusOK, "aaa/bbb", "real response") @@ -3350,7 +3350,7 @@ func TestShutdown(t *testing.T) { shutdownCh := make(chan struct{}) go func() { if err := s.Shutdown(); err != nil { - t.Errorf("unexepcted error: %s", err) + t.Errorf("unexepcted error: %v", err) } shutdownCh <- struct{}{} }() @@ -3386,7 +3386,7 @@ func TestCloseOnShutdown(t *testing.T) { serveCh := make(chan struct{}) go func() { if err := s.Serve(ln); err != nil { - t.Errorf("unexepcted error: %s", err) + t.Errorf("unexepcted error: %v", err) } _, err := ln.Dial() if err == nil { @@ -3398,10 +3398,10 @@ func TestCloseOnShutdown(t *testing.T) { go func() { conn, err := ln.Dial() if err != nil { - t.Errorf("unexepcted error: %s", err) + t.Errorf("unexepcted error: %v", err) } if _, err = conn.Write([]byte("GET / HTTP/1.1\r\nHost: google.com\r\n\r\n")); err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } br := bufio.NewReader(conn) resp := verifyResponse(t, br, StatusOK, "aaa/bbb", "real response") @@ -3412,7 +3412,7 @@ func TestCloseOnShutdown(t *testing.T) { shutdownCh := make(chan struct{}) go func() { if err := s.Shutdown(); err != nil { - t.Errorf("unexepcted error: %s", err) + t.Errorf("unexepcted error: %v", err) } shutdownCh <- struct{}{} }() @@ -3447,38 +3447,38 @@ func TestShutdownReuse(t *testing.T) { } go func() { if err := s.Serve(ln); err != nil { - t.Errorf("unexepcted error: %s", err) + t.Errorf("unexepcted error: %v", err) } }() conn, err := ln.Dial() if err != nil { - t.Fatalf("unexepcted error: %s", err) + t.Fatalf("unexepcted error: %v", err) } if _, err = conn.Write([]byte("GET / HTTP/1.1\r\nHost: google.com\r\n\r\n")); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } br := bufio.NewReader(conn) verifyResponse(t, br, StatusOK, "aaa/bbb", "real response") if err := s.Shutdown(); err != nil { - t.Fatalf("unexepcted error: %s", err) + t.Fatalf("unexepcted error: %v", err) } ln = fasthttputil.NewInmemoryListener() go func() { if err := s.Serve(ln); err != nil { - t.Errorf("unexepcted error: %s", err) + t.Errorf("unexepcted error: %v", err) } }() conn, err = ln.Dial() if err != nil { - t.Fatalf("unexepcted error: %s", err) + t.Fatalf("unexepcted error: %v", err) } if _, err = conn.Write([]byte("GET / HTTP/1.1\r\nHost: google.com\r\n\r\n")); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } br = bufio.NewReader(conn) verifyResponse(t, br, StatusOK, "aaa/bbb", "real response") if err := s.Shutdown(); err != nil { - t.Fatalf("unexepcted error: %s", err) + t.Fatalf("unexepcted error: %v", err) } } @@ -3494,21 +3494,21 @@ func TestShutdownDone(t *testing.T) { } go func() { if err := s.Serve(ln); err != nil { - t.Errorf("unexepcted error: %s", err) + t.Errorf("unexepcted error: %v", err) } }() conn, err := ln.Dial() if err != nil { - t.Fatalf("unexepcted error: %s", err) + t.Fatalf("unexepcted error: %v", err) } if _, err = conn.Write([]byte("GET / HTTP/1.1\r\nHost: google.com\r\n\r\n")); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } go func() { // Shutdown won't return if the connection doesn't close, // which doesn't happen until we read the response. if err := s.Shutdown(); err != nil { - t.Errorf("unexepcted error: %s", err) + t.Errorf("unexepcted error: %v", err) } }() // We can only reach this point and get a valid response @@ -3533,21 +3533,21 @@ func TestShutdownErr(t *testing.T) { go func() { if err := s.Serve(ln); err != nil { - t.Errorf("unexepcted error: %s", err) + t.Errorf("unexepcted error: %v", err) } }() conn, err := ln.Dial() if err != nil { - t.Fatalf("unexepcted error: %s", err) + t.Fatalf("unexepcted error: %v", err) } if _, err = conn.Write([]byte("GET / HTTP/1.1\r\nHost: google.com\r\n\r\n")); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } go func() { // Shutdown won't return if the connection doesn't close, // which doesn't happen until we read the response. if err := s.Shutdown(); err != nil { - t.Errorf("unexepcted error: %s", err) + t.Errorf("unexepcted error: %v", err) } }() // We can only reach this point and get a valid response @@ -3567,16 +3567,16 @@ func TestShutdownCloseIdleConns(t *testing.T) { } go func() { if err := s.Serve(ln); err != nil { - t.Errorf("unexepcted error: %s", err) + t.Errorf("unexepcted error: %v", err) } }() conn, err := ln.Dial() if err != nil { - t.Fatalf("unexepcted error: %s", err) + t.Fatalf("unexepcted error: %v", err) } if _, err = conn.Write([]byte("GET / HTTP/1.1\r\nHost: google.com\r\n\r\n")); err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } br := bufio.NewReader(conn) verifyResponse(t, br, StatusOK, "aaa/bbb", "real response") @@ -3592,7 +3592,7 @@ func TestShutdownCloseIdleConns(t *testing.T) { t.Fatal("idle connections not closed on shutdown") case err = <-shutdownErr: if err != nil { - t.Errorf("unexepcted error: %s", err) + t.Errorf("unexepcted error: %v", err) } } } @@ -3611,31 +3611,31 @@ func TestMultipleServe(t *testing.T) { go func() { if err := s.Serve(ln1); err != nil { - t.Errorf("unexepcted error: %s", err) + t.Errorf("unexepcted error: %v", err) } }() go func() { if err := s.Serve(ln2); err != nil { - t.Errorf("unexepcted error: %s", err) + t.Errorf("unexepcted error: %v", err) } }() conn, err := ln1.Dial() if err != nil { - t.Fatalf("unexepcted error: %s", err) + t.Fatalf("unexepcted error: %v", err) } if _, err = conn.Write([]byte("GET / HTTP/1.1\r\nHost: google.com\r\n\r\n")); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } br := bufio.NewReader(conn) verifyResponse(t, br, StatusOK, "aaa/bbb", "real response") conn, err = ln2.Dial() if err != nil { - t.Fatalf("unexepcted error: %s", err) + t.Fatalf("unexepcted error: %v", err) } if _, err = conn.Write([]byte("GET / HTTP/1.1\r\nHost: google.com\r\n\r\n")); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } br = bufio.NewReader(conn) verifyResponse(t, br, StatusOK, "aaa/bbb", "real response") @@ -3662,7 +3662,7 @@ func TestMaxBodySizePerRequest(t *testing.T) { rw.r.WriteString(fmt.Sprintf("POST /foo2 HTTP/1.1\r\nHost: aaa.com\r\nContent-Length: %d\r\nContent-Type: aa\r\n\r\n%s", (5<<10)+1, strings.Repeat("a", (5<<10)+1))) if err := s.ServeConn(rw); err != ErrBodyTooLarge { - t.Fatalf("Unexpected error from serveConn: %s", err) + t.Fatalf("Unexpected error from serveConn: %v", err) } } @@ -3713,8 +3713,8 @@ func TestStreamRequestBody(t *testing.T) { select { case err := <-ch: - if err == nil || err.Error() != "connection closed" { // fasthttputil.errConnectionClosed is private so do a string match. - t.Fatalf("Unexpected error from serveConn: %s", err) + if err != nil && err.Error() != "connection closed" { // fasthttputil.errConnectionClosed is private so do a string match. + t.Fatalf("Unexpected error from serveConn: %v", err) } case <-time.After(500 * time.Millisecond): t.Fatal("part2 timeout") @@ -3806,7 +3806,7 @@ func TestStreamBodyRequestContentLength(t *testing.T) { select { case err := <-ch: if err == nil || err.Error() != "connection closed" { // fasthttputil.errConnectionClosed is private so do a string match. - t.Fatalf("Unexpected error from serveConn: %s", err) + t.Fatalf("Unexpected error from serveConn: %v", err) } case <-time.After(time.Second): t.Fatal("test timeout") @@ -3816,7 +3816,7 @@ func TestStreamBodyRequestContentLength(t *testing.T) { func checkReader(t *testing.T, r io.Reader, expected string) { b := make([]byte, len(expected)) if _, err := io.ReadFull(r, b); err != nil { - t.Fatalf("Unexpected error from reader: %s", err) + t.Fatalf("Unexpected error from reader: %v", err) } if string(b) != expected { t.Fatal("incorrect request body") @@ -3863,7 +3863,7 @@ func TestMaxReadTimeoutPerRequest(t *testing.T) { select { case err := <-ch: if err == nil || err != nil && !strings.EqualFold(err.Error(), "timeout") { - t.Fatalf("Unexpected error from serveConn: %s", err) + t.Fatalf("Unexpected error from serveConn: %v", err) } case <-time.After(time.Second): t.Fatal("test timeout") @@ -3923,7 +3923,7 @@ func TestMaxWriteTimeoutPerRequest(t *testing.T) { select { case err := <-ch: if err == nil || err != nil && !strings.EqualFold(err.Error(), "timeout") { - t.Fatalf("Unexpected error from serveConn: %s", err) + t.Fatalf("Unexpected error from serveConn: %v", err) } case <-time.After(time.Second): t.Fatal("test timeout") @@ -3962,14 +3962,14 @@ func TestServerChunkedResponse(t *testing.T) { for k := range trailer { err := ctx.Response.Header.AddTrailer(k) if err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } } ctx.Response.SetBodyStreamWriter(func(w *bufio.Writer) { for i := 0; i < 3; i++ { fmt.Fprintf(w, "message %d", i) if err := w.Flush(); err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } time.Sleep(time.Second) } @@ -3986,13 +3986,13 @@ func TestServerChunkedResponse(t *testing.T) { rw.r.WriteString("GET / HTTP/1.1\r\nHost: test.com\r\n\r\n") if err := s.ServeConn(rw); err != nil { - t.Fatalf("Unexpected error from serveConn: %s", err) + t.Fatalf("Unexpected error from serveConn: %v", err) } br := bufio.NewReader(&rw.w) var resp Response if err := resp.Read(br); err != nil { - t.Fatalf("Unexpected error when reading response: %s", err) + t.Fatalf("Unexpected error when reading response: %v", err) } if resp.Header.ContentLength() != -1 { t.Fatalf("Unexpected Content-Length %d. Expected %d", resp.Header.ContentLength(), -1) @@ -4003,7 +4003,7 @@ func TestServerChunkedResponse(t *testing.T) { for k, v := range trailer { h := resp.Header.Peek(k) if !bytes.Equal(resp.Header.Peek(k), []byte(v)) { - t.Fatalf("Unexpected trailer %s. Expected %s. Got %q", k, v, h) + t.Fatalf("Unexpected trailer %q. Expected %q. Got %q", k, v, h) } } } @@ -4011,7 +4011,7 @@ func TestServerChunkedResponse(t *testing.T) { func verifyResponse(t *testing.T, r *bufio.Reader, expectedStatusCode int, expectedContentType, expectedBody string) *Response { var resp Response if err := resp.Read(r); err != nil { - t.Fatalf("Unexpected error when parsing response: %s", err) + t.Fatalf("Unexpected error when parsing response: %v", err) } if !bytes.Equal(resp.Body(), []byte(expectedBody)) { diff --git a/server_timing_test.go b/server_timing_test.go index 1e7f6f2112..0f2d4a7dbb 100644 --- a/server_timing_test.go +++ b/server_timing_test.go @@ -320,7 +320,7 @@ var ( "Referer: http://example.com/aaa?bbb=ccc\r\nCookie: foo=bar; baz=baraz; aa=aakslsdweriwereowriewroire\r\n\r\n" postRequest = fmt.Sprintf("POST /foobar?baz HTTP/1.1\r\nHost: google.com\r\nContent-Type: foo/bar\r\nContent-Length: %d\r\n"+ "User-Agent: Opera Chrome MSIE Firefox and other/1.2.34\r\nReferer: http://google.com/aaaa/bbb/ccc\r\n"+ - "Cookie: foo=bar; baz=baraz; aa=aakslsdweriwereowriewroire\r\n\r\n%s", + "Cookie: foo=bar; baz=baraz; aa=aakslsdweriwereowriewroire\r\n\r\n%q", len(fakeResponse), fakeResponse) ) @@ -329,7 +329,7 @@ func benchmarkServerGet(b *testing.B, clientsCount, requestsPerConn int) { s := &Server{ Handler: func(ctx *RequestCtx) { if !ctx.IsGet() { - b.Fatalf("Unexpected request method: %s", ctx.Method()) + b.Fatalf("Unexpected request method: %q", ctx.Method()) } ctx.Success("text/plain", fakeResponse) if requestsPerConn == 1 { @@ -348,7 +348,7 @@ func benchmarkNetHTTPServerGet(b *testing.B, clientsCount, requestsPerConn int) s := &http.Server{ Handler: http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { if req.Method != MethodGet { - b.Fatalf("Unexpected request method: %s", req.Method) + b.Fatalf("Unexpected request method: %q", req.Method) } h := w.Header() h.Set("Content-Type", "text/plain") @@ -368,7 +368,7 @@ func benchmarkServerPost(b *testing.B, clientsCount, requestsPerConn int) { s := &Server{ Handler: func(ctx *RequestCtx) { if !ctx.IsPost() { - b.Fatalf("Unexpected request method: %s", ctx.Method()) + b.Fatalf("Unexpected request method: %q", ctx.Method()) } body := ctx.Request.Body() if !bytes.Equal(body, fakeResponse) { @@ -391,11 +391,11 @@ func benchmarkNetHTTPServerPost(b *testing.B, clientsCount, requestsPerConn int) s := &http.Server{ Handler: http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { if req.Method != MethodPost { - b.Fatalf("Unexpected request method: %s", req.Method) + b.Fatalf("Unexpected request method: %q", req.Method) } body, err := ioutil.ReadAll(req.Body) if err != nil { - b.Fatalf("Unexpected error: %s", err) + b.Fatalf("Unexpected error: %v", err) } req.Body.Close() if !bytes.Equal(body, fakeResponse) { diff --git a/stackless/func_test.go b/stackless/func_test.go index 02ef2b80b3..6b2a8d5f21 100644 --- a/stackless/func_test.go +++ b/stackless/func_test.go @@ -66,7 +66,7 @@ func TestNewFuncMulti(t *testing.T) { select { case err := <-f1Done: if err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } case <-time.After(time.Second): t.Fatalf("timeout") @@ -75,7 +75,7 @@ func TestNewFuncMulti(t *testing.T) { select { case err := <-f2Done: if err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } case <-time.After(time.Second): t.Fatalf("timeout") diff --git a/stackless/writer_test.go b/stackless/writer_test.go index 35a4bdc325..7f57bbdef6 100644 --- a/stackless/writer_test.go +++ b/stackless/writer_test.go @@ -15,7 +15,7 @@ func TestCompressFlateSerial(t *testing.T) { t.Parallel() if err := testCompressFlate(); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } } @@ -23,7 +23,7 @@ func TestCompressFlateConcurrent(t *testing.T) { t.Parallel() if err := testConcurrent(testCompressFlate, 10); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } } @@ -31,7 +31,7 @@ func testCompressFlate() error { return testWriter(func(w io.Writer) Writer { zw, err := flate.NewWriter(w, flate.DefaultCompression) if err != nil { - panic(fmt.Sprintf("BUG: unexpected error: %s", err)) + panic(fmt.Sprintf("BUG: unexpected error: %v", err)) } return zw }, func(r io.Reader) io.Reader { @@ -43,7 +43,7 @@ func TestCompressGzipSerial(t *testing.T) { t.Parallel() if err := testCompressGzip(); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } } @@ -51,7 +51,7 @@ func TestCompressGzipConcurrent(t *testing.T) { t.Parallel() if err := testConcurrent(testCompressGzip, 10); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } } @@ -61,7 +61,7 @@ func testCompressGzip() error { }, func(r io.Reader) io.Reader { zr, err := gzip.NewReader(r) if err != nil { - panic(fmt.Sprintf("BUG: cannot create gzip reader: %s", err)) + panic(fmt.Sprintf("BUG: cannot create gzip reader: %v", err)) } return zr }) diff --git a/status_test.go b/status_test.go index 512c884c8e..ff794a38e7 100644 --- a/status_test.go +++ b/status_test.go @@ -19,6 +19,6 @@ func TestStatusLine(t *testing.T) { func testStatusLine(t *testing.T, statusCode int, expected []byte) { line := formatStatusLine(nil, strHTTP11, statusCode, s2b(StatusMessage(statusCode))) if !bytes.Equal(expected, line) { - t.Fatalf("unexpected status line %s. Expecting %s", string(line), string(expected)) + t.Fatalf("unexpected status line %q. Expecting %q", string(line), string(expected)) } } diff --git a/status_timing_test.go b/status_timing_test.go index d2ec34aa31..e35d8cef38 100644 --- a/status_timing_test.go +++ b/status_timing_test.go @@ -22,7 +22,7 @@ func benchmarkStatusLine(b *testing.B, statusCode int, expected []byte) { for pb.Next() { line := formatStatusLine(nil, strHTTP11, statusCode, s2b(StatusMessage(statusCode))) if !bytes.Equal(expected, line) { - b.Fatalf("unexpected status line %s. Expecting %s", string(line), string(expected)) + b.Fatalf("unexpected status line %q. Expecting %q", string(line), string(expected)) } } }) diff --git a/stream_test.go b/stream_test.go index 9c287adec3..2631e3d056 100644 --- a/stream_test.go +++ b/stream_test.go @@ -21,7 +21,7 @@ func TestNewStreamReader(t *testing.T) { data, err := ioutil.ReadAll(r) if err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } expectedData := "Hello, world\nLine #2\n" if string(data) != expectedData { @@ -64,7 +64,7 @@ func TestStreamReaderClose(t *testing.T) { buf := make([]byte, len(firstLine)) n, err := io.ReadFull(r, buf) if err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if n != len(buf) { t.Fatalf("unexpected number of bytes read: %d. Expecting %d", n, len(buf)) @@ -74,13 +74,13 @@ func TestStreamReaderClose(t *testing.T) { } if err := r.Close(); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } select { case err := <-ch: if err != nil { - t.Fatalf("error returned from stream reader: %s", err) + t.Fatalf("error returned from stream reader: %v", err) } case <-time.After(time.Second): t.Fatalf("timeout when waiting for stream reader") @@ -98,7 +98,7 @@ func TestStreamReaderClose(t *testing.T) { select { case err := <-ch: if err != nil { - t.Fatalf("error returned when reading tail data: %s", err) + t.Fatalf("error returned when reading tail data: %v", err) } case <-time.After(time.Second): t.Fatalf("timeout when reading tail data") diff --git a/stream_timing_test.go b/stream_timing_test.go index facca3a962..b7fe03f9a5 100644 --- a/stream_timing_test.go +++ b/stream_timing_test.go @@ -52,16 +52,16 @@ func benchmarkStreamReader(b *testing.B, size int) { if err == io.EOF { break } - b.Fatalf("unexpected error when reading from stream reader: %s", err) + b.Fatalf("unexpected error when reading from stream reader: %v", err) } } if err := sr.Close(); err != nil { - b.Fatalf("unexpected error when closing stream reader: %s", err) + b.Fatalf("unexpected error when closing stream reader: %v", err) } select { case err := <-ch: if err != nil { - b.Fatalf("unexpected error from stream reader: %s", err) + b.Fatalf("unexpected error from stream reader: %v", err) } case <-time.After(time.Second): b.Fatalf("timeout") diff --git a/streaming_test.go b/streaming_test.go index 32f00035b5..1c7c25a842 100644 --- a/streaming_test.go +++ b/streaming_test.go @@ -51,17 +51,17 @@ aaaaaaaaaa` ch := make(chan struct{}) go func() { if err := s.Serve(ln); err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } close(ch) }() conn, err := ln.Dial() if err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if _, err = conn.Write([]byte(reqS)); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } var resp Response @@ -69,14 +69,14 @@ aaaaaaaaaa` respCh := make(chan struct{}) go func() { if err := resp.Read(br); err != nil { - t.Errorf("error when reading response: %s", err) + t.Errorf("error when reading response: %v", err) } if resp.StatusCode() != StatusOK { t.Errorf("unexpected status code %d. Expecting %d", resp.StatusCode(), StatusOK) } if err := resp.Read(br); err != nil { - t.Errorf("error when reading response: %s", err) + t.Errorf("error when reading response: %v", err) } if resp.StatusCode() != StatusOK { t.Errorf("unexpected status code %d. Expecting %d", resp.StatusCode(), StatusOK) @@ -91,7 +91,7 @@ aaaaaaaaaa` } if err := ln.Close(); err != nil { - t.Fatalf("error when closing listener: %s", err) + t.Fatalf("error when closing listener: %v", err) } select { @@ -108,7 +108,7 @@ func getChunkedTestEnv(t testing.TB) (*fasthttputil.InmemoryListener, []byte) { testHandler := func(ctx *RequestCtx) { bodyBytes, err := ioutil.ReadAll(ctx.RequestBodyStream()) if err != nil { - t.Logf("ioutil read returned err=%s", err) + t.Logf("ioutil read returned err=%v", err) t.Error("unexpected error while reading request body stream") } @@ -127,7 +127,7 @@ func getChunkedTestEnv(t testing.TB) (*fasthttputil.InmemoryListener, []byte) { go func() { err := s.Serve(ln) if err != nil { - t.Errorf("could not serve listener: %s", err) + t.Errorf("could not serve listener: %v", err) } }() @@ -166,7 +166,7 @@ Trailer: Foo, Bar Handler: func(ctx *RequestCtx) { all, err := ioutil.ReadAll(ctx.RequestBodyStream()) if err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } if !bytes.Equal(all, body) { t.Errorf("unexpected body %q. Expecting %q", all, body) @@ -175,7 +175,7 @@ Trailer: Foo, Bar for k, v := range expectedTrailer { r := ctx.Request.Header.Peek(k) if string(r) != v { - t.Errorf("unexpected trailer %s. Expecting %s. Got %q", k, v, r) + t.Errorf("unexpected trailer %q. Expecting %q. Got %q", k, v, r) } } }, @@ -184,20 +184,20 @@ Trailer: Foo, Bar ch := make(chan struct{}) go func() { if err := s.Serve(ln); err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } close(ch) }() conn, err := ln.Dial() if err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if _, err = conn.Write([]byte(req)); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if err := ln.Close(); err != nil { - t.Fatalf("error when closing listener: %s", err) + t.Fatalf("error when closing listener: %v", err) } select { @@ -214,16 +214,16 @@ func TestRequestStream(t *testing.T) { c, err := ln.Dial() if err != nil { - t.Errorf("unexpected error while dialing: %s", err) + t.Errorf("unexpected error while dialing: %v", err) } if _, err = c.Write(formattedRequest); err != nil { - t.Errorf("unexpected error while writing request: %s", err) + t.Errorf("unexpected error while writing request: %v", err) } br := bufio.NewReader(c) var respH ResponseHeader if err = respH.Read(br); err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } } @@ -237,16 +237,16 @@ func BenchmarkRequestStreamE2E(b *testing.B) { for i := 0; i < b.N/4; i++ { c, err := ln.Dial() if err != nil { - b.Errorf("unexpected error while dialing: %s", err) + b.Errorf("unexpected error while dialing: %v", err) } if _, err = c.Write(formattedRequest); err != nil { - b.Errorf("unexpected error while writing request: %s", err) + b.Errorf("unexpected error while writing request: %v", err) } br := bufio.NewReaderSize(c, 128) var respH ResponseHeader if err = respH.Read(br); err != nil { - b.Errorf("unexpected error: %s", err) + b.Errorf("unexpected error: %v", err) } c.Close() } diff --git a/uri.go b/uri.go index 38a431e1d0..ffd68c6367 100644 --- a/uri.go +++ b/uri.go @@ -808,7 +808,7 @@ func (u *URI) updateBytes(newURI, buf []byte) []byte { path := u.Path() n = bytes.LastIndexByte(path, '/') if n < 0 { - panic(fmt.Sprintf("BUG: path must contain at least one slash: %s %s", u.Path(), newURI)) + panic(fmt.Sprintf("BUG: path must contain at least one slash: %q %q", u.Path(), newURI)) } buf = u.appendSchemeHost(buf[:0]) buf = appendQuotedPath(buf, path[:n+1]) diff --git a/uri_test.go b/uri_test.go index 8b441c7366..f074392eba 100644 --- a/uri_test.go +++ b/uri_test.go @@ -450,7 +450,7 @@ func TestURIWithQuerystringOverride(t *testing.T) { uriString := string(u.RequestURI()) if uriString != "/?q1=foo&q2=bar&q4=quux" { - t.Fatalf("Expected Querystring to be overridden but was %s ", uriString) + t.Fatalf("Expected Querystring to be overridden but was %q ", uriString) } } diff --git a/userdata_test.go b/userdata_test.go index 94f04dd6d9..c46a3e9c46 100644 --- a/userdata_test.go +++ b/userdata_test.go @@ -92,7 +92,7 @@ func TestUserDataDelete(t *testing.T) { k := fmt.Sprintf("key_%d", i) u.Remove(k) if val := u.Get(k); val != nil { - t.Fatalf("unexpected key= %s, value =%v ,Expecting key= %s, value = nil", k, val, k) + t.Fatalf("unexpected key= %q, value =%v ,Expecting key= %q, value = nil", k, val, k) } kk := fmt.Sprintf("key_%d", i+1) testUserDataGet(t, &u, []byte(kk), i+1) diff --git a/workerpool.go b/workerpool.go index f1a9a4cb4f..50a5c75f8c 100644 --- a/workerpool.go +++ b/workerpool.go @@ -229,7 +229,7 @@ func (wp *workerPool) workerFunc(ch *workerChan) { strings.Contains(errStr, "unexpected EOF") || strings.Contains(errStr, "i/o timeout") || errors.Is(err, ErrBadTrailer)) { - wp.Logger.Printf("error when serving connection %q<->%q: %s", c.LocalAddr(), c.RemoteAddr(), err) + wp.Logger.Printf("error when serving connection %q<->%q: %v", c.LocalAddr(), c.RemoteAddr(), err) } } if err == errHijacked { diff --git a/workerpool_test.go b/workerpool_test.go index 4a09d970a8..b8267ab8f0 100644 --- a/workerpool_test.go +++ b/workerpool_test.go @@ -86,14 +86,14 @@ func testWorkerPoolMaxWorkersCount(t *testing.T) { buf := make([]byte, 100) n, err := conn.Read(buf) if err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } buf = buf[:n] if string(buf) != "foobar" { t.Errorf("unexpected data read: %q. Expecting %q", buf, "foobar") } if _, err = conn.Write([]byte("baz")); err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } <-ready @@ -113,20 +113,20 @@ func testWorkerPoolMaxWorkersCount(t *testing.T) { go func() { conn, err := ln.Dial() if err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } if _, err = conn.Write([]byte("foobar")); err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } data, err := ioutil.ReadAll(conn) if err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } if string(data) != "baz" { t.Errorf("unexpected value read: %q. Expecting %q", data, "baz") } if err = conn.Close(); err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } clientCh <- struct{}{} }() @@ -135,7 +135,7 @@ func testWorkerPoolMaxWorkersCount(t *testing.T) { for i := 0; i < wp.MaxWorkersCount; i++ { conn, err := ln.Accept() if err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } if !wp.Serve(conn) { t.Fatalf("worker pool must have enough workers to serve the conn") @@ -144,12 +144,12 @@ func testWorkerPoolMaxWorkersCount(t *testing.T) { go func() { if _, err := ln.Dial(); err != nil { - t.Errorf("unexpected error: %s", err) + t.Errorf("unexpected error: %v", err) } }() conn, err := ln.Accept() if err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } for i := 0; i < 5; i++ { if wp.Serve(conn) { @@ -157,7 +157,7 @@ func testWorkerPoolMaxWorkersCount(t *testing.T) { } } if err = conn.Close(); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } close(ready) @@ -171,7 +171,7 @@ func testWorkerPoolMaxWorkersCount(t *testing.T) { } if err := ln.Close(); err != nil { - t.Fatalf("unexpected error: %s", err) + t.Fatalf("unexpected error: %v", err) } wp.Stop() }