bool isStable;
bool isDeviceNextHop;
+ uint8_t onmeshIpv6Prefix[THREAD_IPV6_PREFIX_SIZE];
+ uint8_t onmeshIpv6PrefixLen;
+ bool preferred;
+ bool slaac;
+ bool dhcp;
+ bool configure;
+ bool defaultRoute;
+ bool onMesh;
+ bool stable;
+
thread_instance_h instance;
thread_route_info_h routeInfo;
+ thread_onmesh_prefix_info_h onmeshPrefix;
public:
static bool GetExternalRoutesCallback(int total,
preference = 0;
isStable = TRUE;
isDeviceNextHop = TRUE;
+ makeOnmeshIpv6Prefix();
+ onmeshIpv6PrefixLen = THREAD_IPV6_PREFIX_SIZE;
+ preferred = true;
+ slaac = true;
+ dhcp = true;
+ configure = true;
+ defaultRoute = true;
+ onMesh = true;
+ stable = true;
}
void TearDown() override
memcpy(ipv6Prefix, result.s6_addr,
THREAD_IPV6_PREFIX_SIZE * sizeof(uint8_t));
}
+
+ void makeOnmeshIpv6Prefix()
+ {
+ struct in6_addr result;
+ inet_pton(AF_INET6, DUMMY_IPV6_ADDRESS, &result);
+ memcpy(ipv6Prefix, result.s6_addr,
+ THREAD_IPV6_PREFIX_SIZE * sizeof(uint8_t));
+ }
};
TEST_F(ThreadBRTest, BREnableNotInitialized)
rloc16, preference, isStable, isDeviceNextHop, &routeInfo));
EXPECT_EQ(THREAD_ERROR_NONE,
thread_br_remove_external_route(instance, routeInfo));
+}
+
+TEST_F(ThreadBRTest, BRAddOnmeshPrefixNotInitialized)
+{
+ EXPECT_EQ(THREAD_ERROR_NONE, thread_deinitialize());
+ EXPECT_EQ(THREAD_ERROR_NOT_INITIALIZED,
+ thread_br_add_onmesh_prefix(instance, onmeshIpv6Prefix,
+ onmeshIpv6PrefixLen, preference, preferred, slaac,
+ dhcp, configure, defaultRoute, onMesh, stable, &onmeshPrefix));
+}
+
+TEST_F(ThreadBRTest, BRAddOnmeshPrefixInvalidParameter)
+{
+ EXPECT_EQ(THREAD_ERROR_INVALID_PARAMETER,
+ thread_br_add_onmesh_prefix(instance, onmeshIpv6Prefix,
+ onmeshIpv6PrefixLen, preference, preferred, slaac,
+ dhcp, configure, defaultRoute, onMesh, stable, &onmeshPrefix));
+}
+
+TEST_F(ThreadBRTest, BRAddOnmeshPrefixNotEnabled)
+{
+ EXPECT_EQ(THREAD_ERROR_NONE, thread_enable(&instance));
+ EXPECT_EQ(THREAD_ERROR_NOT_ENABLED,
+ thread_br_add_onmesh_prefix(instance, onmeshIpv6Prefix,
+ onmeshIpv6PrefixLen, preference, preferred, slaac,
+ dhcp, configure, defaultRoute, onMesh, stable, &onmeshPrefix));
+}
+
+TEST_F(ThreadBRTest, BRAddOnmeshPrefixErrorNone)
+{
+ EXPECT_EQ(THREAD_ERROR_NONE, thread_enable(&instance));
+ EXPECT_EQ(THREAD_ERROR_NONE, thread_br_enable(instance));
+ EXPECT_EQ(THREAD_ERROR_NONE,
+ thread_br_add_onmesh_prefix(instance, onmeshIpv6Prefix,
+ onmeshIpv6PrefixLen, preference, preferred, slaac,
+ dhcp, configure, defaultRoute, onMesh, stable, &onmeshPrefix));
}
\ No newline at end of file