⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ipaddresstest.cpp

📁 C++ class libraries for network-centric, portable applications, integrated perfectly with the C++ St
💻 CPP
字号:
//// IPAddressTest.cpp//// $Id: //poco/1.2/Net/testsuite/src/IPAddressTest.cpp#1 $//// Copyright (c) 2005-2006, Applied Informatics Software Engineering GmbH.// and Contributors.//// Permission is hereby granted, free of charge, to any person or organization// obtaining a copy of the software and accompanying documentation covered by// this license (the "Software") to use, reproduce, display, distribute,// execute, and transmit the Software, and to prepare derivative works of the// Software, and to permit third-parties to whom the Software is furnished to// do so, all subject to the following:// // The copyright notices in the Software and this entire statement, including// the above license grant, this restriction and the following disclaimer,// must be included in all copies of the Software, in whole or in part, and// all derivative works of the Software, unless such copies or derivative// works are solely in the form of machine-executable object code generated by// a source language processor.// // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,// FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT// SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE// FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER// DEALINGS IN THE SOFTWARE.//#include "IPAddressTest.h"#include "CppUnit/TestCaller.h"#include "CppUnit/TestSuite.h"#include "Poco/Net/IPAddress.h"#include "Poco/Net/NetException.h"using Poco::Net::IPAddress;using Poco::Net::InvalidAddressException;IPAddressTest::IPAddressTest(const std::string& name): CppUnit::TestCase(name){}IPAddressTest::~IPAddressTest(){}void IPAddressTest::testStringConv(){	IPAddress ia1("127.0.0.1");	assert (ia1.family() == IPAddress::IPv4);	assert (ia1.toString() == "127.0.0.1");		IPAddress ia2("192.168.1.120");	assert (ia2.family() == IPAddress::IPv4);	assert (ia2.toString() == "192.168.1.120");		IPAddress ia3("255.255.255.255");	assert (ia3.family() == IPAddress::IPv4);	assert (ia3.toString() == "255.255.255.255");	IPAddress ia4("0.0.0.0");	assert (ia4.family() == IPAddress::IPv4);	assert (ia4.toString() == "0.0.0.0");}void IPAddressTest::testStringConv6(){#ifdef POCO_HAVE_IPv6	IPAddress ia1("1080:0:0:0:8:600:200A:425C");	assert (ia1.family() == IPAddress::IPv6);	assert (ia1.toString() == "1080::8:600:200A:425C");		IPAddress ia2("1080::8:600:200A:425C");	assert (ia2.family() == IPAddress::IPv6);	assert (ia2.toString() == "1080::8:600:200A:425C");		IPAddress ia3("::192.168.1.120");	assert (ia3.family() == IPAddress::IPv6);	assert (ia3.toString() == "::192.168.1.120");	IPAddress ia4("::FFFF:192.168.1.120");	assert (ia4.family() == IPAddress::IPv6);	assert (ia4.toString() == "::FFFF:192.168.1.120");#endif}void IPAddressTest::testParse(){	IPAddress ip;	assert (IPAddress::tryParse("192.168.1.120", ip));		assert (!IPAddress::tryParse("192.168.1.280", ip));	ip = IPAddress::parse("192.168.1.120");	try	{		ip = IPAddress::parse("192.168.1.280");		fail("bad address - must throw");	}		catch (InvalidAddressException&)	{	}}void IPAddressTest::testClassification(){	IPAddress ip1("0.0.0.0"); // wildcard	assert (ip1.isWildcard());	assert (!ip1.isBroadcast());	assert (!ip1.isLoopback());	assert (!ip1.isMulticast());	assert (!ip1.isUnicast());	assert (!ip1.isLinkLocal());	assert (!ip1.isSiteLocal());	assert (!ip1.isWellKnownMC());	assert (!ip1.isNodeLocalMC());	assert (!ip1.isLinkLocalMC());	assert (!ip1.isSiteLocalMC());	assert (!ip1.isOrgLocalMC());	assert (!ip1.isGlobalMC());			IPAddress ip2("255.255.255.255"); // broadcast	assert (!ip2.isWildcard());	assert (ip2.isBroadcast());	assert (!ip2.isLoopback());	assert (!ip2.isMulticast());	assert (!ip2.isUnicast());	assert (!ip2.isLinkLocal());	assert (!ip2.isSiteLocal());	assert (!ip2.isWellKnownMC());	assert (!ip2.isNodeLocalMC());	assert (!ip2.isLinkLocalMC());	assert (!ip2.isSiteLocalMC());	assert (!ip2.isOrgLocalMC());	assert (!ip2.isGlobalMC());		IPAddress ip3("127.0.0.1"); // loopback	assert (!ip3.isWildcard());	assert (!ip3.isBroadcast());	assert (ip3.isLoopback());	assert (!ip3.isMulticast());	assert (ip3.isUnicast());	assert (!ip3.isLinkLocal());	assert (!ip3.isSiteLocal());	assert (!ip3.isWellKnownMC());	assert (!ip3.isNodeLocalMC());	assert (!ip3.isLinkLocalMC());	assert (!ip3.isSiteLocalMC());	assert (!ip3.isOrgLocalMC());	assert (!ip3.isGlobalMC());	IPAddress ip4("80.122.195.86"); // unicast	assert (!ip4.isWildcard());	assert (!ip4.isBroadcast());	assert (!ip4.isLoopback());	assert (!ip4.isMulticast());	assert (ip4.isUnicast());	assert (!ip4.isLinkLocal());	assert (!ip4.isSiteLocal());	assert (!ip4.isWellKnownMC());	assert (!ip4.isNodeLocalMC());	assert (!ip4.isLinkLocalMC());	assert (!ip4.isSiteLocalMC());	assert (!ip4.isOrgLocalMC());	assert (!ip4.isGlobalMC());	IPAddress ip5("169.254.1.20"); // link local unicast	assert (!ip5.isWildcard());	assert (!ip5.isBroadcast());	assert (!ip5.isLoopback());	assert (!ip5.isMulticast());	assert (ip5.isUnicast());	assert (ip5.isLinkLocal());	assert (!ip5.isSiteLocal());	assert (!ip5.isWellKnownMC());	assert (!ip5.isNodeLocalMC());	assert (!ip5.isLinkLocalMC());	assert (!ip5.isSiteLocalMC());	assert (!ip5.isOrgLocalMC());	assert (!ip5.isGlobalMC());	IPAddress ip6("192.168.1.120"); // site local unicast	assert (!ip6.isWildcard());	assert (!ip6.isBroadcast());	assert (!ip6.isLoopback());	assert (!ip6.isMulticast());	assert (ip6.isUnicast());	assert (!ip6.isLinkLocal());	assert (ip6.isSiteLocal());	assert (!ip6.isWellKnownMC());	assert (!ip6.isNodeLocalMC());	assert (!ip6.isLinkLocalMC());	assert (!ip6.isSiteLocalMC());	assert (!ip6.isOrgLocalMC());	assert (!ip6.isGlobalMC());	IPAddress ip7("10.0.0.138"); // site local unicast	assert (!ip7.isWildcard());	assert (!ip7.isBroadcast());	assert (!ip7.isLoopback());	assert (!ip7.isMulticast());	assert (ip7.isUnicast());	assert (!ip7.isLinkLocal());	assert (ip7.isSiteLocal());	assert (!ip7.isWellKnownMC());	assert (!ip7.isNodeLocalMC());	assert (!ip7.isLinkLocalMC());	assert (!ip7.isSiteLocalMC());	assert (!ip7.isOrgLocalMC());	assert (!ip7.isGlobalMC());	IPAddress ip8("172.18.1.200"); // site local unicast	assert (!ip8.isWildcard());	assert (!ip8.isBroadcast());	assert (!ip8.isLoopback());	assert (!ip8.isMulticast());	assert (ip8.isUnicast());	assert (!ip8.isLinkLocal());	assert (ip8.isSiteLocal());	assert (!ip8.isWellKnownMC());	assert (!ip8.isNodeLocalMC());	assert (!ip8.isLinkLocalMC());	assert (!ip8.isSiteLocalMC());	assert (!ip8.isOrgLocalMC());	assert (!ip8.isGlobalMC());}void IPAddressTest::testMCClassification(){	IPAddress ip1("224.0.0.100"); // well-known multicast	assert (!ip1.isWildcard());	assert (!ip1.isBroadcast());	assert (!ip1.isLoopback());	assert (ip1.isMulticast());	assert (!ip1.isUnicast());	assert (!ip1.isLinkLocal());	assert (!ip1.isSiteLocal());	assert (ip1.isWellKnownMC());	assert (!ip1.isNodeLocalMC());	assert (ip1.isLinkLocalMC()); // well known are in the range of link local	assert (!ip1.isSiteLocalMC());	assert (!ip1.isOrgLocalMC());	assert (!ip1.isGlobalMC());	IPAddress ip2("224.1.0.100"); // link local unicast	assert (!ip2.isWildcard());	assert (!ip2.isBroadcast());	assert (!ip2.isLoopback());	assert (ip2.isMulticast());	assert (!ip2.isUnicast());	assert (!ip2.isLinkLocal());	assert (!ip2.isSiteLocal());	assert (!ip2.isWellKnownMC());	assert (!ip2.isNodeLocalMC());	assert (ip2.isLinkLocalMC());	assert (!ip2.isSiteLocalMC());	assert (!ip2.isOrgLocalMC());	assert (ip2.isGlobalMC()); // link local fall in the range of global	IPAddress ip3("239.255.0.100"); // site local unicast	assert (!ip3.isWildcard());	assert (!ip3.isBroadcast());	assert (!ip3.isLoopback());	assert (ip3.isMulticast());	assert (!ip3.isUnicast());	assert (!ip3.isLinkLocal());	assert (!ip3.isSiteLocal());	assert (!ip3.isWellKnownMC());	assert (!ip3.isNodeLocalMC());	assert (!ip3.isLinkLocalMC());	assert (ip3.isSiteLocalMC());	assert (!ip3.isOrgLocalMC());	assert (!ip3.isGlobalMC());	IPAddress ip4("239.192.0.100"); // org local unicast	assert (!ip4.isWildcard());	assert (!ip4.isBroadcast());	assert (!ip4.isLoopback());	assert (ip4.isMulticast());	assert (!ip4.isUnicast());	assert (!ip4.isLinkLocal());	assert (!ip4.isSiteLocal());	assert (!ip4.isWellKnownMC());	assert (!ip4.isNodeLocalMC());	assert (!ip4.isLinkLocalMC());	assert (!ip4.isSiteLocalMC());	assert (ip4.isOrgLocalMC());	assert (!ip4.isGlobalMC());	IPAddress ip5("224.2.127.254"); // global unicast	assert (!ip5.isWildcard());	assert (!ip5.isBroadcast());	assert (!ip5.isLoopback());	assert (ip5.isMulticast());	assert (!ip5.isUnicast());	assert (!ip5.isLinkLocal());	assert (!ip5.isSiteLocal());	assert (!ip5.isWellKnownMC());	assert (!ip5.isNodeLocalMC());	assert (ip5.isLinkLocalMC()); // link local fall in the range of global	assert (!ip5.isSiteLocalMC());	assert (!ip5.isOrgLocalMC());	assert (ip5.isGlobalMC());}void IPAddressTest::testClassification6(){#ifdef POCO_HAVE_IPv6#endif}void IPAddressTest::testMCClassification6(){#ifdef POCO_HAVE_IPv6#endif}void IPAddressTest::testRelationals(){	IPAddress ip1("192.168.1.120");	IPAddress ip2(ip1);	IPAddress ip3;	IPAddress ip4("10.0.0.138");		assert (ip1 != ip4);	assert (ip1 == ip2);	assert (!(ip1 != ip2));	assert (!(ip1 == ip4));	assert (ip1 > ip4);	assert (ip1 >= ip4);	assert (ip4 < ip1);	assert (ip4 <= ip1);	assert (!(ip1 < ip4));	assert (!(ip1 <= ip4));	assert (!(ip4 > ip1));	assert (!(ip4 >= ip1));		ip3 = ip1;	assert (ip1 == ip3);	ip3 = ip4;	assert (ip1 != ip3);	assert (ip3 == ip4);}void IPAddressTest::testRelationals6(){#ifdef POCO_HAVE_IPv6#endif}void IPAddressTest::setUp(){}void IPAddressTest::tearDown(){}CppUnit::Test* IPAddressTest::suite(){	CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("IPAddressTest");	CppUnit_addTest(pSuite, IPAddressTest, testStringConv);	CppUnit_addTest(pSuite, IPAddressTest, testStringConv6);	CppUnit_addTest(pSuite, IPAddressTest, testParse);	CppUnit_addTest(pSuite, IPAddressTest, testClassification);	CppUnit_addTest(pSuite, IPAddressTest, testMCClassification);	CppUnit_addTest(pSuite, IPAddressTest, testClassification6);	CppUnit_addTest(pSuite, IPAddressTest, testMCClassification6);	CppUnit_addTest(pSuite, IPAddressTest, testRelationals);	CppUnit_addTest(pSuite, IPAddressTest, testRelationals6);	return pSuite;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -