diff options
author | Alex Trotsenko <alex1973tr@gmail.com> | 2014-09-24 18:45:42 +0300 |
---|---|---|
committer | Alex Trotsenko <alex1973tr@gmail.com> | 2015-02-11 21:19:13 +0000 |
commit | 071716f2daebaebab562b7f49c29f281c5536bbc (patch) | |
tree | 44b80edfc27b7875ac182ca180ec64b758276791 /tests/auto | |
parent | 2688725eb73234a8870411017f85ec2fda6c80cd (diff) |
QAbstractSocket: remove unneeded cleanup calls and private member
QAbstractSocket::close() always calls QIODevice::close(), which resets
QIODevice's internal read buffer. So it makes no sense to make same calls
from disconnectFromHost(). This made the closeCalled private member
superfluous.
Change-Id: I4ec64e9711490e44e737763e4ed7fb41bffe2556
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'tests/auto')
-rw-r--r-- | tests/auto/network/socket/qtcpsocket/tst_qtcpsocket.cpp | 34 |
1 files changed, 33 insertions, 1 deletions
diff --git a/tests/auto/network/socket/qtcpsocket/tst_qtcpsocket.cpp b/tests/auto/network/socket/qtcpsocket/tst_qtcpsocket.cpp index 8bbbf79633..f9e02b40f6 100644 --- a/tests/auto/network/socket/qtcpsocket/tst_qtcpsocket.cpp +++ b/tests/auto/network/socket/qtcpsocket/tst_qtcpsocket.cpp @@ -196,7 +196,7 @@ private slots: void qtbug14268_peek(); void setSocketOption(); - + void clientSendDataOnDelayedDisconnect(); protected slots: void nonBlockingIMAP_hostFound(); @@ -2815,5 +2815,37 @@ void tst_QTcpSocket::setSocketOption() QVERIFY(v.isValid() && v.toInt() == 32); } +// Test buffered socket properly send data on delayed disconnect +void tst_QTcpSocket::clientSendDataOnDelayedDisconnect() +{ + QFETCH_GLOBAL(bool, setProxy); + if (setProxy) + return; + + QTcpServer server; + QTcpSocket *socket = newSocket(); + + QVERIFY(server.listen(QHostAddress::LocalHost)); + + // Connect to server, write data and close socket + const QByteArray sendData("GET /\r\n"); + socket->connectToHost(server.serverAddress(), server.serverPort()); + QVERIFY(socket->waitForConnected(5000)); // ready for write + QCOMPARE(socket->write(sendData), sendData.size()); + socket->close(); + QVERIFY(socket->waitForDisconnected(5000)); // flush buffer + + // Check data on server side + QByteArray recData; + QVERIFY(server.waitForNewConnection(5000)); + QTcpSocket *newConnection = server.nextPendingConnection(); + QVERIFY(newConnection != NULL); + while (newConnection->waitForReadyRead(5000)) // have data to read + recData += newConnection->readAll(); + QCOMPARE(sendData, recData); + + delete socket; +} + QTEST_MAIN(tst_QTcpSocket) #include "tst_qtcpsocket.moc" |