Add more HS and XCHG proto tests

next
Sayan Nandan 9 months ago
parent 0c5dc10f67
commit c2cfbd71cc
No known key found for this signature in database
GPG Key ID: 0EBD769024B24F0A

@ -198,7 +198,37 @@ fn scan_hs(hs: impl AsRef<[u8]>, f: impl Fn(HandshakeResult)) {
}
#[test]
fn hs_bad_packet() {
fn hs_bad_packet_illegal_username_length() {
scan_hs(b"H\0\0\0\0\0A\n8\nsayanpass1234", |hs_result| {
assert_eq!(
hs_result,
HandshakeResult::Error(ProtocolError::CorruptedHSPacket)
)
})
}
#[test]
fn hs_bad_packet_illegal_password_length() {
scan_hs(b"H\0\0\0\0\05\nA\nsayanpass1234", |hs_result| {
assert_eq!(
hs_result,
HandshakeResult::Error(ProtocolError::CorruptedHSPacket)
)
})
}
#[test]
fn hs_bad_packet_illegal_pwd_uname_length() {
scan_hs(b"H\0\0\0\0\0A\nA\nsayanpass1234", |hs_result| {
assert_eq!(
hs_result,
HandshakeResult::Error(ProtocolError::CorruptedHSPacket)
)
})
}
#[test]
fn hs_bad_packet_first_byte() {
scan_hs(HS_BAD_PACKET, |hs_result| {
assert_eq!(
hs_result,
@ -415,6 +445,34 @@ fn stages_manual() {
}
}
#[test]
fn exchange_bad_segment_metadata() {
let exchange_packets = [
(
b"S4A\n32\ndelete from dbs where dbname = ?sillydb".as_slice(),
4,
"incorrect packet size",
),
(
b"S42\n3A\ndelete from dbs where dbname = ?sillydb",
7,
"incorrect q window",
),
(
b"S4A\n3A\ndelete from dbs where dbname = ?sillydb",
4,
"incorrect packet size and q window",
),
];
for (packet, cursor, description) in exchange_packets {
assert_eq!(
unsafe { exchange::resume(packet, Resume::test_new(0), Default::default()) },
(Resume::test_new(cursor), QExchangeResult::Error),
"failed for `{description}`"
)
}
}
#[test]
fn num_accumulate() {
let x = [

Loading…
Cancel
Save