Skip to content

Commit 2ef891d

Browse files
committed
wip: squashme: encode/decode
Signed-off-by: leongross <[email protected]>
1 parent 21101c1 commit 2ef891d

File tree

5 files changed

+627
-80
lines changed

5 files changed

+627
-80
lines changed

Cargo.lock

Lines changed: 7 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,4 @@ edition = "2024"
77
[dependencies]
88
zerocopy = {version = "0.8.17", features = ["derive"]}
99
bitfield = "0.14.0"
10+
bytemuck = "1.24.0"

src/message/firmware_update/get_package_data.rs

Lines changed: 43 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -438,7 +438,7 @@ mod tests {
438438
use crate::codec::PldmCodec;
439439

440440
#[test]
441-
fn test_get_package_data_request() {
441+
fn test_get_package_data_request_codec() {
442442
let instance_id: InstanceId = 0x01;
443443
let data_transfer_handle: u32 = 0x12345678;
444444
let transfer_operation_flag = TransferOperationFlag::GetFirstPart;
@@ -454,7 +454,7 @@ mod tests {
454454
}
455455

456456
#[test]
457-
fn test_get_package_data_response() {
457+
fn test_get_package_data_response_codec() {
458458
const PORTION_LEN: usize = 10;
459459

460460
let instance_id: InstanceId = 0x01;
@@ -483,7 +483,7 @@ mod tests {
483483
}
484484

485485
#[test]
486-
fn test_get_device_metadata_request() {
486+
fn test_get_metadata_request_codec() {
487487
let instance_id: InstanceId = 0x01;
488488
let data_transfer_handle = 0x12345678;
489489
let req = GetMetaDataRequest::new(
@@ -500,7 +500,7 @@ mod tests {
500500
}
501501

502502
#[test]
503-
fn test_get_device_metadata_response() {
503+
fn test_get_meta_data_response_codec() {
504504
let instance_id: InstanceId = 0x01;
505505
let data_transfer_handle = 0x12345678;
506506
let payload = [11u8; 20];
@@ -513,6 +513,45 @@ mod tests {
513513
&payload,
514514
);
515515

516+
let mut buffer =
517+
[0u8; core::mem::size_of::<GetMetaDataResponse>() - core::mem::size_of::<&[u8]>() + 20];
518+
resp.encode(&mut buffer).unwrap();
519+
520+
let decoded = GetMetaDataResponse::decode(&mut buffer).unwrap();
521+
assert_eq!(resp, decoded);
522+
}
523+
524+
#[test]
525+
fn test_get_device_meta_data_request_codec() {
526+
let instance_id: InstanceId = 0x01;
527+
let data_transfer_handle = 0x12345678;
528+
let req = GetDeviceMetaDataRequest::new(
529+
instance_id,
530+
data_transfer_handle,
531+
TransferOperationFlag::GetFirstPart,
532+
);
533+
534+
let mut buffer = [0u8; core::mem::size_of::<GetDeviceMetaDataRequest>()];
535+
req.encode(&mut buffer).unwrap();
536+
537+
let decoded = GetDeviceMetaDataRequest::decode(&buffer).unwrap();
538+
assert_eq!(req, decoded);
539+
}
540+
541+
#[test]
542+
fn test_get_device_metadata_response_codec() {
543+
let instance_id: InstanceId = 0x01;
544+
let data_transfer_handle = 0x12345678;
545+
let payload = [11u8; 20];
546+
547+
let resp = GetDeviceMetaDataResponse::new(
548+
instance_id,
549+
GetDeviceMetaDataCodes::BaseCodes(PldmBaseCompletionCode::Success),
550+
data_transfer_handle,
551+
TransferOperationFlag::GetFirstPart,
552+
&payload,
553+
);
554+
516555
let mut buffer = [0u8; 9 + 20];
517556
resp.encode(&mut buffer).unwrap();
518557

0 commit comments

Comments
 (0)