Skip to content

Commit

Permalink
tests: Add more ser/deser test
Browse files Browse the repository at this point in the history
Signed-off-by: Patrick José Pereira <[email protected]>
Co-authored-by: : Ihsen Bouallegue <[email protected]>
  • Loading branch information
patrickelectric and IhsenBouallegue committed Nov 20, 2023
1 parent 63a51d8 commit 8e58086
Showing 1 changed file with 53 additions and 0 deletions.
53 changes: 53 additions & 0 deletions tests/mav_frame_tests.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
pub mod test_shared;

mod mav_frame_tests {
use mavlink::ardupilotmega::MavMessage;
use mavlink::MavFrame;
use mavlink::MavHeader;

// NOTE: No header
pub const HEARTBEAT_V2: &[u8] = &[
crate::test_shared::COMMON_MSG_HEADER.sequence,
Expand Down Expand Up @@ -46,4 +50,53 @@ mod mav_frame_tests {
assert_eq!(msg.system_status, heartbeat_msg.system_status);
assert_eq!(msg.mavlink_version, heartbeat_msg.mavlink_version);
}

#[test]
pub fn test_deser_ser_message() {
let buf: &mut [u8; 255] = &mut [0; 255];

let mavlink_message = mavlink_message();
let mavlink_frame = new(mavlink_message);

let _len = mavlink_frame.ser(buf);

let parsed_mavlink_frame =
MavFrame::<mavlink::ardupilotmega::MavMessage>::deser(mavlink::MavlinkVersion::V2, buf)
.unwrap();

assert_eq!(
format!("{mavlink_frame:?}"),
format!("{parsed_mavlink_frame:?}")
);
}

fn mavlink_message() -> mavlink::ardupilotmega::MavMessage {
mavlink::ardupilotmega::MavMessage::LINK_NODE_STATUS(
mavlink::ardupilotmega::LINK_NODE_STATUS_DATA {
timestamp: 92197916,
tx_rate: 0x11223344,
rx_rate: 0x55667788,
messages_sent: 0x99001122,
messages_received: 0x33445566,
messages_lost: 0x77889900,
rx_parse_err: 0x1122,
tx_overflows: 0x3355,
rx_overflows: 0x5566,
tx_buf: 0xff,
rx_buf: 0x11,
},
)
}

fn new(msg: MavMessage) -> MavFrame<MavMessage> {
MavFrame {
header: MavHeader {
system_id: 1,
component_id: 2,
sequence: 84,
},
msg,
protocol_version: mavlink::MavlinkVersion::V2,
}
}
}

0 comments on commit 8e58086

Please sign in to comment.