61 lines
1.2 KiB
C
61 lines
1.2 KiB
C
#include <criterion/criterion.h>
|
|
#include "icmp.h"
|
|
#include "internal/icmp_internal.h"
|
|
#include "internal/icmp_recv.h"
|
|
#include "test_helpers.h"
|
|
|
|
static void
|
|
dummy_callback(const icmp_reply_t *reply, void *userdata)
|
|
{
|
|
(void)reply;
|
|
(void)userdata;
|
|
}
|
|
|
|
Test(validate_params, null_handle)
|
|
{
|
|
int ret;
|
|
|
|
ret = recv_validate_params(NULL, dummy_callback);
|
|
cr_assert_eq(ret, 0);
|
|
}
|
|
|
|
Test(validate_params, null_callback)
|
|
{
|
|
icmp_handle_t *h;
|
|
int 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_validate_params((struct icmp_handle *)h, NULL);
|
|
cr_assert_eq(ret, 0);
|
|
icmp_destroy(h);
|
|
}
|
|
|
|
Test(validate_params, invalid_fd)
|
|
{
|
|
struct icmp_handle h;
|
|
int ret;
|
|
|
|
h.fd = -1;
|
|
h.last_error = ICMP_OK;
|
|
h.error_msg[0] = '\0';
|
|
ret = recv_validate_params(&h, dummy_callback);
|
|
cr_assert_eq(ret, 0);
|
|
cr_assert_eq(h.last_error, ICMP_ERR_INVALID);
|
|
}
|
|
|
|
Test(validate_params, valid_params)
|
|
{
|
|
icmp_handle_t *h;
|
|
int 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_validate_params((struct icmp_handle *)h, dummy_callback);
|
|
cr_assert_eq(ret, 1);
|
|
icmp_destroy(h);
|
|
}
|