3030#define XZ "\xfd\x37\x7a\x58\x5a\x00\x00\x04\xe6\xd6\xb4\x46\x02\x00\x21\x01\x16\x00\x00\x00\x74\x2f\xe5\xa3\x01\x00\x00\x78\x00\x00\x00\x00\x45\xae\xef\x83\xf8\xee\x16\x0a\x00\x01\x19\x01\xa5\x2c\x81\xcc\x1f\xb6\xf3\x7d\x01\x00\x00\x00\x00\x04\x59\x5a" // xz
3131#define LZMA "\x5d\x00\x00\x80\x00\xff\xff\xff\xff\xff\xff\xff\xff\x00\x3c\x41\xfb\xff\xff\xff\xe0\x00\x00\x00" // lzma
3232#define BR "\x21\x00\x00\x04\x78\x03" // br
33+ #define ZSTD "\x28\xb5\x2f\xfd\x24\x01\x09\x00\x00\x78\x23\x11\x04\x83"
3334
3435typedef struct {
3536 const char * body ;
@@ -38,7 +39,7 @@ typedef struct {
3839 bool with_lib ;
3940} compression_test_t ;
4041
41- #define KNOWN_TYPES 6
42+ #define KNOWN_TYPES countof(compressions)
4243#define BUF_SIZE 40
4344
4445int main (void )
@@ -102,6 +103,16 @@ int main(void)
102103 true,
103104#else
104105 false,
106+ #endif
107+ },
108+ { .body = ZSTD ,
109+ .body_len = sizeof (ZSTD ) - 1 ,
110+ .type = "zstd" ,
111+ .with_lib =
112+ #ifdef WITH_ZSTD
113+ true,
114+ #else
115+ false,
105116#endif
106117 },
107118 };
@@ -179,6 +190,18 @@ int main(void)
179190 "Accept-Encoding: br"
180191 }
181192 },
193+ { .name = "/zstd.html" ,
194+ .code = "200 Dontcare" ,
195+ .body = compressions [6 ].body ,
196+ .body_len = compressions [6 ].body_len ,
197+ .headers = {
198+ "Content-Type: text/html" ,
199+ "Content-Encoding: zstd" ,
200+ },
201+ .expected_req_headers = {
202+ "Accept-Encoding: zstd"
203+ }
204+ },
182205 { .name = "/identity.html" ,
183206 .code = "200 Dontcare" ,
184207 .body = uncompressed_body ,
@@ -254,32 +277,32 @@ int main(void)
254277 wget_test (
255278 // WGET_TEST_KEEP_TMPFILES, 1,
256279 WGET_TEST_OPTIONS , "--compression=none" ,
257- WGET_TEST_REQUEST_URL , urls [6 ].name + 1 ,
280+ WGET_TEST_REQUEST_URL , urls [7 ].name + 1 ,
258281 WGET_TEST_EXPECTED_ERROR_CODE , 0 ,
259282 WGET_TEST_EXPECTED_FILES , & (wget_test_file_t []) {
260- { urls [6 ].name + 1 , uncompressed_body },
283+ { urls [7 ].name + 1 , uncompressed_body },
261284 { NULL } },
262285 0 );
263286
264287 // test identity
265288 wget_test (
266289 // WGET_TEST_KEEP_TMPFILES, 1,
267290 WGET_TEST_OPTIONS , "--compression=identity" ,
268- WGET_TEST_REQUEST_URL , urls [6 ].name + 1 ,
291+ WGET_TEST_REQUEST_URL , urls [7 ].name + 1 ,
269292 WGET_TEST_EXPECTED_ERROR_CODE , 0 ,
270293 WGET_TEST_EXPECTED_FILES , & (wget_test_file_t []) {
271- { urls [6 ].name + 1 , uncompressed_body },
294+ { urls [7 ].name + 1 , uncompressed_body },
272295 { NULL } },
273296 0 );
274297
275298 // test no "Accept-Encoding"
276299 wget_test (
277300 // WGET_TEST_KEEP_TMPFILES, 1,
278301 WGET_TEST_OPTIONS , "--no-compression" ,
279- WGET_TEST_REQUEST_URL , urls [7 ].name + 1 ,
302+ WGET_TEST_REQUEST_URL , urls [8 ].name + 1 ,
280303 WGET_TEST_EXPECTED_ERROR_CODE , 0 ,
281304 WGET_TEST_EXPECTED_FILES , & (wget_test_file_t []) {
282- { urls [7 ].name + 1 , uncompressed_body },
305+ { urls [8 ].name + 1 , uncompressed_body },
283306 { NULL } },
284307 0 );
285308
@@ -295,44 +318,44 @@ int main(void)
295318 wget_test (
296319 // WGET_TEST_KEEP_TMPFILES, 1,
297320 WGET_TEST_OPTIONS , "--no-compression --header=\"Accept-Encoding: identity\"" ,
298- WGET_TEST_REQUEST_URL , urls [6 ].name + 1 ,
321+ WGET_TEST_REQUEST_URL , urls [7 ].name + 1 ,
299322 WGET_TEST_EXPECTED_ERROR_CODE , 0 ,
300323 WGET_TEST_EXPECTED_FILES , & (wget_test_file_t []) {
301- { urls [6 ].name + 1 , uncompressed_body },
324+ { urls [7 ].name + 1 , uncompressed_body },
302325 { NULL } },
303326 0 );
304327
305328 // test --compression overide
306329 wget_test (
307330 // WGET_TEST_KEEP_TMPFILES, 1,
308331 WGET_TEST_OPTIONS , "--no-compression --compression=identity" ,
309- WGET_TEST_REQUEST_URL , urls [6 ].name + 1 ,
332+ WGET_TEST_REQUEST_URL , urls [7 ].name + 1 ,
310333 WGET_TEST_EXPECTED_ERROR_CODE , 0 ,
311334 WGET_TEST_EXPECTED_FILES , & (wget_test_file_t []) {
312- { urls [6 ].name + 1 , uncompressed_body },
335+ { urls [7 ].name + 1 , uncompressed_body },
313336 { NULL } },
314337 0 );
315338
316339 // test --no-compression overide
317340 wget_test (
318341 // WGET_TEST_KEEP_TMPFILES, 1,
319342 WGET_TEST_OPTIONS , "--compression=identity --no-compression" ,
320- WGET_TEST_REQUEST_URL , urls [7 ].name + 1 ,
343+ WGET_TEST_REQUEST_URL , urls [8 ].name + 1 ,
321344 WGET_TEST_EXPECTED_ERROR_CODE , 0 ,
322345 WGET_TEST_EXPECTED_FILES , & (wget_test_file_t []) {
323- { urls [7 ].name + 1 , uncompressed_body },
346+ { urls [8 ].name + 1 , uncompressed_body },
324347 { NULL } },
325348 0 );
326349
327350 // test combination
328351 wget_test (
329352 // WGET_TEST_KEEP_TMPFILES, 1,
330353 WGET_TEST_OPTIONS , "--compression=identity,br,lzma,gzip" ,
331- WGET_TEST_REQUEST_URL , urls [8 ].name + 1 ,
354+ WGET_TEST_REQUEST_URL , urls [9 ].name + 1 ,
332355#if defined WITH_BROTLIDEC && defined WITH_LZMA && defined WITH_ZLIB
333356 WGET_TEST_EXPECTED_ERROR_CODE , 0 ,
334357 WGET_TEST_EXPECTED_FILES , & (wget_test_file_t []) {
335- { urls [8 ].name + 1 , uncompressed_body },
358+ { urls [9 ].name + 1 , uncompressed_body },
336359 { NULL } },
337360#else
338361 WGET_TEST_EXPECTED_ERROR_CODE , 2 ,
@@ -358,7 +381,7 @@ int main(void)
358381 wget_test (
359382 // WGET_TEST_KEEP_TMPFILES, 1,
360383 WGET_TEST_OPTIONS , "--compression=identity,identity" ,
361- WGET_TEST_REQUEST_URL , urls [8 ].name + 1 ,
384+ WGET_TEST_REQUEST_URL , urls [9 ].name + 1 ,
362385 WGET_TEST_EXPECTED_ERROR_CODE , 2 ,
363386 0 );
364387
0 commit comments