@@ -469,7 +469,7 @@ mod tests {
469469 }
470470
471471 // try_decompress_remaining
472- fn assert_dstruct_d_main_plus_extra_partial_error (
472+ fn assert_dstruct_d_main_plus_extra_partial_err (
473473 main : & [ u8 ] ,
474474 extra : Option < & [ u8 ] > ,
475475 mut encoding_info : Vec < EncodingInfo > ,
@@ -502,6 +502,7 @@ mod tests {
502502 assert_eq ! ( ds. encoding_info, verify_encodings) ;
503503 }
504504
505+ // Corrupt error to Partial
505506 #[ test]
506507 fn test_dstruct_d_main_plus_extra_partial_err_corrupt_to_partial_two_values ( )
507508 {
@@ -511,7 +512,7 @@ mod tests {
511512 0 ,
512513 vec![ ContentEncoding :: Deflate , ContentEncoding :: Brotli ] ,
513514 ) ] ;
514- assert_dstruct_d_main_plus_extra_partial_error (
515+ assert_dstruct_d_main_plus_extra_partial_err (
515516 & first,
516517 Some ( & second) ,
517518 encoding_info,
@@ -533,7 +534,7 @@ mod tests {
533534 ContentEncoding :: Brotli ,
534535 ] ,
535536 ) ] ;
536- assert_dstruct_d_main_plus_extra_partial_error (
537+ assert_dstruct_d_main_plus_extra_partial_err (
537538 & first,
538539 Some ( & second) ,
539540 encoding_info,
@@ -548,7 +549,7 @@ mod tests {
548549 let compressed = compress_zstd ( INPUT ) ;
549550 let ( first, second) = compressed. split_at ( compressed. len ( ) / 2 ) ;
550551 let encoding_info = all_encoding_info_single_header ( ) ;
551- assert_dstruct_d_main_plus_extra_partial_error (
552+ assert_dstruct_d_main_plus_extra_partial_err (
552553 & first,
553554 Some ( & second) ,
554555 encoding_info,
@@ -563,12 +564,116 @@ mod tests {
563564 let compressed = compress_zstd ( INPUT ) ;
564565 let ( first, second) = compressed. split_at ( compressed. len ( ) / 2 ) ;
565566 let encoding_info = all_encoding_info_multi_header ( ) ;
566- assert_dstruct_d_main_plus_extra_partial_error (
567+ assert_dstruct_d_main_plus_extra_partial_err (
567568 & first,
568569 Some ( & second) ,
569570 encoding_info,
570571 1 ,
571572 0 ,
572573 ) ;
573574 }
575+
576+ // Partial Error
577+ fn compress_gzip_zstd ( ) -> Vec < u8 > {
578+ let br = compress_gzip ( INPUT ) ;
579+ compress_zstd ( & br)
580+ }
581+
582+ #[ test]
583+ fn test_dstruct_d_main_plus_extra_partial_err_partial_three_values ( ) {
584+ let compressed = compress_gzip_zstd ( ) ;
585+ let ( first, second) = compressed. split_at ( compressed. len ( ) / 2 ) ;
586+ let encoding_info = vec ! [ EncodingInfo :: new(
587+ 0 ,
588+ vec![
589+ ContentEncoding :: Deflate ,
590+ ContentEncoding :: Gzip ,
591+ ContentEncoding :: Zstd ,
592+ ] ,
593+ ) ] ;
594+ assert_dstruct_d_main_plus_extra_partial_err (
595+ & first,
596+ Some ( & second) ,
597+ encoding_info,
598+ 0 ,
599+ 1 ,
600+ ) ;
601+ }
602+
603+ #[ test]
604+ fn test_dstruct_d_main_plus_extra_partial_err_partial_single_header ( ) {
605+ let compressed = compress_gzip_zstd ( ) ;
606+ let ( first, second) = compressed. split_at ( compressed. len ( ) / 2 ) ;
607+ let encoding_info = all_encoding_info_single_header ( ) ;
608+ assert_dstruct_d_main_plus_extra_partial_err (
609+ & first,
610+ Some ( & second) ,
611+ encoding_info,
612+ 0 ,
613+ 2 ,
614+ ) ;
615+ }
616+
617+ #[ test]
618+ fn test_dstruct_d_main_plus_extra_partial_err_partial_multi_header ( ) {
619+ let compressed = compress_gzip_zstd ( ) ;
620+ let ( first, second) = compressed. split_at ( compressed. len ( ) / 2 ) ;
621+ let encoding_info = all_encoding_info_multi_header ( ) ;
622+ assert_dstruct_d_main_plus_extra_partial_err (
623+ & first,
624+ Some ( & second) ,
625+ encoding_info,
626+ 2 ,
627+ 0 ,
628+ ) ;
629+ }
630+
631+ #[ test]
632+ fn test_dstruct_d_main_plus_extra_partial_err_partial_multi_header_mixed ( )
633+ {
634+ let compressed = compress_gzip_zstd ( ) ;
635+ let ( first, second) = compressed. split_at ( compressed. len ( ) / 2 ) ;
636+ let encoding_info = vec ! [
637+ EncodingInfo :: new( 0 , vec![ ContentEncoding :: Brotli ] ) ,
638+ EncodingInfo :: new( 1 , vec![ ContentEncoding :: Deflate ] ) ,
639+ EncodingInfo :: new(
640+ 2 ,
641+ vec![ ContentEncoding :: Identity , ContentEncoding :: Gzip ] ,
642+ ) ,
643+ EncodingInfo :: new( 3 , vec![ ContentEncoding :: Zstd ] ) ,
644+ ] ;
645+ assert_dstruct_d_main_plus_extra_partial_err (
646+ & first,
647+ Some ( & second) ,
648+ encoding_info,
649+ 1 ,
650+ 0 ,
651+ ) ;
652+ }
653+
654+ #[ test]
655+ fn test_dstruct_d_main_plus_extra_partial_err_partial_multi_header_mixed_two ( )
656+ {
657+ let compressed = compress_gzip_zstd ( ) ;
658+ let ( first, second) = compressed. split_at ( compressed. len ( ) / 2 ) ;
659+ let encoding_info = vec ! [
660+ EncodingInfo :: new( 0 , vec![ ContentEncoding :: Brotli ] ) ,
661+ EncodingInfo :: new(
662+ 1 ,
663+ vec![
664+ ContentEncoding :: Deflate ,
665+ ContentEncoding :: Identity ,
666+ ContentEncoding :: Gzip ,
667+ ] ,
668+ ) ,
669+ EncodingInfo :: new( 3 , vec![ ContentEncoding :: Zstd ] ) ,
670+ ] ;
671+ assert_dstruct_d_main_plus_extra_partial_err (
672+ & first,
673+ Some ( & second) ,
674+ encoding_info,
675+ 0 ,
676+ 2 ,
677+ ) ;
678+ }
574679}
0 commit comments