51 lines
2.0 KiB
C++
51 lines
2.0 KiB
C++
/**
|
|
* @file tests/can_net_self.cpp
|
|
* @brief CAN NET self node configuration
|
|
* @date Dec 15, 2016
|
|
* @author jjacobs
|
|
* @copyright 2016 Dual Inventive Technology Centre B.V.
|
|
*/
|
|
#include "fixtures/CANTest.hpp"
|
|
|
|
/** Verify the correct behaviour of the self node role */
|
|
TEST_F(DI_CAN, net_self_set_node_role) {
|
|
/* Initial value */
|
|
EXPECT_EQ(DI_CAN_NET_NODE_ROLE_PASSIVE, _ctx.net.self.role);
|
|
|
|
/* UNKNOWN, LEADER are not allowed */
|
|
EXPECT_EQ(DNE_OPDENIED, di_can_net_self_set_node_role(&_ctx, DI_CAN_NET_NODE_ROLE_UNKNOWN));
|
|
EXPECT_EQ(DNE_OPDENIED, di_can_net_self_set_node_role(&_ctx, DI_CAN_NET_NODE_ROLE_LEADER));
|
|
|
|
/* PASSIVE -> FOLLOWER */
|
|
EXPECT_EQ(DNOK, di_can_net_self_set_node_role(&_ctx, DI_CAN_NET_NODE_ROLE_FOLLOWER));
|
|
EXPECT_EQ(DI_CAN_NET_NODE_ROLE_FOLLOWER, _ctx.net.self.role);
|
|
|
|
/* LEADER -> FOLLOWER */
|
|
_ctx.net.self.role = DI_CAN_NET_NODE_ROLE_LEADER;
|
|
EXPECT_EQ(DNOK, di_can_net_self_set_node_role(&_ctx, DI_CAN_NET_NODE_ROLE_FOLLOWER));
|
|
EXPECT_EQ(DI_CAN_NET_NODE_ROLE_FOLLOWER, _ctx.net.self.role);
|
|
|
|
/* LEADER -> PASSIVE */
|
|
_ctx.net.self.role = DI_CAN_NET_NODE_ROLE_LEADER;
|
|
EXPECT_EQ(DNOK, di_can_net_self_set_node_role(&_ctx, DI_CAN_NET_NODE_ROLE_PASSIVE));
|
|
EXPECT_EQ(DI_CAN_NET_NODE_ROLE_PASSIVE, _ctx.net.self.role);
|
|
}
|
|
|
|
/** Verify the correct behaviour of the self node type */
|
|
TEST_F(DI_CAN, net_self_set_node_type) {
|
|
/* Initial value */
|
|
EXPECT_EQ(DI_CAN_NET_NODE_TYPE_UNKNOWN, _ctx.net.self.type);
|
|
|
|
/* UNKNOWN -> UNKNOWN (denied) */
|
|
EXPECT_EQ(DNE_OPDENIED, di_can_net_self_set_node_type(&_ctx, DI_CAN_NET_NODE_TYPE_UNKNOWN));
|
|
|
|
/* UNKNOWN -> DEVICE -> DEVICE (denied) */
|
|
// EXPECT_EQ(DNOK, di_can_net_self_set_node_type(&_ctx, DI_CAN_NET_NODE_TYPE_DEVICE));
|
|
// EXPECT_EQ(DNE_OPDENIED, di_can_net_self_set_node_type(&_ctx, DI_CAN_NET_NODE_TYPE_DEVICE));
|
|
|
|
/* UNKNOWN -> GATEWAY */
|
|
_ctx.net.self.type = DI_CAN_NET_NODE_TYPE_UNKNOWN;
|
|
EXPECT_EQ(DNOK, di_can_net_self_set_node_type(&_ctx, DI_CAN_NET_NODE_TYPE_GATEWAY));
|
|
EXPECT_EQ(DNE_OPDENIED, di_can_net_self_set_node_type(&_ctx, DI_CAN_NET_NODE_TYPE_GATEWAY));
|
|
}
|