55 lines
1.6 KiB
C++
55 lines
1.6 KiB
C++
/**
|
|
* @file tests/can_net_node_uid.cpp
|
|
* @brief CAN Net node UID
|
|
* @date Dec 14, 2016
|
|
* @author jjacobs
|
|
* @copyright 2016 Dual Inventive Technology Centre B.V.
|
|
*/
|
|
#include "fixtures/CANTest.hpp"
|
|
|
|
/**
|
|
* Test DI_CAN_NET_CANID_MSG_NODE_UID macro
|
|
*/
|
|
TEST_F(DI_CAN, CANID_MSG_NODE_UID) {
|
|
struct di_can_msg *msg;
|
|
|
|
msg = di_can_msg_alloc_with_canid(&_ctx, DI_CAN_NET_CANID_MSG_NODE_UID(REPLY));
|
|
ASSERT_NE(nullptr, msg);
|
|
|
|
ASSERT_EQ(DI_CAN_MSGTYPE_NET, DI_CAN_GET_MSGTYPE(msg->canid));
|
|
ASSERT_EQ(DI_CAN_TRANSFERTYPE_REPLY, DI_CAN_GET_TRANSFERTYPE(msg->canid));
|
|
ASSERT_EQ(DI_CAN_NET_DTYPE_NODE_UID, DI_CAN_GET_DATATYPE(msg->canid));
|
|
|
|
di_can_msg_free(&msg);
|
|
}
|
|
|
|
/**
|
|
* Test di_can_net_reply_node_uid serializes the di_device_uid string
|
|
*/
|
|
TEST_F(DI_CAN, net_reply_node_uid) {
|
|
const char *uidexp = "12000000000000000000000000000034" ;
|
|
struct di_can_msg msg;
|
|
|
|
msg.src_id = 0x13371337;
|
|
|
|
/* Try to send unset and invalid device:uid */
|
|
ASSERT_EQ(DNE_PROTO, di_can_net_reply_node_uid(&_ctx, &msg));
|
|
|
|
ASSERT_EQ(DNOK, di_device_uid_set(uidexp));
|
|
ASSERT_EQ(DNOK, di_can_net_reply_node_uid(&_ctx, &msg));
|
|
|
|
struct di_can_msg *rep = di_can_recv(&_ctx, DI_CAN_MSGTYPE_ANY);
|
|
|
|
ASSERT_NE(nullptr, rep);
|
|
ASSERT_EQ(DI_CAN_TRANSFERTYPE_REPLY, DI_CAN_GET_TRANSFERTYPE(rep->canid));
|
|
ASSERT_EQ(DI_CAN_NET_DTYPE_NODE_UID, DI_CAN_GET_DATATYPE(rep->canid));
|
|
ASSERT_EQ(0x0, rep->src_id);
|
|
ASSERT_EQ(0x13371337, rep->dst_id);
|
|
ASSERT_FALSE(rep->broadcast);
|
|
ASSERT_EQ(DI_CAN_PTYPE_STRING, rep->ptype);
|
|
ASSERT_EQ(DI_DEVICE_UID_LEN, rep->size);
|
|
ASSERT_STREQ(uidexp, (const char *)rep->msg);
|
|
|
|
di_can_msg_free(&rep);
|
|
}
|