32 lines
776 B
C
32 lines
776 B
C
#include <criterion/criterion.h>
|
|
#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);
|
|
}
|