MCPcopy Create free account
hub / github.com/f0rr0/oliphaunt / parser_handles_split_multiple_messages

Function parser_handles_split_multiple_messages

src/protocol/tests.rs:768–806  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

766
767#[test]
768fn parser_handles_split_multiple_messages() -> Result<()> {
769 let data_row = buffers::data_row(&[Some("!")]);
770 let ready_for_query = buffers::ready_for_query();
771 let mut combined = data_row.clone();
772 combined.extend_from_slice(&ready_for_query);
773
774 let verify_messages = |messages: &[BackendMessage]| {
775 assert_eq!(messages.len(), 2);
776 assert_data_row_fields(&messages[0], &[Some("!")]);
777 match &messages[1] {
778 BackendMessage::ReadyForQuery(msg) => assert_eq!(msg.status, b'I'),
779 other => panic!("unexpected message: {:?}", other.name()),
780 }
781 };
782
783 verify_messages(&parse_vec_chunks(vec![combined.clone()])?);
784
785 let splits = [
786 11,
787 combined.len().saturating_sub(1),
788 combined.len().saturating_sub(4),
789 combined.len().saturating_sub(6),
790 8,
791 1,
792 ];
793
794 for split in splits {
795 if split == 0 || split >= combined.len() {
796 continue;
797 }
798 let first_len = combined.len() - split;
799 let first = combined[..first_len].to_vec();
800 let second = combined[first_len..].to_vec();
801 let messages = parse_vec_chunks(vec![first, second])?;
802 verify_messages(&messages);
803 }
804
805 Ok(())
806}
807
808#[test]
809fn parser_respects_buffer_views() -> Result<()> {

Callers

nothing calls this directly

Calls 5

data_rowFunction · 0.85
ready_for_queryFunction · 0.85
assert_data_row_fieldsFunction · 0.85
parse_vec_chunksFunction · 0.85
lenMethod · 0.80

Tested by

no test coverage detected