TestZstdLevels tests zstd compression levels.
(t *testing.T)
| 2082 | |
| 2083 | // TestZstdLevels tests zstd compression levels. |
| 2084 | func TestZstdLevels(t *testing.T) { |
| 2085 | levels := []int{ |
| 2086 | int(zstd.SpeedFastest), |
| 2087 | int(zstd.SpeedDefault), |
| 2088 | int(zstd.SpeedBetterCompression), |
| 2089 | int(zstd.SpeedBestCompression), |
| 2090 | } |
| 2091 | for _, level := range levels { |
| 2092 | t.Run(fmt.Sprintf("level-%d", level), func(t *testing.T) { |
| 2093 | wrapper, err := NewWrapper(EnableGzip(false), ZstdCompressionLevel(level)) |
| 2094 | if err != nil { |
| 2095 | t.Fatal(err) |
| 2096 | } |
| 2097 | handler := wrapper(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { |
| 2098 | w.Write(testBody) |
| 2099 | })) |
| 2100 | |
| 2101 | req, _ := http.NewRequest("GET", "/", nil) |
| 2102 | req.Header.Set("Accept-Encoding", "zstd") |
| 2103 | res := httptest.NewRecorder() |
| 2104 | handler.ServeHTTP(res, req) |
| 2105 | |
| 2106 | assertEqual(t, "zstd", res.Header().Get("Content-Encoding")) |
| 2107 | |
| 2108 | // Decompress and verify |
| 2109 | dec, err := zstd.NewReader(res.Body) |
| 2110 | if err != nil { |
| 2111 | t.Fatalf("zstd.NewReader failed: %v", err) |
| 2112 | } |
| 2113 | got, err := io.ReadAll(dec) |
| 2114 | dec.Close() |
| 2115 | if err != nil { |
| 2116 | t.Fatalf("io.ReadAll failed: %v", err) |
| 2117 | } |
| 2118 | if !bytes.Equal(testBody, got) { |
| 2119 | t.Errorf("response body mismatch at level %d", level) |
| 2120 | } |
| 2121 | }) |
| 2122 | } |
| 2123 | } |
| 2124 | |
| 2125 | // TestPreferGzip tests that gzip is preferred when PreferZstd(false) is set. |
| 2126 | func TestPreferGzip(t *testing.T) { |
nothing calls this directly
no test coverage detected
searching dependent graphs…