X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Socket%2FINetAddressing.test.cc;h=2b8f9d3e91cc25aa93bda8a079c3ae96ff4c4263;hb=cf4ebe486e7e0543ac8568d3043f43d95f197a96;hp=04b66009c3480b4d653049f0e1bc5acb117447f6;hpb=2d51a34f79dd18b23c54172444b2cc7433b8f5f0;p=senf.git diff --git a/Socket/INetAddressing.test.cc b/Socket/INetAddressing.test.cc index 04b6600..2b8f9d3 100644 --- a/Socket/INetAddressing.test.cc +++ b/Socket/INetAddressing.test.cc @@ -77,6 +77,80 @@ BOOST_AUTO_UNIT_TEST(inet4Address) BOOST_AUTO_UNIT_TEST(inet6Address) { + using senf::INet6Address; + using senf::INet6SocketAddress; + using senf::InvalidINetAddressException; + + { + INet6Address addr1 ("0102:0304:0506:0708:090A:0B0C:0D0E:0F00"); + BOOST_CHECK_EQUAL( addr1.addr().s6_addr[0], 1 ); + BOOST_CHECK_EQUAL( addr1.addr().s6_addr[1], 2 ); + BOOST_CHECK_EQUAL( addr1.addr().s6_addr[2], 3 ); + BOOST_CHECK_EQUAL( addr1.addr().s6_addr[3], 4 ); + BOOST_CHECK_EQUAL( addr1.addr().s6_addr[4], 5 ); + BOOST_CHECK_EQUAL( addr1.addr().s6_addr[5], 6 ); + BOOST_CHECK_EQUAL( addr1.addr().s6_addr[6], 7 ); + BOOST_CHECK_EQUAL( addr1.addr().s6_addr[7], 8 ); + BOOST_CHECK_EQUAL( addr1.addr().s6_addr[8], 9 ); + BOOST_CHECK_EQUAL( addr1.addr().s6_addr[9], 10 ); + BOOST_CHECK_EQUAL( addr1.addr().s6_addr[10], 11 ); + BOOST_CHECK_EQUAL( addr1.addr().s6_addr[11], 12 ); + BOOST_CHECK_EQUAL( addr1.addr().s6_addr[12], 13 ); + BOOST_CHECK_EQUAL( addr1.addr().s6_addr[13], 14 ); + BOOST_CHECK_EQUAL( addr1.addr().s6_addr[14], 15 ); + BOOST_CHECK_EQUAL( addr1.addr().s6_addr[15], 0 ); + INet6Address addr2; + BOOST_CHECK_EQUAL( addr2, "::" ); + addr2 = "::1"; + BOOST_CHECK( addr1 != addr2 ); + addr1 ="::1"; + BOOST_CHECK_EQUAL( addr1, addr2 ); + BOOST_CHECK_EQUAL( addr1.address(),"::1" ); + addr1.clear(); + addr2 = "::"; + BOOST_CHECK_EQUAL( addr1, addr2 ); + BOOST_CHECK_THROW( addr1 = "", InvalidINetAddressException ); + BOOST_CHECK_EQUAL( boost::lexical_cast(addr1), "::" ); + } + + { + INet6SocketAddress addr; + BOOST_CHECK_EQUAL( addr.host(), "::" ); + BOOST_CHECK_EQUAL( addr.port(), 0u ); + BOOST_CHECK_EQUAL( addr.iface(), "" ); + addr = "[12::21]:12345"; + BOOST_CHECK_EQUAL( addr.host(), "12::21" ); + BOOST_CHECK_EQUAL( addr.port(), 12345u ); + BOOST_CHECK_EQUAL( addr.iface(), "" ); + BOOST_CHECK_EQUAL( addr, INet6SocketAddress("[12::21]:12345") ); + } + + { + INet6SocketAddress addr ("::1", 1); + BOOST_CHECK_EQUAL( addr, "[::1]:1" ); + BOOST_CHECK_EQUAL( addr.iface(), "" ); + } + + { + INet6SocketAddress addr ("::1", 1, "lo"); + BOOST_CHECK_EQUAL( addr, "[::1@lo]:1" ); + BOOST_CHECK_EQUAL( addr.iface(), "lo" ); + addr.iface(""); + BOOST_CHECK_EQUAL( addr.iface(), "" ); + addr.port(100u); + BOOST_CHECK_EQUAL( addr.port(), 100u ); + addr.host("::2"); + BOOST_CHECK_EQUAL( addr.host(), "::2" ); + BOOST_CHECK_THROW( addr.address(""), InvalidINetAddressException ); + BOOST_CHECK_THROW( addr.address("[::1]"), InvalidINetAddressException ); + BOOST_CHECK_THROW( addr.address("[::1]1234"), InvalidINetAddressException ); + addr.address("[12::21@lo]:12345"); + BOOST_CHECK_EQUAL( addr.address(), "[12::21@lo]:12345" ); + BOOST_CHECK_EQUAL( addr.host(), "12::21" ); + BOOST_CHECK_EQUAL( addr.port(), 12345u ); + BOOST_CHECK_EQUAL( addr.iface(), "lo" ); + BOOST_CHECK_EQUAL( boost::lexical_cast(addr), "[12::21@lo]:12345" ); + } } ///////////////////////////////cc.e////////////////////////////////////////