MCPcopy Create free account
hub / github.com/MaterializeInc/materialize / test_multi

Function test_multi

src/ore/src/bytes.rs:594–630  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

592
593 #[crate::test]
594 fn test_multi() {
595 let segments = vec![vec![0, 1, 2, 3], vec![4, 5, 6, 7, 8, 9], vec![10, 11]];
596 let mut s: SegmentedBytes<2> = segments.into_iter().collect();
597
598 assert_eq!(s.len(), 12);
599 assert_eq!(s.remaining(), 12);
600
601 // Read the first chunk.
602 assert_eq!(s.chunk(), [0, 1, 2, 3]);
603
604 // Advance to the middle.
605 s.advance(6);
606 assert_eq!(s.remaining(), 6);
607
608 // Convert to a reader.
609 let mut reader = s.reader();
610 // We should be at the beginning, and only see the remaining 6 bytes.
611 assert_eq!(reader.len(), 6);
612 assert_eq!(reader.position(), 0);
613
614 // Read to the end of the second segment.
615 let mut buf = [0; 8];
616 let bytes_read = reader.read(&mut buf).unwrap();
617 assert_eq!(bytes_read, 4);
618 assert_eq!(buf, [6, 7, 8, 9, 0, 0, 0, 0]);
619
620 // Read again to get the final segment.
621 let bytes_read = reader.read(&mut buf[4..]).unwrap();
622 assert_eq!(bytes_read, 2);
623 assert_eq!(buf, [6, 7, 8, 9, 10, 11, 0, 0]);
624
625 // Seek back to the beginning.
626 reader.seek(SeekFrom::Start(0)).unwrap();
627 // Read everything.
628 reader.read_exact(&mut buf[..6]).unwrap();
629 assert_eq!(buf, [6, 7, 8, 9, 10, 11, 0, 0]);
630 }
631
632 #[crate::test]
633 fn test_single_empty_segment() {

Callers

nothing calls this directly

Calls 7

unwrapMethod · 0.80
seekMethod · 0.80
collectMethod · 0.45
into_iterMethod · 0.45
advanceMethod · 0.45
readerMethod · 0.45
readMethod · 0.45

Tested by

no test coverage detected