tst_qudpsocket: Do not crash if no testserver address could be found
authorOliver Wolff <oliver.wolff@theqtcompany.com>
Fri, 31 Jul 2015 12:56:05 +0000 (14:56 +0200)
committerOliver Wolff <oliver.wolff@theqtcompany.com>
Mon, 17 Aug 2015 08:07:46 +0000 (08:07 +0000)
Change-Id: Ica61974b20b848997c8ab101abde4b536814ba83
Reviewed-by: Andrew Knight <andrew.knight@intopalo.com>
tests/auto/network/socket/qudpsocket/tst_qudpsocket.cpp

index 080f763f54ea88dcacd6af4347375610beb5267b..d14602acd92c7149b5219f1f80488cfa793e8e19 100644 (file)
@@ -848,7 +848,11 @@ void tst_QUdpSocket::writeDatagramToNonExistingPeer_data()
     QTest::addColumn<bool>("bind");
     QTest::addColumn<QHostAddress>("peerAddress");
     QHostAddress localhost(QHostAddress::LocalHost);
-    QHostAddress remote = QHostInfo::fromName(QtNetworkSettings::serverName()).addresses().first();
+    QList<QHostAddress> serverAddresses(QHostInfo::fromName(QtNetworkSettings::serverName()).addresses());
+    if (serverAddresses.isEmpty())
+        return;
+
+    QHostAddress remote = serverAddresses.first();
 
     QTest::newRow("localhost-unbound") << false << localhost;
     QTest::newRow("localhost-bound") << true << localhost;
@@ -858,6 +862,8 @@ void tst_QUdpSocket::writeDatagramToNonExistingPeer_data()
 
 void tst_QUdpSocket::writeDatagramToNonExistingPeer()
 {
+    if (QHostInfo::fromName(QtNetworkSettings::serverName()).addresses().isEmpty())
+        QFAIL("Could not find test server address");
     QFETCH(bool, bind);
     QFETCH(QHostAddress, peerAddress);
 
@@ -879,7 +885,11 @@ void tst_QUdpSocket::writeToNonExistingPeer_data()
 {
     QTest::addColumn<QHostAddress>("peerAddress");
     QHostAddress localhost(QHostAddress::LocalHost);
-    QHostAddress remote = QHostInfo::fromName(QtNetworkSettings::serverName()).addresses().first();
+    QList<QHostAddress> serverAddresses(QHostInfo::fromName(QtNetworkSettings::serverName()).addresses());
+    if (serverAddresses.isEmpty())
+        return;
+
+    QHostAddress remote = serverAddresses.first();
     // write (required to be connected)
     QTest::newRow("localhost") << localhost;
     QTest::newRow("remote") << remote;
@@ -888,6 +898,8 @@ void tst_QUdpSocket::writeToNonExistingPeer_data()
 void tst_QUdpSocket::writeToNonExistingPeer()
 {
     QSKIP("Connected-mode UDP sockets and their behaviour are erratic");
+    if (QHostInfo::fromName(QtNetworkSettings::serverName()).addresses().isEmpty())
+        QFAIL("Could not find test server address");
     QFETCH(QHostAddress, peerAddress);
     quint16 peerPort = 34534;
     qRegisterMetaType<QAbstractSocket::SocketError>("QAbstractSocket::SocketError");