blob: 8aecfd247b76da6423fc0acc5c5a689dcd56af78 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
use oxish_proto::{Completion, IncomingPacket, ProtoError, ReadState};
#[test]
fn padding_too_large() {
const PACKET: &[u8] = include_bytes!("padding-too-large.bin");
let mut state = ReadState::default();
assert!(matches!(
decode(PACKET, &mut state).unwrap_err(),
ProtoError::InvalidPacket("padding length exceeds packet length"),
));
}
fn decode<'a>(bytes: &[u8], state: &'a mut ReadState) -> Result<IncomingPacket<'a>, ProtoError> {
state.buf.extend_from_slice(bytes);
match state.poll_packet()? {
Completion::Complete((sequence_number, packet_length)) => {
state.decode_packet(sequence_number, packet_length)
}
Completion::Incomplete(needed) => Err(ProtoError::Incomplete(needed)),
}
}
|