mqtt: add some extra tests for varint parsing

pull/5403/head
Sascha Steinbiss 5 years ago committed by Victor Julien
parent 1a88df7e88
commit ed9fed4958

@ -659,12 +659,9 @@ pub fn parse_message(input: &[u8], protocol_version: u8, max_msg_size: usize) ->
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_mqtt_parse_variable_integer() {
let buf0: &[u8] = &[0xFF, 0xFF, 0xFF, 0xFF];
fn test_mqtt_parse_variable_fail(buf0: &[u8]) {
let r0 = parse_mqtt_variable_integer(buf0);
match r0 {
Ok((_, _)) => {
@ -678,4 +675,36 @@ mod tests {
}
}
}
fn test_mqtt_parse_variable_check(buf0: &[u8], expected: u32) {
let r0 = parse_mqtt_variable_integer(buf0);
match r0 {
Ok((_, val)) => {
assert_eq!(val, expected);
}
Err(_) => {
panic!("Result should have been ok.");
}
}
}
#[test]
fn test_mqtt_parse_variable_integer_largest_input() {
test_mqtt_parse_variable_fail(&[0xFF, 0xFF, 0xFF, 0xFF]);
}
#[test]
fn test_mqtt_parse_variable_integer_boundary() {
test_mqtt_parse_variable_fail(&[0xFF, 0xFF, 0xFF, 0x80]);
}
#[test]
fn test_mqtt_parse_variable_integer_largest_valid() {
test_mqtt_parse_variable_check(&[0xFF, 0xFF, 0xFF, 0x7F], 268435455);
}
#[test]
fn test_mqtt_parse_variable_integer_smallest_valid() {
test_mqtt_parse_variable_check(&[0x0], 0);
}
}

Loading…
Cancel
Save