#include #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); }