summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTreehugger Robot <android-test-infra-autosubmit@system.gserviceaccount.com>2024-04-12 16:09:47 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2024-04-12 16:09:47 +0000
commitb28d119b15ba9ed925aec249be8537e6c6a5eddb (patch)
treed8fc4062da0d674db70b6f3ab6e49389c35936c7
parent202bac0222994d9d4dec7f7883670287fb3a0b7d (diff)
parent01a139338889a8ca62750c3472d5bb0c20d848ec (diff)
downloaduwb-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.rs98
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],
+ }))
+ );
+ }
+}