add unittests for vec conversion
This commit is contained in:
parent
4e90bbdc04
commit
b82a93757c
@ -205,11 +205,22 @@ mod tests {
|
|||||||
let mut buf: [u8; 64] = [0; 64];
|
let mut buf: [u8; 64] = [0; 64];
|
||||||
eof_pdu.write_to_bytes(&mut buf).unwrap();
|
eof_pdu.write_to_bytes(&mut buf).unwrap();
|
||||||
let eof_read_back = EofPdu::from_bytes(&buf);
|
let eof_read_back = EofPdu::from_bytes(&buf);
|
||||||
if !eof_read_back.is_ok() {
|
if eof_read_back.is_err() {
|
||||||
let e = eof_read_back.unwrap_err();
|
let e = eof_read_back.unwrap_err();
|
||||||
panic!("deserialization failed with: {e}")
|
panic!("deserialization failed with: {e}")
|
||||||
}
|
}
|
||||||
let eof_read_back = eof_read_back.unwrap();
|
let eof_read_back = eof_read_back.unwrap();
|
||||||
assert_eq!(eof_read_back, eof_pdu);
|
assert_eq!(eof_read_back, eof_pdu);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_write_to_vec() {
|
||||||
|
let pdu_conf = common_pdu_conf(CrcFlag::NoCrc, LargeFileFlag::Normal);
|
||||||
|
let pdu_header = PduHeader::new_no_file_data(pdu_conf, 0);
|
||||||
|
let eof_pdu = EofPdu::new_no_error(pdu_header, 0x01020304, 12);
|
||||||
|
let mut buf: [u8; 64] = [0; 64];
|
||||||
|
let written = eof_pdu.write_to_bytes(&mut buf).unwrap();
|
||||||
|
let pdu_vec = eof_pdu.to_vec().unwrap();
|
||||||
|
assert_eq!(buf[0..written], pdu_vec);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -234,13 +234,13 @@ mod tests {
|
|||||||
use crate::cfdp::{SegmentMetadataFlag, SegmentationControl};
|
use crate::cfdp::{SegmentMetadataFlag, SegmentationControl};
|
||||||
use crate::util::UbfU8;
|
use crate::util::UbfU8;
|
||||||
|
|
||||||
|
const SRC_ID: UbfU8 = UbfU8::new(1);
|
||||||
|
const DEST_ID: UbfU8 = UbfU8::new(2);
|
||||||
|
const SEQ_NUM: UbfU8 = UbfU8::new(3);
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_basic() {
|
fn test_basic() {
|
||||||
let src_id = UbfU8::new(1);
|
let common_conf = CommonPduConfig::new_with_byte_fields(SRC_ID, DEST_ID, SEQ_NUM).unwrap();
|
||||||
let dest_id = UbfU8::new(2);
|
|
||||||
let transaction_seq_num = UbfU8::new(3);
|
|
||||||
let common_conf =
|
|
||||||
CommonPduConfig::new_with_byte_fields(src_id, dest_id, transaction_seq_num).unwrap();
|
|
||||||
let pdu_header = PduHeader::new_for_file_data_default(common_conf, 0);
|
let pdu_header = PduHeader::new_for_file_data_default(common_conf, 0);
|
||||||
let file_data: [u8; 4] = [1, 2, 3, 4];
|
let file_data: [u8; 4] = [1, 2, 3, 4];
|
||||||
let fd_pdu = FileDataPdu::new_no_seg_metadata(pdu_header, 10, &file_data);
|
let fd_pdu = FileDataPdu::new_no_seg_metadata(pdu_header, 10, &file_data);
|
||||||
@ -255,11 +255,7 @@ mod tests {
|
|||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_serialization() {
|
fn test_serialization() {
|
||||||
let src_id = UbfU8::new(1);
|
let common_conf = CommonPduConfig::new_with_byte_fields(SRC_ID, DEST_ID, SEQ_NUM).unwrap();
|
||||||
let dest_id = UbfU8::new(2);
|
|
||||||
let transaction_seq_num = UbfU8::new(3);
|
|
||||||
let common_conf =
|
|
||||||
CommonPduConfig::new_with_byte_fields(src_id, dest_id, transaction_seq_num).unwrap();
|
|
||||||
let pdu_header = PduHeader::new_for_file_data_default(common_conf, 0);
|
let pdu_header = PduHeader::new_for_file_data_default(common_conf, 0);
|
||||||
let file_data: [u8; 4] = [1, 2, 3, 4];
|
let file_data: [u8; 4] = [1, 2, 3, 4];
|
||||||
let fd_pdu = FileDataPdu::new_no_seg_metadata(pdu_header, 10, &file_data);
|
let fd_pdu = FileDataPdu::new_no_seg_metadata(pdu_header, 10, &file_data);
|
||||||
@ -288,13 +284,21 @@ mod tests {
|
|||||||
assert_eq!(buf[current_idx], 4);
|
assert_eq!(buf[current_idx], 4);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_write_to_vec() {
|
||||||
|
let common_conf = CommonPduConfig::new_with_byte_fields(SRC_ID, DEST_ID, SEQ_NUM).unwrap();
|
||||||
|
let pdu_header = PduHeader::new_for_file_data_default(common_conf, 0);
|
||||||
|
let file_data: [u8; 4] = [1, 2, 3, 4];
|
||||||
|
let fd_pdu = FileDataPdu::new_no_seg_metadata(pdu_header, 10, &file_data);
|
||||||
|
let mut buf: [u8; 64] = [0; 64];
|
||||||
|
let written = fd_pdu.write_to_bytes(&mut buf).unwrap();
|
||||||
|
let pdu_vec = fd_pdu.to_vec().unwrap();
|
||||||
|
assert_eq!(buf[0..written], pdu_vec);
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_deserialization() {
|
fn test_deserialization() {
|
||||||
let src_id = UbfU8::new(1);
|
let common_conf = CommonPduConfig::new_with_byte_fields(SRC_ID, DEST_ID, SEQ_NUM).unwrap();
|
||||||
let dest_id = UbfU8::new(2);
|
|
||||||
let transaction_seq_num = UbfU8::new(3);
|
|
||||||
let common_conf =
|
|
||||||
CommonPduConfig::new_with_byte_fields(src_id, dest_id, transaction_seq_num).unwrap();
|
|
||||||
let pdu_header = PduHeader::new_for_file_data_default(common_conf, 0);
|
let pdu_header = PduHeader::new_for_file_data_default(common_conf, 0);
|
||||||
let file_data: [u8; 4] = [1, 2, 3, 4];
|
let file_data: [u8; 4] = [1, 2, 3, 4];
|
||||||
let fd_pdu = FileDataPdu::new_no_seg_metadata(pdu_header, 10, &file_data);
|
let fd_pdu = FileDataPdu::new_no_seg_metadata(pdu_header, 10, &file_data);
|
||||||
|
@ -335,6 +335,20 @@ mod tests {
|
|||||||
generic_serialization_test_no_error(DeliveryCode::Incomplete, FileStatus::Unreported);
|
generic_serialization_test_no_error(DeliveryCode::Incomplete, FileStatus::Unreported);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_write_to_vec() {
|
||||||
|
let finished_pdu = generic_finished_pdu(
|
||||||
|
CrcFlag::NoCrc,
|
||||||
|
LargeFileFlag::Normal,
|
||||||
|
DeliveryCode::Complete,
|
||||||
|
FileStatus::Retained,
|
||||||
|
);
|
||||||
|
let mut buf: [u8; 64] = [0; 64];
|
||||||
|
let written = finished_pdu.write_to_bytes(&mut buf).unwrap();
|
||||||
|
let pdu_vec = finished_pdu.to_vec().unwrap();
|
||||||
|
assert_eq!(buf[0..written], pdu_vec);
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_deserialization_simple() {
|
fn test_deserialization_simple() {
|
||||||
let finished_pdu = generic_finished_pdu(
|
let finished_pdu = generic_finished_pdu(
|
||||||
|
@ -388,6 +388,16 @@ pub mod tests {
|
|||||||
assert_eq!(current_idx, written);
|
assert_eq!(current_idx, written);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_write_to_vec() {
|
||||||
|
let (_, _, metadata_pdu) =
|
||||||
|
generic_metadata_pdu(CrcFlag::NoCrc, LargeFileFlag::Normal, None);
|
||||||
|
let mut buf: [u8; 64] = [0; 64];
|
||||||
|
let pdu_vec = metadata_pdu.to_vec().unwrap();
|
||||||
|
let written = metadata_pdu.write_to_bytes(&mut buf).unwrap();
|
||||||
|
assert_eq!(buf[0..written], pdu_vec);
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_deserialization() {
|
fn test_deserialization() {
|
||||||
let (_, _, metadata_pdu) =
|
let (_, _, metadata_pdu) =
|
||||||
|
@ -905,6 +905,20 @@ mod tests {
|
|||||||
verify_crc_no_app_data(&test_buf);
|
verify_crc_no_app_data(&test_buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_writing_into_vec() {
|
||||||
|
let pus_tc = base_ping_tc_simple_ctor();
|
||||||
|
let tc_vec = pus_tc.to_vec().expect("Error writing TC to buffer");
|
||||||
|
assert_eq!(tc_vec.len(), 13);
|
||||||
|
let (tc_from_raw, size) = PusTcReader::new(tc_vec.as_slice())
|
||||||
|
.expect("Creating PUS TC struct from raw buffer failed");
|
||||||
|
assert_eq!(size, 13);
|
||||||
|
verify_test_tc_with_reader(&tc_from_raw, false, 13);
|
||||||
|
assert!(tc_from_raw.user_data().is_empty());
|
||||||
|
verify_test_tc_raw(&tc_vec);
|
||||||
|
verify_crc_no_app_data(&tc_vec);
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_update_func() {
|
fn test_update_func() {
|
||||||
let mut sph = SpHeader::tc_unseg(0x02, 0x34, 0).unwrap();
|
let mut sph = SpHeader::tc_unseg(0x02, 0x34, 0).unwrap();
|
||||||
|
@ -999,7 +999,7 @@ mod tests {
|
|||||||
#[test]
|
#[test]
|
||||||
fn test_setters() {
|
fn test_setters() {
|
||||||
let timestamp = dummy_timestamp();
|
let timestamp = dummy_timestamp();
|
||||||
let mut pus_tm = base_ping_reply_full_ctor(×tamp);
|
let mut pus_tm = base_ping_reply_full_ctor(timestamp);
|
||||||
pus_tm.set_sc_time_ref_status(0b1010);
|
pus_tm.set_sc_time_ref_status(0b1010);
|
||||||
pus_tm.set_dest_id(0x7fff);
|
pus_tm.set_dest_id(0x7fff);
|
||||||
pus_tm.set_msg_counter(0x1f1f);
|
pus_tm.set_msg_counter(0x1f1f);
|
||||||
@ -1010,10 +1010,21 @@ mod tests {
|
|||||||
assert_eq!(pus_tm.apid(), 0x7ff);
|
assert_eq!(pus_tm.apid(), 0x7ff);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_write_into_vec() {
|
||||||
|
let timestamp = dummy_timestamp();
|
||||||
|
let pus_tm = base_ping_reply_full_ctor(timestamp);
|
||||||
|
let tm_vec = pus_tm.to_vec().expect("Serialization failed");
|
||||||
|
assert_eq!(tm_vec.len(), 22);
|
||||||
|
let (tm_deserialized, size) =
|
||||||
|
PusTmReader::new(tm_vec.as_slice(), 7).expect("Deserialization failed");
|
||||||
|
assert_eq!(tm_vec.len(), size);
|
||||||
|
verify_ping_reply_with_reader(&tm_deserialized, false, 22, dummy_timestamp());
|
||||||
|
}
|
||||||
#[test]
|
#[test]
|
||||||
fn test_deserialization_no_source_data() {
|
fn test_deserialization_no_source_data() {
|
||||||
let timestamp = dummy_timestamp();
|
let timestamp = dummy_timestamp();
|
||||||
let pus_tm = base_ping_reply_full_ctor(×tamp);
|
let pus_tm = base_ping_reply_full_ctor(timestamp);
|
||||||
let mut buf: [u8; 32] = [0; 32];
|
let mut buf: [u8; 32] = [0; 32];
|
||||||
let ser_len = pus_tm
|
let ser_len = pus_tm
|
||||||
.write_to_bytes(&mut buf)
|
.write_to_bytes(&mut buf)
|
||||||
@ -1045,7 +1056,7 @@ mod tests {
|
|||||||
#[test]
|
#[test]
|
||||||
fn test_target_buf_too_small() {
|
fn test_target_buf_too_small() {
|
||||||
let timestamp = dummy_timestamp();
|
let timestamp = dummy_timestamp();
|
||||||
let pus_tm = base_ping_reply_full_ctor(×tamp);
|
let pus_tm = base_ping_reply_full_ctor(timestamp);
|
||||||
let mut buf: [u8; 16] = [0; 16];
|
let mut buf: [u8; 16] = [0; 16];
|
||||||
let res = pus_tm.write_to_bytes(&mut buf);
|
let res = pus_tm.write_to_bytes(&mut buf);
|
||||||
assert!(res.is_err());
|
assert!(res.is_err());
|
||||||
|
Loading…
Reference in New Issue
Block a user