Skip to content

Commit b18bb24

Browse files
committed
tests for into_inner on both readers and writers
1 parent 1910467 commit b18bb24

File tree

1 file changed

+43
-0
lines changed

1 file changed

+43
-0
lines changed

src/bin/integration_tests.rs

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -477,6 +477,8 @@ fn reader_helper(mut in_buf: &[u8], q: u32, lgwin: u32) {
477477
Err(e) => panic!("Error {:?}", e),
478478
}
479479
}
480+
let inner_item = rdec.into_inner();
481+
let _inner_inner_item = inner_item.into_inner();
480482
}
481483
in_buf = original_buf;
482484
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
635637
assert!(compressed.data.len() < original_buf.len() * pct_ratio / 100);
636638
}
637639
}
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+
638676
#[cfg(feature="std")]
639677
#[test]
640678
fn test_writer_as_you_lik() {
641679
writer_helper(include_bytes!("../../testdata/asyoulik.txt"), 17, 9, 20, false);
642680
}
643681
#[cfg(feature="std")]
644682
#[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]
645688
fn test_writer_64x() {
646689
writer_helper(include_bytes!("../../testdata/64x"), 17, 9, 20, false);
647690
}

0 commit comments

Comments
 (0)