diff --git a/tests/gnrc_netif/common.c b/tests/gnrc_netif/common.c index 04a3b1f757..a47ad14ae9 100644 --- a/tests/gnrc_netif/common.c +++ b/tests/gnrc_netif/common.c @@ -27,8 +27,8 @@ static netdev_test_t _devs[NETIF_NUMOF]; -netdev_t *ethernet_dev = (netdev_t *)&_devs[0]; -netdev_t *ieee802154_dev = (netdev_t *)&_devs[1]; +netdev_t *ethernet_dev = &_devs[DEV_ETHERNET].netdev.netdev; +netdev_t *ieee802154_dev = &_devs[DEV_IEEE802154].netdev.netdev; netdev_t *devs[DEFAULT_DEVS_NUMOF]; #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)); (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) { *((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)); (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) { *((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) { msg_init_queue(_main_msg_queue, MSG_QUEUE_SIZE); - netdev_test_setup((netdev_test_t *)ethernet_dev, 0); - netdev_test_set_send_cb((netdev_test_t *)ethernet_dev, _dump_send_packet); - netdev_test_set_recv_cb((netdev_test_t *)ethernet_dev, _netdev_recv); - netdev_test_set_isr_cb((netdev_test_t *)ethernet_dev, _netdev_isr); - netdev_test_set_get_cb((netdev_test_t *)ethernet_dev, NETOPT_DEVICE_TYPE, + netdev_test_setup(&_devs[DEV_ETHERNET], 0); + netdev_test_set_send_cb(&_devs[DEV_ETHERNET], _dump_send_packet); + netdev_test_set_recv_cb(&_devs[DEV_ETHERNET], _netdev_recv); + netdev_test_set_isr_cb(&_devs[DEV_ETHERNET], _netdev_isr); + netdev_test_set_get_cb(&_devs[DEV_ETHERNET], NETOPT_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); - netdev_test_setup((netdev_test_t *)ieee802154_dev, (void *)1); - netdev_test_set_send_cb((netdev_test_t *)ieee802154_dev, _dump_send_packet); - netdev_test_set_recv_cb((netdev_test_t *)ieee802154_dev, _netdev_recv); - netdev_test_set_isr_cb((netdev_test_t *)ieee802154_dev, _netdev_isr); - netdev_test_set_get_cb((netdev_test_t *)ieee802154_dev, NETOPT_DEVICE_TYPE, + netdev_test_setup(&_devs[DEV_IEEE802154], (void *)1); + netdev_test_set_send_cb(&_devs[DEV_IEEE802154], _dump_send_packet); + netdev_test_set_recv_cb(&_devs[DEV_IEEE802154], _netdev_recv); + netdev_test_set_isr_cb(&_devs[DEV_IEEE802154], _netdev_isr); + netdev_test_set_get_cb(&_devs[DEV_IEEE802154], NETOPT_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); - 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); 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_set_get_cb(&_devs[i], NETOPT_DEVICE_TYPE, _get_netdev_device_type); diff --git a/tests/gnrc_netif/common.h b/tests/gnrc_netif/common.h index 34ac806aad..836cedf828 100644 --- a/tests/gnrc_netif/common.h +++ b/tests/gnrc_netif/common.h @@ -29,6 +29,8 @@ extern "C" { #define NETIF_NUMOF (4) #define SPECIAL_DEVS (2) #define DEFAULT_DEVS_NUMOF (NETIF_NUMOF - SPECIAL_DEVS) +#define DEV_ETHERNET 0 +#define DEV_IEEE802154 1 #define GP1 (0x20U) #define GP2 (0x01U) diff --git a/tests/gnrc_netif/main.c b/tests/gnrc_netif/main.c index eb9d50a543..3985bbb2f4 100644 --- a/tests/gnrc_netif/main.c +++ b/tests/gnrc_netif/main.c @@ -1770,27 +1770,37 @@ static Test *embunit_tests_gnrc_netif(void) int main(void) { _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); - netdev_test_set_set_cb((netdev_test_t *)ethernet_dev, NETOPT_ADDRESS, + netdev_test_set_set_cb(test_ethernet, NETOPT_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); - 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); - 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); - netdev_test_set_get_cb((netdev_test_t *)ieee802154_dev, NETOPT_ADDRESS, + netdev_test_set_get_cb(test_ieee802154, NETOPT_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); - 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); - 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); - 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); - 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); TESTS_START(); TESTS_RUN(embunit_tests_gnrc_netif());