tests/gnrc_netif: avoid explicit cast to netdev

This commit is contained in:
Jose Alamos 2021-06-22 11:05:29 +02:00
parent b483d1f809
commit 82a429e982
No known key found for this signature in database
GPG Key ID: F483EB800EF89DD9
3 changed files with 43 additions and 29 deletions

View File

@ -27,8 +27,8 @@
static netdev_test_t _devs[NETIF_NUMOF]; static netdev_test_t _devs[NETIF_NUMOF];
netdev_t *ethernet_dev = (netdev_t *)&_devs[0]; netdev_t *ethernet_dev = &_devs[DEV_ETHERNET].netdev.netdev;
netdev_t *ieee802154_dev = (netdev_t *)&_devs[1]; netdev_t *ieee802154_dev = &_devs[DEV_IEEE802154].netdev.netdev;
netdev_t *devs[DEFAULT_DEVS_NUMOF]; netdev_t *devs[DEFAULT_DEVS_NUMOF];
#define MSG_QUEUE_SIZE (8) #define MSG_QUEUE_SIZE (8)
@ -116,7 +116,8 @@ static int _get_netdev_device_type(netdev_t *netdev, void *value, size_t max_len
expect(max_len == sizeof(uint16_t)); expect(max_len == sizeof(uint16_t));
(void)max_len; (void)max_len;
netdev_test_t *dev = (netdev_test_t *)netdev; netdev_ieee802154_t *netdev_ieee802154 = container_of(netdev, netdev_ieee802154_t, netdev);
netdev_test_t *dev = container_of(netdev_ieee802154, netdev_test_t, netdev);
if (dev->state == 0x0) { if (dev->state == 0x0) {
*((uint16_t *)value) = NETDEV_TYPE_ETHERNET; *((uint16_t *)value) = NETDEV_TYPE_ETHERNET;
@ -143,7 +144,8 @@ static int _get_netdev_max_packet_size(netdev_t *netdev, void *value, size_t max
expect(max_len == sizeof(uint16_t)); expect(max_len == sizeof(uint16_t));
(void)max_len; (void)max_len;
netdev_test_t *dev = (netdev_test_t *)netdev; netdev_ieee802154_t *netdev_ieee802154 = container_of(netdev, netdev_ieee802154_t, netdev);
netdev_test_t *dev = container_of(netdev_ieee802154, netdev_test_t, netdev);
if (dev->state == 0x0) { if (dev->state == 0x0) {
*((uint16_t *)value) = ETHERNET_DATA_LEN; *((uint16_t *)value) = ETHERNET_DATA_LEN;
@ -161,26 +163,26 @@ static int _get_netdev_max_packet_size(netdev_t *netdev, void *value, size_t max
void _tests_init(void) void _tests_init(void)
{ {
msg_init_queue(_main_msg_queue, MSG_QUEUE_SIZE); msg_init_queue(_main_msg_queue, MSG_QUEUE_SIZE);
netdev_test_setup((netdev_test_t *)ethernet_dev, 0); netdev_test_setup(&_devs[DEV_ETHERNET], 0);
netdev_test_set_send_cb((netdev_test_t *)ethernet_dev, _dump_send_packet); netdev_test_set_send_cb(&_devs[DEV_ETHERNET], _dump_send_packet);
netdev_test_set_recv_cb((netdev_test_t *)ethernet_dev, _netdev_recv); netdev_test_set_recv_cb(&_devs[DEV_ETHERNET], _netdev_recv);
netdev_test_set_isr_cb((netdev_test_t *)ethernet_dev, _netdev_isr); netdev_test_set_isr_cb(&_devs[DEV_ETHERNET], _netdev_isr);
netdev_test_set_get_cb((netdev_test_t *)ethernet_dev, NETOPT_DEVICE_TYPE, netdev_test_set_get_cb(&_devs[DEV_ETHERNET], NETOPT_DEVICE_TYPE,
_get_netdev_device_type); _get_netdev_device_type);
netdev_test_set_get_cb((netdev_test_t *)ethernet_dev, NETOPT_MAX_PDU_SIZE, netdev_test_set_get_cb(&_devs[DEV_ETHERNET], NETOPT_MAX_PDU_SIZE,
_get_netdev_max_packet_size); _get_netdev_max_packet_size);
netdev_test_setup((netdev_test_t *)ieee802154_dev, (void *)1); netdev_test_setup(&_devs[DEV_IEEE802154], (void *)1);
netdev_test_set_send_cb((netdev_test_t *)ieee802154_dev, _dump_send_packet); netdev_test_set_send_cb(&_devs[DEV_IEEE802154], _dump_send_packet);
netdev_test_set_recv_cb((netdev_test_t *)ieee802154_dev, _netdev_recv); netdev_test_set_recv_cb(&_devs[DEV_IEEE802154], _netdev_recv);
netdev_test_set_isr_cb((netdev_test_t *)ieee802154_dev, _netdev_isr); netdev_test_set_isr_cb(&_devs[DEV_IEEE802154], _netdev_isr);
netdev_test_set_get_cb((netdev_test_t *)ieee802154_dev, NETOPT_DEVICE_TYPE, netdev_test_set_get_cb(&_devs[DEV_IEEE802154], NETOPT_DEVICE_TYPE,
_get_netdev_device_type); _get_netdev_device_type);
netdev_test_set_get_cb((netdev_test_t *)ieee802154_dev, NETOPT_PROTO, netdev_test_set_get_cb(&_devs[DEV_IEEE802154], NETOPT_PROTO,
_get_netdev_proto); _get_netdev_proto);
netdev_test_set_get_cb((netdev_test_t *)ieee802154_dev, netdev_test_set_get_cb(&_devs[DEV_IEEE802154],
NETOPT_MAX_PDU_SIZE, _get_netdev_max_packet_size); NETOPT_MAX_PDU_SIZE, _get_netdev_max_packet_size);
for (intptr_t i = SPECIAL_DEVS; i < NETIF_NUMOF; i++) { for (intptr_t i = SPECIAL_DEVS; i < NETIF_NUMOF; i++) {
devs[i - SPECIAL_DEVS] = (netdev_t *)&_devs[i]; devs[i - SPECIAL_DEVS] = &_devs[i].netdev.netdev;
netdev_test_setup(&_devs[i], (void *)i); netdev_test_setup(&_devs[i], (void *)i);
netdev_test_set_get_cb(&_devs[i], NETOPT_DEVICE_TYPE, netdev_test_set_get_cb(&_devs[i], NETOPT_DEVICE_TYPE,
_get_netdev_device_type); _get_netdev_device_type);

View File

@ -29,6 +29,8 @@ extern "C" {
#define NETIF_NUMOF (4) #define NETIF_NUMOF (4)
#define SPECIAL_DEVS (2) #define SPECIAL_DEVS (2)
#define DEFAULT_DEVS_NUMOF (NETIF_NUMOF - SPECIAL_DEVS) #define DEFAULT_DEVS_NUMOF (NETIF_NUMOF - SPECIAL_DEVS)
#define DEV_ETHERNET 0
#define DEV_IEEE802154 1
#define GP1 (0x20U) #define GP1 (0x20U)
#define GP2 (0x01U) #define GP2 (0x01U)

View File

@ -1770,27 +1770,37 @@ static Test *embunit_tests_gnrc_netif(void)
int main(void) int main(void)
{ {
_tests_init(); _tests_init();
netdev_test_set_get_cb((netdev_test_t *)ethernet_dev, NETOPT_ADDRESS, netdev_test_t *test_ethernet = container_of(
container_of(ethernet_dev, netdev_ieee802154_t, netdev),
netdev_test_t,
netdev
);
netdev_test_t *test_ieee802154 = container_of(
container_of(ieee802154_dev, netdev_ieee802154_t, netdev),
netdev_test_t,
netdev
);
netdev_test_set_get_cb(test_ethernet, NETOPT_ADDRESS,
_get_netdev_address); _get_netdev_address);
netdev_test_set_set_cb((netdev_test_t *)ethernet_dev, NETOPT_ADDRESS, netdev_test_set_set_cb(test_ethernet, NETOPT_ADDRESS,
_set_netdev_address); _set_netdev_address);
netdev_test_set_get_cb((netdev_test_t *)ethernet_dev, NETOPT_L2_GROUP, netdev_test_set_get_cb(test_ethernet, NETOPT_L2_GROUP,
_get_netdev_l2_group); _get_netdev_l2_group);
netdev_test_set_set_cb((netdev_test_t *)ethernet_dev, NETOPT_L2_GROUP, netdev_test_set_set_cb(test_ethernet, NETOPT_L2_GROUP,
_set_netdev_l2_group); _set_netdev_l2_group);
netdev_test_set_set_cb((netdev_test_t *)ethernet_dev, NETOPT_L2_GROUP_LEAVE, netdev_test_set_set_cb(test_ethernet, NETOPT_L2_GROUP_LEAVE,
_set_netdev_l2_group_leave); _set_netdev_l2_group_leave);
netdev_test_set_get_cb((netdev_test_t *)ieee802154_dev, NETOPT_ADDRESS, netdev_test_set_get_cb(test_ieee802154, NETOPT_ADDRESS,
_get_netdev_address); _get_netdev_address);
netdev_test_set_set_cb((netdev_test_t *)ieee802154_dev, NETOPT_ADDRESS, netdev_test_set_set_cb(test_ieee802154, NETOPT_ADDRESS,
_set_netdev_address); _set_netdev_address);
netdev_test_set_get_cb((netdev_test_t *)ieee802154_dev, NETOPT_ADDRESS_LONG, netdev_test_set_get_cb(test_ieee802154, NETOPT_ADDRESS_LONG,
_get_netdev_address_long); _get_netdev_address_long);
netdev_test_set_set_cb((netdev_test_t *)ieee802154_dev, NETOPT_ADDRESS_LONG, netdev_test_set_set_cb(test_ieee802154, NETOPT_ADDRESS_LONG,
_set_netdev_address_long); _set_netdev_address_long);
netdev_test_set_get_cb((netdev_test_t *)ieee802154_dev, NETOPT_SRC_LEN, netdev_test_set_get_cb(test_ieee802154, NETOPT_SRC_LEN,
_get_netdev_src_len); _get_netdev_src_len);
netdev_test_set_set_cb((netdev_test_t *)ieee802154_dev, NETOPT_SRC_LEN, netdev_test_set_set_cb(test_ieee802154, NETOPT_SRC_LEN,
_set_netdev_src_len); _set_netdev_src_len);
TESTS_START(); TESTS_START();
TESTS_RUN(embunit_tests_gnrc_netif()); TESTS_RUN(embunit_tests_gnrc_netif());