@@ -477,6 +477,8 @@ fn reader_helper(mut in_buf: &[u8], q: u32, lgwin: u32) {
477
477
Err ( e) => panic ! ( "Error {:?}" , e) ,
478
478
}
479
479
}
480
+ let inner_item = rdec. into_inner ( ) ;
481
+ let _inner_inner_item = inner_item. into_inner ( ) ;
480
482
}
481
483
in_buf = original_buf;
482
484
input = UnlimitedBuffer :: new ( & in_buf) ;
@@ -635,13 +637,54 @@ fn writer_helper(mut in_buf: &[u8], buf_size: usize, q: u32, lgwin: u32, do_flus
635
637
assert ! ( compressed. data. len( ) < original_buf. len( ) * pct_ratio / 100 ) ;
636
638
}
637
639
}
640
+
641
+
642
+ #[ cfg( feature="std" ) ]
643
+ fn into_inner_writer_helper ( mut in_buf : & [ u8 ] , buf_size : usize , q : u32 , lgwin : u32 ) {
644
+ let orig_buf = in_buf;
645
+ let mut compressed = UnlimitedBuffer :: new ( & [ ] ) ;
646
+ let mut wenc = CompressorWriter :: new ( & mut compressed, 255 , q, lgwin) ;
647
+ while in_buf. len ( ) > 0 {
648
+ match wenc. write ( & in_buf[ ..cmp:: min ( in_buf. len ( ) , buf_size) ] ) {
649
+ Ok ( size) => {
650
+ if size == 0 {
651
+ break ;
652
+ }
653
+ in_buf = & in_buf[ size..] ;
654
+ }
655
+ Err ( e) => panic ! ( "Error {:?}" , e) ,
656
+ }
657
+ }
658
+ let c2 = wenc. into_inner ( ) ;
659
+
660
+ let pct_ratio = 95usize ;
661
+ assert ! ( c2. data. len( ) > 0 ) ;
662
+ assert ! ( c2. data. len( ) < orig_buf. len( ) * pct_ratio / 100 ) ;
663
+ let mut compressed_in = UnlimitedBuffer :: new ( & c2. data [ ..] ) ;
664
+ let mut output = UnlimitedBuffer :: new ( & [ ] ) ;
665
+ match super :: decompress ( & mut compressed_in, & mut output, 65536 , Rebox :: default ( ) ) {
666
+ Ok ( _) => { }
667
+ Err ( e) => panic ! ( "Error {:?}" , e) ,
668
+ }
669
+ for i in 0 ..orig_buf. len ( ) {
670
+ assert_eq ! ( output. data[ i] , orig_buf[ i] ) ;
671
+ }
672
+ assert_eq ! ( output. data. len( ) , orig_buf. len( ) ) ;
673
+
674
+ }
675
+
638
676
#[ cfg( feature="std" ) ]
639
677
#[ test]
640
678
fn test_writer_as_you_lik ( ) {
641
679
writer_helper ( include_bytes ! ( "../../testdata/asyoulik.txt" ) , 17 , 9 , 20 , false ) ;
642
680
}
643
681
#[ cfg( feature="std" ) ]
644
682
#[ test]
683
+ fn test_writer_as_you_lik_into_inner ( ) {
684
+ into_inner_writer_helper ( include_bytes ! ( "../../testdata/asyoulik.txt" ) , 256 , 4 , 16 ) ;
685
+ }
686
+ #[ cfg( feature="std" ) ]
687
+ #[ test]
645
688
fn test_writer_64x ( ) {
646
689
writer_helper ( include_bytes ! ( "../../testdata/64x" ) , 17 , 9 , 20 , false ) ;
647
690
}
0 commit comments