static void test_ipv6_netif_remove__not_allocated(void) { test_ipv6_netif_add__success(); /* adds DEFAULT_TEST_NETIF as interface */ ng_ipv6_netif_remove(OTHER_TEST_NETIF); TEST_ASSERT_NULL(ng_ipv6_netif_get(OTHER_TEST_NETIF)); TEST_ASSERT_NOT_NULL(ng_ipv6_netif_get(DEFAULT_TEST_NETIF)); }
static void test_ipv6_netif_find_best_src_addr__success(void) { ng_ipv6_addr_t ll_addr1 = NG_IPV6_ADDR_UNSPECIFIED; ng_ipv6_addr_t ll_addr2 = NG_IPV6_ADDR_UNSPECIFIED; ng_ipv6_addr_t mc_addr = NG_IPV6_ADDR_ALL_NODES_LINK_LOCAL; ng_ipv6_addr_t *out = NULL; ll_addr1.u8[15] = 1; ng_ipv6_addr_set_link_local_prefix(&ll_addr1); ll_addr2.u8[15] = 2; ng_ipv6_addr_set_link_local_prefix(&ll_addr2); TEST_ASSERT_EQUAL_INT(126, ng_ipv6_addr_match_prefix(&ll_addr2, &ll_addr1)); test_ipv6_netif_add__success(); /* adds DEFAULT_TEST_NETIF as interface */ TEST_ASSERT_EQUAL_INT(0, ng_ipv6_netif_add_addr(DEFAULT_TEST_NETIF, &mc_addr, DEFAULT_TEST_PREFIX_LEN, false)); TEST_ASSERT_EQUAL_INT(0, ng_ipv6_netif_add_addr(DEFAULT_TEST_NETIF, &ll_addr1, DEFAULT_TEST_PREFIX_LEN, false)); TEST_ASSERT_NOT_NULL((out = ng_ipv6_netif_find_best_src_addr(DEFAULT_TEST_NETIF, &ll_addr2))); TEST_ASSERT(out != &ll_addr1); TEST_ASSERT(out != &ll_addr2); TEST_ASSERT_EQUAL_INT(true, ng_ipv6_addr_equal(out, &ll_addr1)); }
static void test_ipv6_netif_add_addr__addr_NULL(void) { test_ipv6_netif_add__success(); /* adds DEFAULT_TEST_NETIF as interface */ TEST_ASSERT_EQUAL_INT(-EINVAL, ng_ipv6_netif_add_addr(DEFAULT_TEST_NETIF, NULL, DEFAULT_TEST_PREFIX_LEN, false)); }
static void test_ipv6_netif_add_addr__despite_free_entry(void) { /* Tests for possible duplicates as described in http://github.com/RIOT-OS/RIOT/issues/2965 */ ipv6_addr_t *entry_1; ipv6_addr_t *entry_2; ipv6_addr_t default_addr = DEFAULT_TEST_IPV6_ADDR; ipv6_addr_t ll_addr; test_ipv6_netif_add__success(); /* adds DEFAULT_TEST_NETIF as interface */ /* add addresses to the interface */ TEST_ASSERT_NOT_NULL((entry_1 = ng_ipv6_netif_add_addr(DEFAULT_TEST_NETIF, &default_addr, DEFAULT_TEST_PREFIX_LEN, 0))); /* remove default_addr, but not the others (corresponding lla, solicited-node addr) * that came with it */ ng_ipv6_netif_remove_addr(DEFAULT_TEST_NETIF, &default_addr); /* create and re-add corresponding lla and check that it hasn't taken * the old place of default_addr*/ ll_addr.u64[1] = default_addr.u64[1]; ipv6_addr_set_link_local_prefix(&ll_addr); TEST_ASSERT_NOT_NULL((entry_2 = ng_ipv6_netif_add_addr(DEFAULT_TEST_NETIF, &ll_addr, DEFAULT_TEST_PREFIX_LEN, 0))); TEST_ASSERT(entry_1 != entry_2); }
static void test_ipv6_netif_add__despite_free_entry(void) { /* Tests for possible duplicates as described in http://github.com/RIOT-OS/RIOT/issues/2965 */ ng_ipv6_netif_add(OTHER_TEST_NETIF); test_ipv6_netif_add__success(); /* adds DEFAULT_TEST_NETIF as interface */ /* create space by removing first entry */ ng_ipv6_netif_remove(OTHER_TEST_NETIF); /* add DEFAULT_TEST_NETIF yet again and remove it */ test_ipv6_netif_add__success(); ng_ipv6_netif_remove(DEFAULT_TEST_NETIF); /* see if there's a duplicate left */ TEST_ASSERT_NULL(ng_ipv6_netif_get(DEFAULT_TEST_NETIF)); }
static void test_ipv6_netif_add_addr__success(void) { ipv6_addr_t addr = DEFAULT_TEST_IPV6_ADDR; test_ipv6_netif_add__success(); /* adds DEFAULT_TEST_NETIF as interface */ TEST_ASSERT_NOT_NULL(ng_ipv6_netif_add_addr(DEFAULT_TEST_NETIF, &addr, DEFAULT_TEST_PREFIX_LEN, 0)); }
static void test_ipv6_netif_add_addr__addr_unspecified(void) { ipv6_addr_t addr = IPV6_ADDR_UNSPECIFIED; test_ipv6_netif_add__success(); /* adds DEFAULT_TEST_NETIF as interface */ TEST_ASSERT_NULL(ng_ipv6_netif_add_addr(DEFAULT_TEST_NETIF, &addr, DEFAULT_TEST_PREFIX_LEN, 0)); }
static void test_ipv6_netif_add_addr__success(void) { ng_ipv6_addr_t addr = DEFAULT_TEST_IPV6_ADDR; test_ipv6_netif_add__success(); /* adds DEFAULT_TEST_NETIF as interface */ TEST_ASSERT_EQUAL_INT(0, ng_ipv6_netif_add_addr(DEFAULT_TEST_NETIF, &addr, DEFAULT_TEST_PREFIX_LEN, false)); }
static void test_ipv6_netif_add_addr__addr_unspecified(void) { ng_ipv6_addr_t addr = NG_IPV6_ADDR_UNSPECIFIED; test_ipv6_netif_add__success(); /* adds DEFAULT_TEST_NETIF as interface */ TEST_ASSERT_EQUAL_INT(-EINVAL, ng_ipv6_netif_add_addr(DEFAULT_TEST_NETIF, &addr, DEFAULT_TEST_PREFIX_LEN, false)); }
static void test_ipv6_netif_addr_is_non_unicast__multicast1(void) { ipv6_addr_t addr = IPV6_ADDR_ALL_ROUTERS_LINK_LOCAL; ipv6_addr_t *out = NULL; test_ipv6_netif_add__success(); /* adds DEFAULT_TEST_NETIF as interface */ TEST_ASSERT_NOT_NULL(ng_ipv6_netif_add_addr(DEFAULT_TEST_NETIF, &addr, DEFAULT_TEST_PREFIX_LEN, 0)); TEST_ASSERT_NOT_NULL((out = ng_ipv6_netif_find_addr(DEFAULT_TEST_NETIF, &addr))); TEST_ASSERT_EQUAL_INT(true, ng_ipv6_netif_addr_is_non_unicast(out)); }
static void test_ipv6_netif_addr_is_non_unicast__anycast(void) { ng_ipv6_addr_t addr = DEFAULT_TEST_IPV6_ADDR; ng_ipv6_addr_t *out = NULL; test_ipv6_netif_add__success(); /* adds DEFAULT_TEST_NETIF as interface */ TEST_ASSERT_EQUAL_INT(0, ng_ipv6_netif_add_addr(DEFAULT_TEST_NETIF, &addr, DEFAULT_TEST_PREFIX_LEN, true)); TEST_ASSERT_NOT_NULL((out = ng_ipv6_netif_find_addr(DEFAULT_TEST_NETIF, &addr))); TEST_ASSERT_EQUAL_INT(true, ng_ipv6_netif_addr_is_non_unicast(out)); }
static void test_ipv6_netif_add_addr__ENOMEM(void) { ng_ipv6_addr_t addr = DEFAULT_TEST_IPV6_ADDR; int res = 0, i; test_ipv6_netif_add__success(); /* adds DEFAULT_TEST_NETIF as interface */ for (i = 0; res != -ENOMEM; i++, addr.u8[15]++) { res = ng_ipv6_netif_add_addr(DEFAULT_TEST_NETIF, &addr, DEFAULT_TEST_PREFIX_LEN, false); } TEST_ASSERT_EQUAL_INT(NG_IPV6_NETIF_ADDR_NUMOF, i); }
static void test_ipv6_netif_add_addr__full(void) { ipv6_addr_t addr = DEFAULT_TEST_IPV6_ADDR, *res = &addr; int i; /* make link local to avoid automatic link local adding */ ipv6_addr_set_link_local_prefix(&addr); test_ipv6_netif_add__success(); /* adds DEFAULT_TEST_NETIF as interface */ for (i = 0; res != NULL; i++, addr.u8[15]++) { res = ng_ipv6_netif_add_addr(DEFAULT_TEST_NETIF, &addr, DEFAULT_TEST_PREFIX_LEN, 0); } }
static void test_ipv6_netif_find_best_src_addr__other_subnet(void) { ipv6_addr_t addr1 = DEFAULT_TEST_IPV6_ADDR; ipv6_addr_t addr2 = OTHER_TEST_IPV6_ADDR; ipv6_addr_t *out = NULL; test_ipv6_netif_add__success(); /* adds DEFAULT_TEST_NETIF as interface */ TEST_ASSERT_NOT_NULL(ng_ipv6_netif_add_addr(DEFAULT_TEST_NETIF, &addr1, DEFAULT_TEST_PREFIX_LEN, 0)); TEST_ASSERT_NOT_NULL((out = ng_ipv6_netif_find_best_src_addr(DEFAULT_TEST_NETIF, &addr2))); TEST_ASSERT(out != &addr1); TEST_ASSERT_EQUAL_INT(true, ipv6_addr_equal(out, &addr1)); }
static void test_ipv6_netif_find_best_src_addr__no_unicast(void) { ipv6_addr_t ll_addr1 = IPV6_ADDR_UNSPECIFIED; ipv6_addr_t ll_addr2 = IPV6_ADDR_UNSPECIFIED; ipv6_addr_t mc_addr = IPV6_ADDR_ALL_NODES_LINK_LOCAL; ll_addr1.u8[15] = 1; ipv6_addr_set_link_local_prefix(&ll_addr1); ll_addr2.u8[15] = 2; ipv6_addr_set_link_local_prefix(&ll_addr2); TEST_ASSERT_EQUAL_INT(126, ipv6_addr_match_prefix(&ll_addr2, &ll_addr1)); test_ipv6_netif_add__success(); /* adds DEFAULT_TEST_NETIF as interface */ TEST_ASSERT_NOT_NULL(ng_ipv6_netif_add_addr(DEFAULT_TEST_NETIF, &mc_addr, DEFAULT_TEST_PREFIX_LEN, 0)); TEST_ASSERT_NOT_NULL(ng_ipv6_netif_add_addr(DEFAULT_TEST_NETIF, &ll_addr1, DEFAULT_TEST_PREFIX_LEN, NG_IPV6_NETIF_ADDR_FLAGS_NON_UNICAST)); TEST_ASSERT_NULL(ng_ipv6_netif_find_best_src_addr(DEFAULT_TEST_NETIF, &ll_addr2)); }
static void test_ipv6_netif_add_addr__addr_NULL(void) { test_ipv6_netif_add__success(); /* adds DEFAULT_TEST_NETIF as interface */ TEST_ASSERT_NULL(ng_ipv6_netif_add_addr(DEFAULT_TEST_NETIF, NULL, DEFAULT_TEST_PREFIX_LEN, 0)); }