static bool test_stopped;
static int test_fd[2];
-static sd_event_source *recv_router_advertisement;
static struct {
struct in6_addr address;
unsigned char prefixlen;
}
TEST(ra) {
- sd_event *e;
- sd_radv *ra;
- unsigned i;
+ _cleanup_(sd_event_unrefp) sd_event *e = NULL;
+ _cleanup_(sd_event_source_unrefp) sd_event_source *recv_router_advertisement = NULL;
+ _cleanup_(sd_radv_unrefp) sd_radv *ra = NULL;
assert_se(socketpair(AF_UNIX, SOCK_SEQPACKET | SOCK_CLOEXEC | SOCK_NONBLOCK, 0, test_fd) >= 0);
assert_se(sd_radv_set_rdnss(ra, 60, &test_rdnss, 1) >= 0);
assert_se(sd_radv_set_dnssl(ra, 60, (char **)test_dnssl) >= 0);
- for (i = 0; i < ELEMENTSOF(prefix); i++) {
+ for (unsigned i = 0; i < ELEMENTSOF(prefix); i++) {
sd_radv_prefix *p;
printf("Test prefix %u\n", i);
assert_se(!p);
}
- assert_se(sd_event_add_io(e, &recv_router_advertisement, test_fd[0],
- EPOLLIN, radv_recv, ra) >= 0);
+ assert_se(sd_event_add_io(e, &recv_router_advertisement, test_fd[0], EPOLLIN, radv_recv, ra) >= 0);
+ assert_se(sd_event_source_set_io_fd_own(recv_router_advertisement, true) >= 0);
assert_se(sd_event_add_time_relative(e, NULL, CLOCK_BOOTTIME,
2 * USEC_PER_SEC, 0,
assert_se(sd_radv_start(ra) >= 0);
assert_se(sd_event_loop(e) >= 0);
-
- ra = sd_radv_unref(ra);
- assert_se(!ra);
-
- close(test_fd[0]);
-
- sd_event_unref(e);
}
DEFINE_TEST_MAIN(LOG_DEBUG);
#include "sd-ndisc.h"
#include "alloc-util.h"
+#include "fd-util.h"
#include "hexdecoct.h"
#include "icmp6-util.h"
#include "socket-util.h"
}
TEST(rs) {
- sd_event *e;
- sd_ndisc *nd;
+ _cleanup_(sd_event_unrefp) sd_event *e = NULL;
+ _cleanup_(sd_ndisc_unrefp) sd_ndisc *nd = NULL;
send_ra_function = send_ra;
assert_se(sd_ndisc_start(nd) >= 0);
assert_se(sd_ndisc_start(nd) >= 0);
assert_se(sd_ndisc_stop(nd) >= 0);
+ test_fd[1] = safe_close(test_fd[1]);
assert_se(sd_ndisc_start(nd) >= 0);
assert_se(sd_event_loop(e) >= 0);
- nd = sd_ndisc_unref(nd);
- assert_se(!nd);
-
- close(test_fd[1]);
-
- sd_event_unref(e);
+ test_fd[1] = safe_close(test_fd[1]);
}
static int test_timeout_value(uint8_t flags) {
}
TEST(timeout) {
- sd_event *e;
- sd_ndisc *nd;
+ _cleanup_(sd_event_unrefp) sd_event *e = NULL;
+ _cleanup_(sd_ndisc_unrefp) sd_ndisc *nd = NULL;
send_ra_function = test_timeout_value;
assert_se(sd_event_loop(e) >= 0);
- nd = sd_ndisc_unref(nd);
-
- sd_event_unref(e);
+ test_fd[1] = safe_close(test_fd[1]);
}
DEFINE_TEST_MAIN(LOG_DEBUG);