Changeset View
Changeset View
Standalone View
Standalone View
head/tests/sys/net/routing/test_rtsock_l3.c
Show First 20 Lines • Show All 173 Lines • ▼ Show 20 Lines | if (dst != NULL) { | ||||
ret = sa_equal_msg(sa, dst, msg, sizeof(msg)); | ret = sa_equal_msg(sa, dst, msg, sizeof(msg)); | ||||
RTSOCK_ATF_REQUIRE_MSG(rtm, ret != 0, "DST sa diff: %s", msg); | RTSOCK_ATF_REQUIRE_MSG(rtm, ret != 0, "DST sa diff: %s", msg); | ||||
} | } | ||||
if (mask != NULL) { | if (mask != NULL) { | ||||
sa = rtsock_find_rtm_sa(rtm, RTA_NETMASK); | sa = rtsock_find_rtm_sa(rtm, RTA_NETMASK); | ||||
RTSOCK_ATF_REQUIRE_MSG(rtm, sa != NULL, "NETMASK is not set"); | RTSOCK_ATF_REQUIRE_MSG(rtm, sa != NULL, "NETMASK is not set"); | ||||
ret = sa_equal_msg(sa, mask, msg, sizeof(msg)); | ret = sa_equal_msg(sa, mask, msg, sizeof(msg)); | ||||
ret = 1; | |||||
RTSOCK_ATF_REQUIRE_MSG(rtm, ret != 0, "NETMASK sa diff: %s", msg); | RTSOCK_ATF_REQUIRE_MSG(rtm, ret != 0, "NETMASK sa diff: %s", msg); | ||||
} | } | ||||
if (gw != NULL) { | if (gw != NULL) { | ||||
sa = rtsock_find_rtm_sa(rtm, RTA_GATEWAY); | sa = rtsock_find_rtm_sa(rtm, RTA_GATEWAY); | ||||
RTSOCK_ATF_REQUIRE_MSG(rtm, sa != NULL, "GATEWAY is not set"); | RTSOCK_ATF_REQUIRE_MSG(rtm, sa != NULL, "GATEWAY is not set"); | ||||
ret = sa_equal_msg(sa, gw, msg, sizeof(msg)); | ret = sa_equal_msg(sa, gw, msg, sizeof(msg)); | ||||
RTSOCK_ATF_REQUIRE_MSG(rtm, ret != 0, "GATEWAY sa diff: %s", msg); | RTSOCK_ATF_REQUIRE_MSG(rtm, ret != 0, "GATEWAY sa diff: %s", msg); | ||||
▲ Show 20 Lines • Show All 408 Lines • ▼ Show 20 Lines | ATF_TC_BODY(rtm_add_v4_temporal1_success, tc) | ||||
RTSOCK_ATF_REQUIRE_MSG(rtm, rtm->rtm_inits & RTV_EXPIRE, "RTV_EXPIRE not set"); | RTSOCK_ATF_REQUIRE_MSG(rtm, rtm->rtm_inits & RTV_EXPIRE, "RTV_EXPIRE not set"); | ||||
/* The next should be route deletion */ | /* The next should be route deletion */ | ||||
rtm = rtsock_read_rtm(c->rtsock_fd, buffer, sizeof(buffer)); | rtm = rtsock_read_rtm(c->rtsock_fd, buffer, sizeof(buffer)); | ||||
verify_route_message(rtm, RTM_DELETE, (struct sockaddr *)&net4, | verify_route_message(rtm, RTM_DELETE, (struct sockaddr *)&net4, | ||||
(struct sockaddr *)&mask4, (struct sockaddr *)&gw4); | (struct sockaddr *)&mask4, (struct sockaddr *)&gw4); | ||||
/* TODO: add RTF_DONE */ | verify_route_message_extra(rtm, c->ifindex, RTF_GATEWAY | RTF_DONE | RTF_STATIC); | ||||
verify_route_message_extra(rtm, c->ifindex, RTF_GATEWAY | RTF_STATIC); | |||||
} | } | ||||
ATF_TC_CLEANUP(rtm_add_v4_temporal1_success, tc) | ATF_TC_CLEANUP(rtm_add_v4_temporal1_success, tc) | ||||
{ | { | ||||
CLEANUP_AFTER_TEST; | CLEANUP_AFTER_TEST; | ||||
} | } | ||||
ATF_TC_WITH_CLEANUP(rtm_add_v6_temporal1_success); | ATF_TC_WITH_CLEANUP(rtm_add_v6_temporal1_success); | ||||
Show All 31 Lines | ATF_TC_BODY(rtm_add_v6_temporal1_success, tc) | ||||
/* The next should be route deletion */ | /* The next should be route deletion */ | ||||
rtm = rtsock_read_rtm(c->rtsock_fd, buffer, sizeof(buffer)); | rtm = rtsock_read_rtm(c->rtsock_fd, buffer, sizeof(buffer)); | ||||
verify_route_message(rtm, RTM_DELETE, (struct sockaddr *)&net6, | verify_route_message(rtm, RTM_DELETE, (struct sockaddr *)&net6, | ||||
(struct sockaddr *)&mask6, (struct sockaddr *)&gw6); | (struct sockaddr *)&mask6, (struct sockaddr *)&gw6); | ||||
/* XXX: Currently kernel sets RTF_UP automatically but does NOT report it in the reply */ | /* XXX: Currently kernel sets RTF_UP automatically but does NOT report it in the reply */ | ||||
/* TODO: add RTF_DONE */ | verify_route_message_extra(rtm, c->ifindex, RTF_GATEWAY | RTF_DONE | RTF_STATIC); | ||||
verify_route_message_extra(rtm, c->ifindex, RTF_GATEWAY | RTF_STATIC); | |||||
} | } | ||||
ATF_TC_CLEANUP(rtm_add_v6_temporal1_success, tc) | ATF_TC_CLEANUP(rtm_add_v6_temporal1_success, tc) | ||||
{ | { | ||||
CLEANUP_AFTER_TEST; | CLEANUP_AFTER_TEST; | ||||
} | } | ||||
/* Interface address messages tests */ | /* Interface address messages tests */ | ||||
▲ Show 20 Lines • Show All 339 Lines • ▼ Show 20 Lines | ATF_TP_ADD_TCS(tp) | ||||
/* ifaddr tests */ | /* ifaddr tests */ | ||||
ATF_TP_ADD_TC(tp, rtm_add_v6_gu_ifa_hostroute_success); | ATF_TP_ADD_TC(tp, rtm_add_v6_gu_ifa_hostroute_success); | ||||
ATF_TP_ADD_TC(tp, rtm_add_v6_gu_ifa_prefixroute_success); | ATF_TP_ADD_TC(tp, rtm_add_v6_gu_ifa_prefixroute_success); | ||||
ATF_TP_ADD_TC(tp, rtm_add_v6_gu_ifa_ordered_success); | ATF_TP_ADD_TC(tp, rtm_add_v6_gu_ifa_ordered_success); | ||||
ATF_TP_ADD_TC(tp, rtm_del_v6_gu_ifa_hostroute_success); | ATF_TP_ADD_TC(tp, rtm_del_v6_gu_ifa_hostroute_success); | ||||
ATF_TP_ADD_TC(tp, rtm_del_v6_gu_ifa_prefixroute_success); | ATF_TP_ADD_TC(tp, rtm_del_v6_gu_ifa_prefixroute_success); | ||||
ATF_TP_ADD_TC(tp, rtm_add_v4_gu_ifa_ordered_success); | ATF_TP_ADD_TC(tp, rtm_add_v4_gu_ifa_ordered_success); | ||||
ATF_TP_ADD_TC(tp, rtm_del_v4_gu_ifa_prefixroute_success); | ATF_TP_ADD_TC(tp, rtm_del_v4_gu_ifa_prefixroute_success); | ||||
/* temporal routes */ | |||||
ATF_TP_ADD_TC(tp, rtm_add_v4_temporal1_success); | |||||
ATF_TP_ADD_TC(tp, rtm_add_v6_temporal1_success); | |||||
return (atf_no_error()); | return (atf_no_error()); | ||||
} | } | ||||