()
| 729 | |
| 730 | #[test] |
| 731 | fn parser_handles_split_single_message() -> Result<()> { |
| 732 | let full = buffers::data_row(&[None, Some("bang"), Some("zug zug"), None, Some("!")]); |
| 733 | |
| 734 | let messages = parse_vec_chunks(vec![full.clone()])?; |
| 735 | assert_eq!(messages.len(), 1); |
| 736 | assert_data_row_fields( |
| 737 | &messages[0], |
| 738 | &[None, Some("bang"), Some("zug zug"), None, Some("!")], |
| 739 | ); |
| 740 | |
| 741 | let splits = [ |
| 742 | 6, |
| 743 | 2, |
| 744 | full.len().saturating_sub(2), |
| 745 | full.len().saturating_sub(1), |
| 746 | full.len().saturating_sub(5), |
| 747 | ]; |
| 748 | |
| 749 | for split in splits { |
| 750 | if split == 0 || split >= full.len() { |
| 751 | continue; |
| 752 | } |
| 753 | let first_len = full.len() - split; |
| 754 | let first = full[..first_len].to_vec(); |
| 755 | let second = full[first_len..].to_vec(); |
| 756 | let messages = parse_vec_chunks(vec![first, second])?; |
| 757 | assert_eq!(messages.len(), 1); |
| 758 | assert_data_row_fields( |
| 759 | &messages[0], |
| 760 | &[None, Some("bang"), Some("zug zug"), None, Some("!")], |
| 761 | ); |
| 762 | } |
| 763 | |
| 764 | Ok(()) |
| 765 | } |
| 766 | |
| 767 | #[test] |
| 768 | fn parser_handles_split_multiple_messages() -> Result<()> { |
nothing calls this directly
no test coverage detected