Implemented IpV6Packet and added raw-data constructor to INet6Address
[senf.git] / Socket / INetAddressing.test.cc
index 2b8f9d3..f649914 100644 (file)
@@ -111,6 +111,13 @@ BOOST_AUTO_UNIT_TEST(inet6Address)
        BOOST_CHECK_EQUAL( addr1, addr2 );
        BOOST_CHECK_THROW( addr1 = "", InvalidINetAddressException );
        BOOST_CHECK_EQUAL( boost::lexical_cast<std::string>(addr1), "::" );
+       unsigned char data[] = { 0x12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x21, 0 };
+       INet6Address addr3 (std::make_pair(&data[0],&data[0]+sizeof(data)-1));
+       BOOST_CHECK_EQUAL( addr3, "1200::21" );
+       BOOST_CHECK_THROW( INet6Address(std::make_pair(&data[0],&data[0]+sizeof(data))), 
+                          InvalidINetAddressException );
+       BOOST_CHECK_THROW( INet6Address(std::make_pair(&data[0],&data[0]+sizeof(data)-2)), 
+                          InvalidINetAddressException );
     }
 
     {
@@ -141,10 +148,10 @@ BOOST_AUTO_UNIT_TEST(inet6Address)
        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_THROW( addr = "", InvalidINetAddressException );
+       BOOST_CHECK_THROW( addr = "[::1]", InvalidINetAddressException );
+       BOOST_CHECK_THROW( addr = "[::1]1234", InvalidINetAddressException );
+       addr = "[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 );