#include #include "icmp.h" #include "internal/icmp_internal.h" #include "internal/icmp_recv.h" #include "test_helpers.h" Test(receive_packet, invalid_fd) { uint8_t buffer[64]; struct sockaddr_in from; ssize_t ret; ret = recv_receive_packet(-1, buffer, sizeof(buffer), &from); cr_assert_eq(ret, -1); } Test(receive_packet, no_data_available) { icmp_handle_t *h; uint8_t buffer[64]; struct sockaddr_in from; ssize_t ret; if (0 == has_net_raw_capability()) cr_skip("Test requires CAP_NET_RAW or root privileges"); h = icmp_create(); cr_assert_not_null(h); ret = recv_receive_packet(((struct icmp_handle *)h)->fd, buffer, sizeof(buffer), &from); cr_assert_eq(ret, 0, "Should return 0 when no data (EAGAIN)"); icmp_destroy(h); }