diff options
Diffstat (limited to 'tests/auto/network/socket')
4 files changed, 62 insertions, 28 deletions
diff --git a/tests/auto/network/socket/qlocalsocket/tst_qlocalsocket.cpp b/tests/auto/network/socket/qlocalsocket/tst_qlocalsocket.cpp index d7480a4109..0a112e3e07 100644 --- a/tests/auto/network/socket/qlocalsocket/tst_qlocalsocket.cpp +++ b/tests/auto/network/socket/qlocalsocket/tst_qlocalsocket.cpp @@ -190,7 +190,7 @@ private slots: } void slotError(QLocalSocket::LocalSocketError newError) { - QVERIFY(errorString() != "Unknown error"); + QVERIFY(errorString() != QLatin1String("Unknown error")); QCOMPARE(error(), newError); } void slotStateChanged(QLocalSocket::LocalSocketState newState) @@ -328,8 +328,9 @@ void tst_QLocalSocket::listenAndConnect_data() int connections = i; if (i == 2) connections = 5; - QTest::newRow(QString("null %1").arg(i).toLatin1()) << QString() << false << connections; - QTest::newRow(QString("tst_localsocket %1").arg(i).toLatin1()) << "tst_localsocket" << true << connections; + const QByteArray iB = QByteArray::number(i); + QTest::newRow(("null " + iB).constData()) << QString() << false << connections; + QTest::newRow(("tst_localsocket " + iB).constData()) << "tst_localsocket" << true << connections; } } @@ -535,7 +536,7 @@ void tst_QLocalSocket::sendData() if (server.hasPendingConnections()) { QString testLine = "test"; for (int i = 0; i < 50000; ++i) - testLine += "a"; + testLine += QLatin1Char('a'); QLocalSocket *serverSocket = server.nextPendingConnection(); QVERIFY(serverSocket); QCOMPARE(serverSocket->state(), QLocalSocket::ConnectedState); @@ -1237,7 +1238,7 @@ void tst_QLocalSocket::verifyListenWithDescriptor() QVERIFY2(server.fullServerName().at(0) == at, "abstract sockets should start with a '@'"); } else { QCOMPARE(server.fullServerName(), path); - if (path.contains(QLatin1String("/"))) { + if (path.contains(QLatin1Char('/'))) { QVERIFY2(server.serverName() == path.mid(path.lastIndexOf(QLatin1Char('/'))+1), "server name invalid short name"); } else { QVERIFY2(server.serverName() == path, "servier name doesn't match the path provided"); diff --git a/tests/auto/network/socket/qsocks5socketengine/tst_qsocks5socketengine.cpp b/tests/auto/network/socket/qsocks5socketengine/tst_qsocks5socketengine.cpp index 8da656aab7..bd43961ea2 100644 --- a/tests/auto/network/socket/qsocks5socketengine/tst_qsocks5socketengine.cpp +++ b/tests/auto/network/socket/qsocks5socketengine/tst_qsocks5socketengine.cpp @@ -613,8 +613,8 @@ void tst_QSocks5SocketEngine::tcpSocketBlockingTest() // Read greeting QVERIFY(socket.waitForReadyRead(5000)); - QString s = socket.readLine(); - QVERIFY2(QtNetworkSettings::compareReplyIMAP(s.toLatin1()), s.toLatin1().constData()); + QByteArray s = socket.readLine(); + QVERIFY2(QtNetworkSettings::compareReplyIMAP(s), s.constData()); // Write NOOP QCOMPARE((int) socket.write("1 NOOP\r\n", 8), 8); @@ -624,7 +624,7 @@ void tst_QSocks5SocketEngine::tcpSocketBlockingTest() // Read response s = socket.readLine(); - QCOMPARE(s.toLatin1().constData(), "1 OK Completed\r\n"); + QCOMPARE(s, QByteArrayLiteral("1 OK Completed\r\n")); // Write LOGOUT QCOMPARE((int) socket.write("2 LOGOUT\r\n", 10), 10); @@ -634,13 +634,13 @@ void tst_QSocks5SocketEngine::tcpSocketBlockingTest() // Read two lines of respose s = socket.readLine(); - QCOMPARE(s.toLatin1().constData(), "* BYE LOGOUT received\r\n"); + QCOMPARE(s, QByteArrayLiteral("* BYE LOGOUT received\r\n")); if (!socket.canReadLine()) QVERIFY(socket.waitForReadyRead(5000)); s = socket.readLine(); - QCOMPARE(s.toLatin1().constData(), "2 OK Completed\r\n"); + QCOMPARE(s, QByteArrayLiteral("2 OK Completed\r\n")); // Close the socket socket.close(); @@ -715,7 +715,7 @@ void tst_QSocks5SocketEngine::tcpSocketNonBlockingTest() // Read response QVERIFY(!tcpSocketNonBlocking_data.isEmpty()); - QCOMPARE(tcpSocketNonBlocking_data.at(0).toLatin1().constData(), "1 OK Completed\r\n"); + QCOMPARE(tcpSocketNonBlocking_data.at(0), QLatin1String("1 OK Completed\r\n")); tcpSocketNonBlocking_data.clear(); diff --git a/tests/auto/network/socket/qtcpsocket/tst_qtcpsocket.cpp b/tests/auto/network/socket/qtcpsocket/tst_qtcpsocket.cpp index abbc560414..a5ba405dd4 100644 --- a/tests/auto/network/socket/qtcpsocket/tst_qtcpsocket.cpp +++ b/tests/auto/network/socket/qtcpsocket/tst_qtcpsocket.cpp @@ -201,6 +201,7 @@ private slots: void setSocketOption(); void clientSendDataOnDelayedDisconnect(); void serverDisconnectWithBuffered(); + void socketDiscardDataInWriteMode(); protected slots: void nonBlockingIMAP_hostFound(); @@ -1775,7 +1776,7 @@ void tst_QTcpSocket::atEnd() // Test server must use some vsFTPd 2.x.x version QVERIFY2(greeting.length() == sizeof("220 (vsFTPd 2.x.x)")-1, qPrintable(greeting)); QVERIFY2(greeting.startsWith("220 (vsFTPd 2."), qPrintable(greeting)); - QVERIFY2(greeting.endsWith(")"), qPrintable(greeting)); + QVERIFY2(greeting.endsWith(QLatin1Char(')')), qPrintable(greeting)); delete socket; } @@ -3028,5 +3029,36 @@ void tst_QTcpSocket::serverDisconnectWithBuffered() delete socket; } +// Test buffered sockets discard input when opened in WriteOnly mode +void tst_QTcpSocket::socketDiscardDataInWriteMode() +{ + QFETCH_GLOBAL(bool, setProxy); + if (setProxy) + return; + + QTcpServer tcpServer; + QTcpSocket *socket = newSocket(); + + QVERIFY(tcpServer.listen(QHostAddress::LocalHost)); + socket->connectToHost(tcpServer.serverAddress(), tcpServer.serverPort(), + QIODevice::WriteOnly); + QVERIFY(socket->waitForConnected(5000)); // ready for write + QCOMPARE(socket->state(), QAbstractSocket::ConnectedState); + + // Accept connection on server side + QVERIFY2(tcpServer.waitForNewConnection(5000), "Network timeout"); + QTcpSocket *newConnection = tcpServer.nextPendingConnection(); + // Send one char and drop link + QVERIFY(newConnection != NULL); + QVERIFY(newConnection->putChar(0)); + QVERIFY(newConnection->flush()); + delete newConnection; + + QVERIFY(socket->waitForReadyRead(5000)); // discard input + QVERIFY(socket->atEnd()); + + delete socket; +} + QTEST_MAIN(tst_QTcpSocket) #include "tst_qtcpsocket.moc" diff --git a/tests/auto/network/socket/qudpsocket/tst_qudpsocket.cpp b/tests/auto/network/socket/qudpsocket/tst_qudpsocket.cpp index 0ee3255502..cad81d870c 100644 --- a/tests/auto/network/socket/qudpsocket/tst_qudpsocket.cpp +++ b/tests/auto/network/socket/qudpsocket/tst_qudpsocket.cpp @@ -1119,12 +1119,13 @@ void tst_QUdpSocket::multicastTtlOption_data() addresses += QHostAddress(QHostAddress::AnyIPv6); foreach (const QHostAddress &address, addresses) { - QTest::newRow(QString("%1 0").arg(address.toString()).toLatin1()) << address << 0 << 0; - QTest::newRow(QString("%1 1").arg(address.toString()).toLatin1()) << address << 1 << 1; - QTest::newRow(QString("%1 2").arg(address.toString()).toLatin1()) << address << 2 << 2; - QTest::newRow(QString("%1 128").arg(address.toString()).toLatin1()) << address << 128 << 128; - QTest::newRow(QString("%1 255").arg(address.toString()).toLatin1()) << address << 255 << 255; - QTest::newRow(QString("%1 1024").arg(address.toString()).toLatin1()) << address << 1024 << 1; + const QByteArray addressB = address.toString().toLatin1(); + QTest::newRow((addressB + " 0").constData()) << address << 0 << 0; + QTest::newRow((addressB + " 1").constData()) << address << 1 << 1; + QTest::newRow((addressB + " 2").constData()) << address << 2 << 2; + QTest::newRow((addressB + " 128").constData()) << address << 128 << 128; + QTest::newRow((addressB + " 255").constData()) << address << 255 << 255; + QTest::newRow((addressB + " 1024").constData()) << address << 1024 << 1; } } @@ -1163,13 +1164,14 @@ void tst_QUdpSocket::multicastLoopbackOption_data() addresses += QHostAddress(QHostAddress::AnyIPv6); foreach (const QHostAddress &address, addresses) { - QTest::newRow(QString("%1 0").arg(address.toString()).toLatin1()) << address << 0 << 0; - QTest::newRow(QString("%1 1").arg(address.toString()).toLatin1()) << address << 1 << 1; - QTest::newRow(QString("%1 2").arg(address.toString()).toLatin1()) << address << 2 << 1; - QTest::newRow(QString("%1 0 again").arg(address.toString()).toLatin1()) << address << 0 << 0; - QTest::newRow(QString("%1 2 again").arg(address.toString()).toLatin1()) << address << 2 << 1; - QTest::newRow(QString("%1 0 last time").arg(address.toString()).toLatin1()) << address << 0 << 0; - QTest::newRow(QString("%1 1 again").arg(address.toString()).toLatin1()) << address << 1 << 1; + const QByteArray addressB = address.toString().toLatin1(); + QTest::newRow((addressB + " 0").constData()) << address << 0 << 0; + QTest::newRow((addressB + " 1").constData()) << address << 1 << 1; + QTest::newRow((addressB + " 2").constData()) << address << 2 << 1; + QTest::newRow((addressB + " 0 again").constData()) << address << 0 << 0; + QTest::newRow((addressB + " 2 again").constData()) << address << 2 << 1; + QTest::newRow((addressB + " 0 last time").constData()) << address << 0 << 0; + QTest::newRow((addressB + " 1 again").constData()) << address << 1 << 1; } } @@ -1266,9 +1268,8 @@ void tst_QUdpSocket::setMulticastInterface_data() if ((iface.flags() & QNetworkInterface::IsUp) == 0) continue; foreach (const QNetworkAddressEntry &entry, iface.addressEntries()) { - QTest::newRow(QString("%1:%2").arg(iface.name()).arg(entry.ip().toString()).toLatin1()) - << iface - << entry.ip(); + const QByteArray testName = iface.name().toLatin1() + ':' + entry.ip().toString().toLatin1(); + QTest::newRow(testName.constData()) << iface << entry.ip(); } } } |