use super::*;
#[test]
fn srv_rejects_rdata_shorter_than_header() {
let msg = [0u8; 16];
let err = Srv::try_from_message(&msg, 0, 4).unwrap_err();
assert!(err.is_buffer_too_short());
}
#[test]
fn srv_rejects_inline_name_past_rdlength() {
let msg: [u8; 13] = [
0, 0, 0, 0, 0, 80, 5, b'a', b'b', b'c', b'd', b'e', 0, ];
assert!(Srv::try_from_message(&msg, 0, msg.len()).is_ok());
let err = Srv::try_from_message(&msg, 0, 8).unwrap_err();
assert!(
err.is_buffer_too_short(),
"SRV with inline name past rdlength must return BufferTooShort; got {err:?}"
);
}
#[test]
fn srv_rejects_trailing_bytes_inside_rdlength() {
let msg: [u8; 15] = [
0, 0, 0, 0, 0, 80, 5, b'a', b'b', b'c', b'd', b'e', 0, 0xAA, 0xBB, ];
let err = Srv::try_from_message(&msg, 0, 15).unwrap_err();
assert!(
err.is_buffer_too_short(),
"SRV with trailing garbage inside rdlength must reject; got {err:?}"
);
}
#[test]
fn srv_rejects_message_too_short_for_header() {
let msg = [0u8; 4]; let err = Srv::try_from_message(&msg, 0, 6).unwrap_err();
assert!(err.is_buffer_too_short());
}