Testing ipv6 shenanigans.
This commit is contained in:
parent
68d4d4c39b
commit
953bc460f4
1 changed files with 43 additions and 0 deletions
|
@ -1084,4 +1084,47 @@ TEST (network, ipv6_from_ipv4)
|
|||
ASSERT_TRUE (endpoint1.address ().is_v4 ());
|
||||
boost::asio::ip::udp::endpoint endpoint2 (boost::asio::ip::address_v6::v4_mapped (endpoint1.address ().to_v4 ()), 16000);
|
||||
ASSERT_TRUE (endpoint2.address ().is_v6 ());
|
||||
}
|
||||
|
||||
TEST (network, ipv6_bind_send_ipv4)
|
||||
{
|
||||
boost::asio::io_service service;
|
||||
boost::asio::ip::udp::endpoint endpoint1 (boost::asio::ip::address_v6::any (), 24000);
|
||||
boost::asio::ip::udp::endpoint endpoint2 (boost::asio::ip::address_v4::any (), 24001);
|
||||
std::array <uint8_t, 16> bytes1;
|
||||
auto finish1 (false);
|
||||
boost::asio::ip::udp::endpoint endpoint3;
|
||||
boost::asio::ip::udp::socket socket1 (service, endpoint1);
|
||||
socket1.async_receive_from (boost::asio::buffer (bytes1.data (), bytes1.size ()), endpoint3, [&finish1] (boost::system::error_code const & error, size_t size_a)
|
||||
{
|
||||
ASSERT_FALSE (error);
|
||||
ASSERT_EQ (16, size_a);
|
||||
finish1 = true;
|
||||
});
|
||||
boost::asio::ip::udp::socket socket2 (service, endpoint2);
|
||||
boost::asio::ip::udp::endpoint endpoint5 (boost::asio::ip::address_v4::loopback (), 24000);
|
||||
boost::asio::ip::udp::endpoint endpoint6 (boost::asio::ip::address_v6::v4_mapped (boost::asio::ip::address_v4::loopback ()), 24001);
|
||||
socket2.async_send_to (boost::asio::buffer (std::array <uint8_t, 16> {}, 16), endpoint5, [] (boost::system::error_code const & error, size_t size_a)
|
||||
{
|
||||
ASSERT_FALSE (error);
|
||||
ASSERT_EQ (16, size_a);
|
||||
});
|
||||
while (!finish1)
|
||||
{
|
||||
service.poll_one ();
|
||||
}
|
||||
ASSERT_EQ (endpoint6, endpoint3);
|
||||
std::array <uint8_t, 16> bytes2;
|
||||
auto finish2 (false);
|
||||
boost::asio::ip::udp::endpoint endpoint4;
|
||||
socket2.async_receive_from (boost::asio::buffer (bytes2.data (), bytes2.size ()), endpoint4, [&finish2] (boost::system::error_code const & error, size_t size_a)
|
||||
{
|
||||
ASSERT_FALSE (!error);
|
||||
ASSERT_EQ (16, size_a);
|
||||
});
|
||||
socket1.async_send_to (boost::asio::buffer (std::array <uint8_t, 16> {}, 16), endpoint6, [] (boost::system::error_code const & error, size_t size_a)
|
||||
{
|
||||
ASSERT_FALSE (error);
|
||||
ASSERT_EQ (16, size_a);
|
||||
});
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue