summaryrefslogtreecommitdiffstats
path: root/tests/auto/network/kernel/qhostaddress
diff options
context:
space:
mode:
authorShane Kearns <shane.kearns@accenture.com>2011-10-24 11:01:09 +0100
committerQt by Nokia <qt-info@nokia.com>2011-10-24 13:56:41 +0200
commit3736dcb65e92ea3d6f1af827a52b09ebd1250f7e (patch)
tree6dfe2acfabd55ac35135dfd19c4ada764001e475 /tests/auto/network/kernel/qhostaddress
parent29c30a20bab4c4ea892b95c08c71bb5f136bb82c (diff)
Network - Add QHostAddress::isLoopback API.
The standard IPv4 loopback address is 127.0.0.1, however anything in the 127.0.0.0/8 range is also a loopback address. isLoopback returns true for any address that is in the IPv4 loopback address range, or is the single IPv6 loopback address ::1 Task-number: QTBUG-22246 Change-Id: Ic39100e2e97a52db700e01b109998a1cfd4335e3 Reviewed-by: Thiago Macieira (Intel) <thiago.macieira@intel.com>
Diffstat (limited to 'tests/auto/network/kernel/qhostaddress')
-rw-r--r--tests/auto/network/kernel/qhostaddress/tst_qhostaddress.cpp40
1 files changed, 40 insertions, 0 deletions
diff --git a/tests/auto/network/kernel/qhostaddress/tst_qhostaddress.cpp b/tests/auto/network/kernel/qhostaddress/tst_qhostaddress.cpp
index b20e07be03..7e35830791 100644
--- a/tests/auto/network/kernel/qhostaddress/tst_qhostaddress.cpp
+++ b/tests/auto/network/kernel/qhostaddress/tst_qhostaddress.cpp
@@ -82,6 +82,8 @@ private slots:
void parseSubnet();
void isInSubnet_data();
void isInSubnet();
+ void isLoopback_data();
+ void isLoopback();
};
QT_BEGIN_NAMESPACE
@@ -607,5 +609,43 @@ void tst_QHostAddress::isInSubnet()
QTEST(address.isInSubnet(prefix, prefixLength), "result");
}
+void tst_QHostAddress::isLoopback_data()
+{
+ QTest::addColumn<QHostAddress>("address");
+ QTest::addColumn<bool>("result");
+
+ QTest::newRow("ipv6_loop") << QHostAddress(QHostAddress::LocalHostIPv6) << true;
+ QTest::newRow("::1") << QHostAddress("::1") << true;
+
+ QTest::newRow("ipv4_loop") << QHostAddress(QHostAddress::LocalHost) << true;
+ QTest::newRow("127.0.0.1") << QHostAddress("127.0.0.1") << true;
+ QTest::newRow("127.0.0.2") << QHostAddress("127.0.0.2") << true;
+ QTest::newRow("127.3.2.1") << QHostAddress("127.3.2.1") << true;
+
+ QTest::newRow("default") << QHostAddress() << false;
+ QTest::newRow("1.2.3.4") << QHostAddress("1.2.3.4") << false;
+ QTest::newRow("10.0.0.4") << QHostAddress("10.0.0.4") << false;
+ QTest::newRow("192.168.3.4") << QHostAddress("192.168.3.4") << false;
+
+ QTest::newRow("::") << QHostAddress("::") << false;
+ QTest::newRow("Any") << QHostAddress(QHostAddress::Any) << false;
+ QTest::newRow("AnyIPv4") << QHostAddress(QHostAddress::AnyIPv4) << false;
+ QTest::newRow("AnyIPv6") << QHostAddress(QHostAddress::AnyIPv6) << false;
+ QTest::newRow("Broadcast") << QHostAddress(QHostAddress::Broadcast) << false;
+ QTest::newRow("Null") << QHostAddress(QHostAddress::Null) << false;
+
+ QTest::newRow("::ffff:127.0.0.1") << QHostAddress("::ffff:127.0.0.1") << true;
+ QTest::newRow("::ffff:127.0.0.2") << QHostAddress("::ffff:127.0.0.2") << true;
+ QTest::newRow("::ffff:127.3.2.1") << QHostAddress("::ffff:127.3.2.1") << true;
+}
+
+void tst_QHostAddress::isLoopback()
+{
+ QFETCH(QHostAddress, address);
+ QFETCH(bool, result);
+
+ QCOMPARE(address.isLoopback(), result);
+}
+
QTEST_MAIN(tst_QHostAddress)
#include "tst_qhostaddress.moc"