diff options
author | Treehugger Robot <android-test-infra-autosubmit@system.gserviceaccount.com> | 2024-04-12 16:09:47 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2024-04-12 16:09:47 +0000 |
commit | b28d119b15ba9ed925aec249be8537e6c6a5eddb (patch) | |
tree | d8fc4062da0d674db70b6f3ab6e49389c35936c7 | |
parent | 202bac0222994d9d4dec7f7883670287fb3a0b7d (diff) | |
parent | 01a139338889a8ca62750c3472d5bb0c20d848ec (diff) | |
download | uwb-b28d119b15ba9ed925aec249be8537e6c6a5eddb.tar.gz |
Merge "[unit_test] Add unit tests for uci vendor response." into main
-rw-r--r-- | src/rust/uwb_core/src/uci/response.rs | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/src/rust/uwb_core/src/uci/response.rs b/src/rust/uwb_core/src/uci/response.rs index 48313aa..8f5925e 100644 --- a/src/rust/uwb_core/src/uci/response.rs +++ b/src/rust/uwb_core/src/uci/response.rs @@ -296,3 +296,101 @@ fn raw_response(evt: uwb_uci_packets::UciResponse) -> Result<UciResponse> { let packet: UciControlPacket = evt.into(); Ok(UciResponse::RawUciCmd(Ok(RawUciMessage { gid, oid, payload: packet.to_raw_payload() }))) } + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn test_uci_response_casting_from_uci_vendor_response_packet() { + let mut uci_vendor_rsp_packet = uwb_uci_packets::UciResponse::try_from( + uwb_uci_packets::UciVendor_9_ResponseBuilder { + opcode: 0x00, + payload: Some(vec![0x0, 0x1, 0x2, 0x3].into()), + } + .build(), + ) + .unwrap(); + let mut uci_response = UciResponse::try_from(uci_vendor_rsp_packet.clone()).unwrap(); + assert_eq!( + uci_response, + UciResponse::RawUciCmd(Ok(RawUciMessage { + gid: 0x9, + oid: 0x0, + payload: vec![0x0, 0x1, 0x2, 0x3], + })) + ); + + uci_vendor_rsp_packet = uwb_uci_packets::UciResponse::try_from( + uwb_uci_packets::UciVendor_A_ResponseBuilder { + opcode: 0x00, + payload: Some(vec![0x0, 0x1, 0x2, 0x3].into()), + } + .build(), + ) + .unwrap(); + uci_response = UciResponse::try_from(uci_vendor_rsp_packet.clone()).unwrap(); + assert_eq!( + uci_response, + UciResponse::RawUciCmd(Ok(RawUciMessage { + gid: 0xA, + oid: 0x0, + payload: vec![0x0, 0x1, 0x2, 0x3], + })) + ); + + uci_vendor_rsp_packet = uwb_uci_packets::UciResponse::try_from( + uwb_uci_packets::UciVendor_B_ResponseBuilder { + opcode: 0x00, + payload: Some(vec![0x0, 0x1, 0x2, 0x3].into()), + } + .build(), + ) + .unwrap(); + uci_response = UciResponse::try_from(uci_vendor_rsp_packet.clone()).unwrap(); + assert_eq!( + uci_response, + UciResponse::RawUciCmd(Ok(RawUciMessage { + gid: 0xB, + oid: 0x0, + payload: vec![0x0, 0x1, 0x2, 0x3], + })) + ); + + uci_vendor_rsp_packet = uwb_uci_packets::UciResponse::try_from( + uwb_uci_packets::UciVendor_E_ResponseBuilder { + opcode: 0x00, + payload: Some(vec![0x0, 0x1, 0x2, 0x3].into()), + } + .build(), + ) + .unwrap(); + uci_response = UciResponse::try_from(uci_vendor_rsp_packet.clone()).unwrap(); + assert_eq!( + uci_response, + UciResponse::RawUciCmd(Ok(RawUciMessage { + gid: 0xE, + oid: 0x0, + payload: vec![0x0, 0x1, 0x2, 0x3], + })) + ); + + uci_vendor_rsp_packet = uwb_uci_packets::UciResponse::try_from( + uwb_uci_packets::UciVendor_F_ResponseBuilder { + opcode: 0x00, + payload: Some(vec![0x0, 0x1, 0x2, 0x3].into()), + } + .build(), + ) + .unwrap(); + uci_response = UciResponse::try_from(uci_vendor_rsp_packet.clone()).unwrap(); + assert_eq!( + uci_response, + UciResponse::RawUciCmd(Ok(RawUciMessage { + gid: 0xF, + oid: 0x0, + payload: vec![0x0, 0x1, 0x2, 0x3], + })) + ); + } +} |