diff options
Diffstat (limited to 'tests/auto/network')
25 files changed, 551 insertions, 331 deletions
diff --git a/tests/auto/network/access/http2/tst_http2.cpp b/tests/auto/network/access/http2/tst_http2.cpp index 904cfd52b0..38db74e52c 100644 --- a/tests/auto/network/access/http2/tst_http2.cpp +++ b/tests/auto/network/access/http2/tst_http2.cpp @@ -279,7 +279,7 @@ void tst_Http2::singleRequest() QVERIFY(prefaceOK); QVERIFY(serverGotSettingsACK); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QVERIFY(reply->isFinished()); } @@ -444,7 +444,7 @@ void tst_Http2::pushPromise() QVERIFY(prefaceOK); QVERIFY(serverGotSettingsACK); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QVERIFY(reply->isFinished()); // Now, the most interesting part! @@ -466,7 +466,7 @@ void tst_Http2::pushPromise() QCOMPARE(nSentRequests, 0); // Decreased by replyFinished(): QCOMPARE(nRequests, 0); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QVERIFY(reply->isFinished()); } @@ -511,7 +511,7 @@ void tst_Http2::goaway() QNetworkRequest request(url); request.setAttribute(QNetworkRequest::Http2AllowedAttribute, QVariant(true)); replies[i] = manager->get(request); - QCOMPARE(replies[i]->error(), QNetworkReply::NoError); + QCOMPARE(replies[i]->networkError(), QNetworkReply::NoError); void (QNetworkReply::*errorSignal)(QNetworkReply::NetworkError) = &QNetworkReply::error; connect(replies[i], errorSignal, this, &tst_Http2::replyFinishedWithError); @@ -671,7 +671,7 @@ void tst_Http2::connectToHost() connect(reply, &QNetworkReply::finished, [this, reply]() { --nRequests; eventLoop.exitLoop(); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QVERIFY(reply->isFinished()); // Nothing received back: QVERIFY(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).isNull()); @@ -698,7 +698,7 @@ void tst_Http2::connectToHost() QVERIFY(prefaceOK); QVERIFY(serverGotSettingsACK); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QVERIFY(reply->isFinished()); } @@ -927,10 +927,10 @@ void tst_Http2::replyFinished() QVERIFY(nRequests); if (const auto reply = qobject_cast<QNetworkReply *>(sender())) { - if (reply->error() != QNetworkReply::NoError) + if (reply->networkError() != QNetworkReply::NoError) stopEventLoop(); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); const QVariant http2Used(reply->attribute(QNetworkRequest::Http2WasUsedAttribute)); if (!http2Used.isValid() || !http2Used.toBool()) @@ -960,9 +960,9 @@ void tst_Http2::replyFinishedWithError() if (const auto reply = qobject_cast<QNetworkReply *>(sender())) { // For now this is a 'generic' code, it just verifies some error was // reported without testing its type. - if (reply->error() == QNetworkReply::NoError) + if (reply->networkError() == QNetworkReply::NoError) stopEventLoop(); - QVERIFY(reply->error() != QNetworkReply::NoError); + QVERIFY(reply->networkError() != QNetworkReply::NoError); } --nRequests; diff --git a/tests/auto/network/access/qabstractnetworkcache/tst_qabstractnetworkcache.cpp b/tests/auto/network/access/qabstractnetworkcache/tst_qabstractnetworkcache.cpp index 182e3e9547..4b6e04f467 100644 --- a/tests/auto/network/access/qabstractnetworkcache/tst_qabstractnetworkcache.cpp +++ b/tests/auto/network/access/qabstractnetworkcache/tst_qabstractnetworkcache.cpp @@ -322,10 +322,10 @@ void tst_QAbstractNetworkCache::runTest() QByteArray secondData = reply2->readAll(); if (!fetchFromCache && cacheLoadControl == QNetworkRequest::AlwaysCache) { - QCOMPARE(reply2->error(), QNetworkReply::ContentNotFoundError); + QCOMPARE(reply2->networkError(), QNetworkReply::ContentNotFoundError); QCOMPARE(secondData, QByteArray()); } else { - QCOMPARE(reply2->error(), QNetworkReply::NoError); + QCOMPARE(reply2->networkError(), QNetworkReply::NoError); QCOMPARE(QString(secondData), QString(goodData)); QCOMPARE(secondData, goodData); QCOMPARE(reply2->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200); @@ -375,12 +375,12 @@ void tst_QAbstractNetworkCache::checkSynchronous() QByteArray secondData = reply2->readAll(); if (!fetchFromCache && cacheLoadControl == QNetworkRequest::AlwaysCache) { - QCOMPARE(reply2->error(), QNetworkReply::ContentNotFoundError); + QCOMPARE(reply2->networkError(), QNetworkReply::ContentNotFoundError); QCOMPARE(secondData, QByteArray()); } else { - if (reply2->error() != QNetworkReply::NoError) + if (reply2->networkError() != QNetworkReply::NoError) qDebug() << reply2->errorString(); - QCOMPARE(reply2->error(), QNetworkReply::NoError); + QCOMPARE(reply2->networkError(), QNetworkReply::NoError); QCOMPARE(QString(secondData), QString(goodData)); QCOMPARE(secondData, goodData); QCOMPARE(reply2->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200); diff --git a/tests/auto/network/access/qftp/tst_qftp.cpp b/tests/auto/network/access/qftp/tst_qftp.cpp index 2068738a67..60acb70af4 100644 --- a/tests/auto/network/access/qftp/tst_qftp.cpp +++ b/tests/auto/network/access/qftp/tst_qftp.cpp @@ -215,7 +215,8 @@ void tst_QFtp::initTestCase() QVERIFY(QtNetworkSettings::verifyConnection(QtNetworkSettings::socksProxyServerName(), 1080)); QVERIFY(QtNetworkSettings::verifyConnection(QtNetworkSettings::httpProxyServerName(), 3128)); #else - QVERIFY(QtNetworkSettings::verifyTestNetworkSettings()); + if (!QtNetworkSettings::verifyTestNetworkSettings()) + QSKIP("No network test server available"); #endif #ifndef QT_NO_BEARERMANAGEMENT QNetworkConfigurationManager manager; diff --git a/tests/auto/network/access/qhttpnetworkconnection/tst_qhttpnetworkconnection.cpp b/tests/auto/network/access/qhttpnetworkconnection/tst_qhttpnetworkconnection.cpp index 0a9320118d..57fa5a613c 100644 --- a/tests/auto/network/access/qhttpnetworkconnection/tst_qhttpnetworkconnection.cpp +++ b/tests/auto/network/access/qhttpnetworkconnection/tst_qhttpnetworkconnection.cpp @@ -105,7 +105,8 @@ void tst_QHttpNetworkConnection::initTestCase() #if defined(QT_TEST_SERVER) QVERIFY(QtNetworkSettings::verifyConnection(httpServerName(), 80)); #else - QVERIFY(QtNetworkSettings::verifyTestNetworkSettings()); + if (!QtNetworkSettings::verifyTestNetworkSettings()) + QSKIP("No network test server available"); #endif } diff --git a/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp b/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp index a2b3248ab8..b8f69cb393 100644 --- a/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp +++ b/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp @@ -1111,7 +1111,7 @@ protected: // get the "request" packet if (!client->waitForReadyRead(2000)) { - qDebug() << "FastSender:" << client->error() << "waiting for \"request\" packet"; + qDebug() << "FastSender:" << client->socketError() << "waiting for \"request\" packet"; return; } client->readAll(); // we're not interested in the actual contents (e.g. HTTP request) @@ -1148,7 +1148,7 @@ protected: while (client->bytesToWrite() > 0) { qDebug() << "Still having" << client->bytesToWrite() << "bytes to write, doing that now"; if (!client->waitForBytesWritten(10000)) { - qDebug() << "ERROR: FastSender:" << client->error() << "cleaning up residue"; + qDebug() << "ERROR: FastSender:" << client->socketError() << "cleaning up residue"; return; } } @@ -1168,7 +1168,7 @@ protected: while (client->bytesToWrite() > 0) { if (!client->waitForBytesWritten(10000)) { - qDebug() << "ERROR: FastSender:" << client->error() << "during blocking write"; + qDebug() << "ERROR: FastSender:" << client->socketError() << "during blocking write"; return; } } @@ -1426,7 +1426,7 @@ QString tst_QNetworkReply::runSimpleRequest(QNetworkAccessManager::Operation op, if (request.attribute(QNetworkRequest::SynchronousRequestAttribute).toBool()) { if (reply->isFinished()) - code = reply->error() != QNetworkReply::NoError ? Failure : Success; + code = reply->networkError() != QNetworkReply::NoError ? Failure : Success; else code = Failure; } else { @@ -1491,10 +1491,10 @@ static QByteArray msgWaitForFinished(QNetworkReplyPtr &reply) debug << reply->url(); if (!reply->isFinished()) debug << "timed out."; - else if (reply->error() == QNetworkReply::NoError) + else if (reply->networkError() == QNetworkReply::NoError) debug << "finished."; else - debug << "failed: #" << reply->error() << reply->errorString(); + debug << "failed: #" << reply->networkError() << reply->errorString(); return result.toLocal8Bit(); } @@ -1642,7 +1642,7 @@ void tst_QNetworkReply::stateChecking() QCOMPARE(int(reply->operation()), int(QNetworkAccessManager::GetOperation)); // error and not error are OK since we might change underlying behaviour again if (!reply->isFinished()) - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QCOMPARE(reply->url(), url); reply->abort(); @@ -1659,7 +1659,7 @@ void tst_QNetworkReply::invalidProtocol() QCOMPARE(result, errorMsg); QCOMPARE(reply->url(), url); - QCOMPARE(reply->error(), QNetworkReply::ProtocolUnknownError); + QCOMPARE(reply->networkError(), QNetworkReply::ProtocolUnknownError); } void tst_QNetworkReply::getFromData_data() @@ -1751,7 +1751,7 @@ void tst_QNetworkReply::getFromData() RUN_REQUEST(runSimpleRequest(QNetworkAccessManager::GetOperation, req, reply)); QCOMPARE(reply->url(), url); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QCOMPARE(reply->header(QNetworkRequest::ContentTypeHeader).toString(), mimeType); QCOMPARE(reply->header(QNetworkRequest::ContentLengthHeader).toLongLong(), qint64(expected.size())); @@ -1790,7 +1790,7 @@ void tst_QNetworkReply::getFromFile() QVERIFY(waitForFinish(reply) != Timeout); QCOMPARE(reply->url(), request.url()); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QCOMPARE(reply->header(QNetworkRequest::ContentLengthHeader).toLongLong(), file.size()); QCOMPARE(reply->readAll(), data); @@ -1807,7 +1807,7 @@ void tst_QNetworkReply::getFromFile() RUN_REQUEST(runSimpleRequest(QNetworkAccessManager::GetOperation, request, reply)); QCOMPARE(reply->url(), request.url()); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QCOMPARE(reply->header(QNetworkRequest::ContentLengthHeader).toLongLong(), file.size()); QCOMPARE(qint64(reply->readAll().size()), file.size()); @@ -1846,7 +1846,7 @@ void tst_QNetworkReply::getFromFileSpecial() RUN_REQUEST(runSimpleRequest(QNetworkAccessManager::GetOperation, request, reply)); QCOMPARE(reply->url(), request.url()); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QCOMPARE(reply->header(QNetworkRequest::ContentLengthHeader).toLongLong(), resource.size()); QCOMPARE(reply->readAll(), resource.readAll()); @@ -1879,7 +1879,7 @@ void tst_QNetworkReply::getFromFtp() RUN_REQUEST(runSimpleRequest(QNetworkAccessManager::GetOperation, request, reply)); QCOMPARE(reply->url(), request.url()); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QCOMPARE(reply->header(QNetworkRequest::ContentLengthHeader).toLongLong(), reference.size()); QCOMPARE(reply->readAll(), reference.readAll()); @@ -1892,7 +1892,7 @@ void tst_QNetworkReply::getFromFtpAfterError() invalidReply.reset(manager.get(invalidRequest)); QSignalSpy spy(invalidReply.data(), SIGNAL(error(QNetworkReply::NetworkError))); QVERIFY(spy.wait()); - QCOMPARE(invalidReply->error(), QNetworkReply::ContentNotFoundError); + QCOMPARE(invalidReply->networkError(), QNetworkReply::ContentNotFoundError); QFile reference(testDataDir + "/rfc3252.txt"); QVERIFY(reference.open(QIODevice::ReadOnly)); @@ -1900,7 +1900,7 @@ void tst_QNetworkReply::getFromFtpAfterError() QNetworkReplyPtr validReply; RUN_REQUEST(runSimpleRequest(QNetworkAccessManager::GetOperation, validRequest, validReply)); QCOMPARE(validReply->url(), validRequest.url()); - QCOMPARE(validReply->error(), QNetworkReply::NoError); + QCOMPARE(validReply->networkError(), QNetworkReply::NoError); QCOMPARE(validReply->header(QNetworkRequest::ContentLengthHeader).toLongLong(), reference.size()); QCOMPARE(validReply->readAll(), reference.readAll()); } @@ -1932,7 +1932,7 @@ void tst_QNetworkReply::getFromHttp() RUN_REQUEST(runSimpleRequest(QNetworkAccessManager::GetOperation, request, reply)); QCOMPARE(reply->url(), request.url()); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200); QCOMPARE(reply->size(), reference.size()); // only compare when the header is set. @@ -2027,7 +2027,7 @@ void tst_QNetworkReply::headFromHttp() QVERIFY(time.elapsed() < 8000); //check authentication didn't wait for the server to timeout the http connection (15s on qt test server) QCOMPARE(reply->url(), request.url()); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200); // only compare when the header is set. if (reply->header(QNetworkRequest::ContentLengthHeader).isValid() && referenceSize >= 0) @@ -2101,8 +2101,8 @@ static QByteArray msgGetErrors(int waitResult, const QNetworkReplyPtr &reply) QByteArray result ="waitResult=" + QByteArray::number(waitResult); if (reply->isFinished()) result += ", finished"; - if (reply->error() != QNetworkReply::NoError) - result += ", error: " + QByteArray::number(int(reply->error())); + if (reply->networkError() != QNetworkReply::NoError) + result += ", error: " + QByteArray::number(int(reply->networkError())); return result; } @@ -2132,7 +2132,7 @@ void tst_QNetworkReply::getErrors() reply->setParent(this); // we have expect-fails if (!reply->isFinished()) - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); // now run the request: const int waitResult = waitForFinish(reply); @@ -2142,7 +2142,7 @@ void tst_QNetworkReply::getErrors() QEXPECT_FAIL("ftp-is-dir", "QFtp cannot provide enough detail", Abort); // the line below is not necessary QEXPECT_FAIL("ftp-dir-not-readable", "QFtp cannot provide enough detail", Abort); - QCOMPARE(reply->error(), QNetworkReply::NetworkError(error)); + QCOMPARE(reply->networkError(), QNetworkReply::NetworkError(error)); QTEST(reply->readAll().isEmpty(), "dataIsEmpty"); @@ -2201,7 +2201,7 @@ void tst_QNetworkReply::putToFile() RUN_REQUEST(runSimpleRequest(QNetworkAccessManager::PutOperation, request, reply, data)); QCOMPARE(reply->url(), url); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QCOMPARE(reply->header(QNetworkRequest::ContentLengthHeader).toLongLong(), Q_INT64_C(0)); QVERIFY(reply->readAll().isEmpty()); @@ -2231,7 +2231,7 @@ void tst_QNetworkReply::putToFtp() RUN_REQUEST(runSimpleRequest(QNetworkAccessManager::PutOperation, request, reply, data)); QCOMPARE(reply->url(), url); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QCOMPARE(reply->header(QNetworkRequest::ContentLengthHeader).toLongLong(), Q_INT64_C(0)); QVERIFY(reply->readAll().isEmpty()); @@ -2279,7 +2279,7 @@ void tst_QNetworkReply::putToFtpWithInvalidCredentials() QVERIFY(r->isFinished()); QCOMPARE(r->url(), url); - QCOMPARE(r->error(), QNetworkReply::AuthenticationRequiredError); + QCOMPARE(r->networkError(), QNetworkReply::AuthenticationRequiredError); r->close(); } } @@ -2304,7 +2304,7 @@ void tst_QNetworkReply::putToHttp() RUN_REQUEST(runSimpleRequest(QNetworkAccessManager::PutOperation, request, reply, data)); QCOMPARE(reply->url(), url); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 201); // 201 Created @@ -2345,7 +2345,7 @@ void tst_QNetworkReply::putToHttpSynchronous() RUN_REQUEST(runSimpleRequest(QNetworkAccessManager::PutOperation, request, reply, data)); QCOMPARE(reply->url(), url); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 201); // 201 Created @@ -2379,7 +2379,7 @@ void tst_QNetworkReply::postToHttp() RUN_REQUEST(runSimpleRequest(QNetworkAccessManager::PostOperation, request, reply, data)); QCOMPARE(reply->url(), url); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200); // 200 Ok @@ -2411,7 +2411,7 @@ void tst_QNetworkReply::postToHttpSynchronous() RUN_REQUEST(runSimpleRequest(QNetworkAccessManager::PostOperation, request, reply, data)); QCOMPARE(reply->url(), url); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200); // 200 Ok @@ -2674,7 +2674,7 @@ void tst_QNetworkReply::postToHttpMultipart() multiPart->deleteLater(); QCOMPARE(reply->url(), url); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200); // 200 Ok @@ -2716,7 +2716,7 @@ void tst_QNetworkReply::multipartSkipIndices() // QTBUG-32534 QNetworkReplyPtr reply; RUN_REQUEST(runMultipartRequest(request, reply, multiPart, "POST")); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200); // 200 Ok QByteArray line; @@ -2762,7 +2762,7 @@ void tst_QNetworkReply::putToHttpMultipart() multiPart->deleteLater(); QCOMPARE(reply->url(), url); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200); // 200 Ok @@ -2801,7 +2801,7 @@ void tst_QNetworkReply::putToHttps() RUN_REQUEST(runSimpleRequest(QNetworkAccessManager::PutOperation, request, reply, data)); QCOMPARE(reply->url(), url); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 201); // 201 Created @@ -2846,7 +2846,7 @@ void tst_QNetworkReply::putToHttpsSynchronous() RUN_REQUEST(runSimpleRequest(QNetworkAccessManager::PutOperation, request, reply, data)); QCOMPARE(reply->url(), url); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 201); // 201 Created @@ -2884,7 +2884,7 @@ void tst_QNetworkReply::postToHttps() RUN_REQUEST(runSimpleRequest(QNetworkAccessManager::PostOperation, request, reply, data)); QCOMPARE(reply->url(), url); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200); // 200 Ok @@ -2920,7 +2920,7 @@ void tst_QNetworkReply::postToHttpsSynchronous() RUN_REQUEST(runSimpleRequest(QNetworkAccessManager::PostOperation, request, reply, data)); QCOMPARE(reply->url(), url); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200); // 200 Ok @@ -2965,7 +2965,7 @@ void tst_QNetworkReply::postToHttpsMultipart() multiPart->deleteLater(); QCOMPARE(reply->url(), url); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200); // 200 Ok @@ -3018,7 +3018,7 @@ void tst_QNetworkReply::deleteFromHttp() QNetworkReplyPtr reply; runSimpleRequest(QNetworkAccessManager::DeleteOperation, request, reply, 0); QCOMPARE(reply->url(), url); - QCOMPARE(reply->error(), error); + QCOMPARE(reply->networkError(), error); QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), resultCode); } @@ -3068,19 +3068,19 @@ void tst_QNetworkReply::putGetDeleteGetFromHttp() QNetworkReplyPtr reply; RUN_REQUEST(runSimpleRequest(QNetworkAccessManager::PutOperation, putRequest, reply, 0)); - QCOMPARE(reply->error(), putError); + QCOMPARE(reply->networkError(), putError); QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), putResultCode); runSimpleRequest(QNetworkAccessManager::GetOperation, putRequest, reply, 0); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200); runSimpleRequest(QNetworkAccessManager::DeleteOperation, deleteRequest, reply, 0); - QCOMPARE(reply->error(), deleteError); + QCOMPARE(reply->networkError(), deleteError); QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), deleteResultCode); runSimpleRequest(QNetworkAccessManager::GetOperation, get2Request, reply, 0); - QCOMPARE(reply->error(), get2Error); + QCOMPARE(reply->networkError(), get2Error); QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), get2ResultCode); } @@ -3125,7 +3125,7 @@ void tst_QNetworkReply::connectToIPv6Address() QVERIFY(server.receivedData.contains(hostinfo)); QCOMPARE(content, dataToSend); QCOMPARE(reply->url(), request.url()); - QCOMPARE(reply->error(), error); + QCOMPARE(reply->networkError(), error); } void tst_QNetworkReply::sendCustomRequestToHttp_data() @@ -3171,7 +3171,7 @@ void tst_QNetworkReply::sendCustomRequestToHttp() runCustomRequest(request, reply, verb, device); QCOMPARE(reply->url(), url); QFETCH(QNetworkReply::NetworkError, error); - QCOMPARE(reply->error(), error); + QCOMPARE(reply->networkError(), error); QFETCH(int, resultCode); QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), resultCode); QFETCH(QByteArray, expectedContent); @@ -3207,7 +3207,7 @@ void tst_QNetworkReply::ioGetFromData() QVERIFY(!QTestEventLoop::instance().timeout()); QCOMPARE(reply->url(), request.url()); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QFETCH(QByteArray, data); QCOMPARE(reply->header(QNetworkRequest::ContentLengthHeader).toInt(), data.size()); @@ -3243,7 +3243,7 @@ void tst_QNetworkReply::ioGetFromFileSpecial() QVERIFY(!QTestEventLoop::instance().timeout()); QCOMPARE(reply->url(), request.url()); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QCOMPARE(reply->header(QNetworkRequest::ContentLengthHeader).toLongLong(), resource.size()); QCOMPARE(qint64(reader.data.size()), resource.size()); @@ -3276,7 +3276,7 @@ void tst_QNetworkReply::ioGetFromFile() QVERIFY(!QTestEventLoop::instance().timeout()); QCOMPARE(reply->url(), request.url()); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QCOMPARE(reply->header(QNetworkRequest::ContentLengthHeader).toLongLong(), file.size()); QCOMPARE(qint64(reader.data.size()), file.size()); @@ -3307,7 +3307,7 @@ void tst_QNetworkReply::ioGetFromFtp() QVERIFY2(waitForFinish(reply) == Success, msgWaitForFinished(reply)); QCOMPARE(reply->url(), request.url()); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QFETCH(qint64, expectedSize); QCOMPARE(reply->header(QNetworkRequest::ContentLengthHeader).toLongLong(), expectedSize); @@ -3337,8 +3337,8 @@ void tst_QNetworkReply::ioGetFromFtpWithReuse() QCOMPARE(reply1->url(), request.url()); QCOMPARE(reply2->url(), request.url()); - QCOMPARE(reply1->error(), QNetworkReply::NoError); - QCOMPARE(reply2->error(), QNetworkReply::NoError); + QCOMPARE(reply1->networkError(), QNetworkReply::NoError); + QCOMPARE(reply2->networkError(), QNetworkReply::NoError); QCOMPARE(qint64(reader1.data.size()), reference.size()); QCOMPARE(qint64(reader2.data.size()), reference.size()); @@ -3362,7 +3362,7 @@ void tst_QNetworkReply::ioGetFromHttp() QVERIFY2(waitForFinish(reply) == Success, msgWaitForFinished(reply)); QCOMPARE(reply->url(), request.url()); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200); QCOMPARE(reply->header(QNetworkRequest::ContentLengthHeader).toLongLong(), reference.size()); @@ -3388,8 +3388,8 @@ void tst_QNetworkReply::ioGetFromHttpWithReuseParallel() QCOMPARE(reply1->url(), request.url()); QCOMPARE(reply2->url(), request.url()); - QCOMPARE(reply1->error(), QNetworkReply::NoError); - QCOMPARE(reply2->error(), QNetworkReply::NoError); + QCOMPARE(reply1->networkError(), QNetworkReply::NoError); + QCOMPARE(reply2->networkError(), QNetworkReply::NoError); QCOMPARE(reply1->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200); QCOMPARE(reply2->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200); @@ -3416,7 +3416,7 @@ void tst_QNetworkReply::ioGetFromHttpWithReuseSequential() QVERIFY2(waitForFinish(reply) == Success, msgWaitForFinished(reply)); QCOMPARE(reply->url(), request.url()); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200); QCOMPARE(reply->header(QNetworkRequest::ContentLengthHeader).toLongLong(), reference.size()); @@ -3434,7 +3434,7 @@ void tst_QNetworkReply::ioGetFromHttpWithReuseSequential() QVERIFY2(waitForFinish(reply) == Success, msgWaitForFinished(reply)); QCOMPARE(reply->url(), request.url()); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200); QCOMPARE(reply->header(QNetworkRequest::ContentLengthHeader).toLongLong(), reference.size()); @@ -3557,7 +3557,7 @@ void tst_QNetworkReply::ioGetFromHttpWithAuth() QVERIFY(replySync->isFinished()); // synchronous if (expectedAuth) { // bad credentials in a synchronous request should just fail - QCOMPARE(replySync->error(), QNetworkReply::AuthenticationRequiredError); + QCOMPARE(replySync->networkError(), QNetworkReply::AuthenticationRequiredError); } else { QCOMPARE(authspy.count(), 0); @@ -3583,7 +3583,7 @@ void tst_QNetworkReply::ioGetFromHttpWithAuth() QVERIFY(replySync->isFinished()); // synchronous if (expectedAuth) { // bad credentials in a synchronous request should just fail - QCOMPARE(replySync->error(), QNetworkReply::AuthenticationRequiredError); + QCOMPARE(replySync->networkError(), QNetworkReply::AuthenticationRequiredError); } else { QCOMPARE(authspy.count(), 0); @@ -3610,7 +3610,7 @@ void tst_QNetworkReply::ioGetFromHttpWithAuthSynchronous() QSignalSpy authspy(&manager, SIGNAL(authenticationRequired(QNetworkReply*,QAuthenticator*))); QNetworkReplyPtr replySync(manager.get(request)); QVERIFY(replySync->isFinished()); // synchronous - QCOMPARE(replySync->error(), QNetworkReply::AuthenticationRequiredError); + QCOMPARE(replySync->networkError(), QNetworkReply::AuthenticationRequiredError); QCOMPARE(authspy.count(), 0); QCOMPARE(replySync->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 401); } @@ -3715,7 +3715,7 @@ void tst_QNetworkReply::ioGetFromHttpWithProxyAuthSynchronous() QNetworkReplyPtr replySync(manager.get(request)); manager.setProxy(QNetworkProxy()); // reset QVERIFY(replySync->isFinished()); // synchronous - QCOMPARE(replySync->error(), QNetworkReply::ProxyAuthenticationRequiredError); + QCOMPARE(replySync->networkError(), QNetworkReply::ProxyAuthenticationRequiredError); QCOMPARE(authspy.count(), 0); QCOMPARE(replySync->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 407); } @@ -3771,9 +3771,9 @@ void tst_QNetworkReply::ioGetFromHttpWithSocksProxy() QVERIFY(!reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).isValid()); QVERIFY(reader.data.isEmpty()); - QVERIFY(int(reply->error()) > 0); + QVERIFY(int(reply->networkError()) > 0); QEXPECT_FAIL("", "QTcpSocket doesn't return enough information yet", Continue); - QCOMPARE(int(reply->error()), int(QNetworkReply::ProxyConnectionRefusedError)); + QCOMPARE(int(reply->networkError()), int(QNetworkReply::ProxyConnectionRefusedError)); QCOMPARE(authspy.count(), 0); } @@ -3853,7 +3853,7 @@ void tst_QNetworkReply::ioGetFromHttpsWithSslHandshakeError() QCOMPARE(waitForFinish(reply), int(Failure)); - QCOMPARE(reply->error(), QNetworkReply::SslHandshakeFailedError); + QCOMPARE(reply->networkError(), QNetworkReply::SslHandshakeFailedError); QCOMPARE(sslspy.count(), 0); } #endif @@ -3913,7 +3913,7 @@ void tst_QNetworkReply::ioGetFromHttpBrokenServer() QCOMPARE(reply->url(), request.url()); QCOMPARE(spy.count(), 1); - QVERIFY(reply->error() != QNetworkReply::NoError); + QVERIFY(reply->networkError() != QNetworkReply::NoError); } void tst_QNetworkReply::ioGetFromHttpStatus100_data() @@ -3942,7 +3942,7 @@ void tst_QNetworkReply::ioGetFromHttpStatus100() QVERIFY2(waitForFinish(reply) == Success, msgWaitForFinished(reply)); QCOMPARE(reply->url(), request.url()); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), statusCode); QVERIFY(reply->rawHeader("bla").isNull()); } @@ -3965,7 +3965,7 @@ void tst_QNetworkReply::ioGetFromHttpNoHeaders() QVERIFY2(waitForFinish(reply) == Success, msgWaitForFinished(reply)); QCOMPARE(reply->url(), request.url()); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200); } @@ -4404,7 +4404,7 @@ void tst_QNetworkReply::ioGetWithManyProxies() QFETCH(QNetworkReply::NetworkError, expectedError); QEXPECT_FAIL("ftp-on-socks", "QFtp is too limited and won't accept non-FTP proxies", Abort); - QCOMPARE(reply->error(), expectedError); + QCOMPARE(reply->networkError(), expectedError); // Verify that the factory was called properly QCOMPARE(proxyFactory->callCount, 1); @@ -4456,7 +4456,7 @@ void tst_QNetworkReply::ioPutToFileFromFile() QVERIFY2(waitForFinish(reply) == Success, msgWaitForFinished(reply)); QCOMPARE(reply->url(), url); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QCOMPARE(reply->header(QNetworkRequest::ContentLengthHeader).toLongLong(), Q_INT64_C(0)); QVERIFY(reply->readAll().isEmpty()); @@ -4489,10 +4489,10 @@ void tst_QNetworkReply::ioPutToFileFromSocket() socketpair.endPoints[0]->close(); QVERIFY2(waitForFinish(reply) == Success, msgWaitForFinished(reply)); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QCOMPARE(reply->url(), url); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QCOMPARE(reply->header(QNetworkRequest::ContentLengthHeader).toLongLong(), Q_INT64_C(0)); QVERIFY(reply->readAll().isEmpty()); @@ -4537,10 +4537,10 @@ void tst_QNetworkReply::ioPutToFileFromLocalSocket() QEXPECT_FAIL("", "QTBUG-18385", Abort); #endif QVERIFY2(waitForFinish(reply) == Success, msgWaitForFinished(reply)); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QCOMPARE(reply->url(), url); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QCOMPARE(reply->header(QNetworkRequest::ContentLengthHeader).toLongLong(), Q_INT64_C(0)); QVERIFY(reply->readAll().isEmpty()); @@ -4589,7 +4589,7 @@ void tst_QNetworkReply::ioPutToFileFromProcess() QVERIFY2(waitForFinish(reply) == Success, msgWaitForFinished(reply)); QCOMPARE(reply->url(), url); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QCOMPARE(reply->header(QNetworkRequest::ContentLengthHeader).toLongLong(), Q_INT64_C(0)); QVERIFY(reply->readAll().isEmpty()); @@ -4623,7 +4623,7 @@ void tst_QNetworkReply::ioPutToFtpFromFile() QVERIFY2(waitForFinish(reply) == Success, msgWaitForFinished(reply)); QCOMPARE(reply->url(), url); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QCOMPARE(reply->header(QNetworkRequest::ContentLengthHeader).toLongLong(), Q_INT64_C(0)); QVERIFY(reply->readAll().isEmpty()); @@ -4672,7 +4672,7 @@ void tst_QNetworkReply::ioPutToHttpFromFile() QVERIFY2(waitForFinish(reply) == Success, msgWaitForFinished(reply)); QCOMPARE(reply->url(), url); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); // verify that the HTTP status code is 201 Created QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 201); @@ -4687,7 +4687,7 @@ void tst_QNetworkReply::ioPutToHttpFromFile() QVERIFY2(waitForFinish(reply) == Success, msgWaitForFinished(reply)); QCOMPARE(reply->url(), url); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200); // 200 Ok QCOMPARE(reply->readAll(), sourceFile.readAll()); @@ -4713,7 +4713,7 @@ void tst_QNetworkReply::ioPostToHttpFromFile() QVERIFY2(waitForFinish(reply) == Success, msgWaitForFinished(reply)); QCOMPARE(reply->url(), url); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); // verify that the HTTP status code is 200 Ok QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200); @@ -4803,10 +4803,10 @@ void tst_QNetworkReply::ioPostToHttpFromSocket() this, SLOT(proxyAuthenticationRequired(QNetworkProxy,QAuthenticator*))); disconnect(&manager, SIGNAL(authenticationRequired(QNetworkReply*,QAuthenticator*)), this, SLOT(authenticationRequired(QNetworkReply*,QAuthenticator*))); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QCOMPARE(reply->url(), url); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); // verify that the HTTP status code is 200 Ok QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200); @@ -4866,10 +4866,10 @@ void tst_QNetworkReply::ioPostToHttpFromSocketSynchronous() QVERIFY(reply->isFinished()); socketpair.endPoints[0]->close(); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QCOMPARE(reply->url(), url); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); // verify that the HTTP status code is 200 Ok QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200); @@ -4989,7 +4989,7 @@ void tst_QNetworkReply::ioPostToHttpNoBufferFlag() this, SLOT(authenticationRequired(QNetworkReply*,QAuthenticator*))); // verify: error code is QNetworkReply::ContentReSendError - QCOMPARE(reply->error(), QNetworkReply::ContentReSendError); + QCOMPARE(reply->networkError(), QNetworkReply::ContentReSendError); } #ifndef QT_NO_SSL @@ -5171,7 +5171,7 @@ void tst_QNetworkReply::ioGetFromBuiltinHttp() << "(it received" << reader.totalBytesRead << "bytes in" << elapsedTime << "ms)"; QCOMPARE(reply->url(), request.url()); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200); QCOMPARE(reply->header(QNetworkRequest::ContentLengthHeader).toLongLong(), (qint64)testData.size()); @@ -5407,7 +5407,7 @@ void tst_QNetworkReply::httpCanReadLine() QVERIFY2(waitForFinish(reply) == Success, msgWaitForFinished(reply)); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QVERIFY(reply->canReadLine()); QVERIFY(!reply->readAll().isEmpty()); @@ -5466,7 +5466,7 @@ void tst_QNetworkReply::rateControl() sender.wait(); QCOMPARE(reply->url(), request.url()); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QVERIFY(sender.transferRate != -1); int minRate = rate * 1024 * 9 / 10; @@ -5616,11 +5616,11 @@ void tst_QNetworkReply::chaining() QCOMPARE(waitForFinish(putReply), int(Success)); QCOMPARE(getReply->url(), QUrl::fromLocalFile(sourceFile.fileName())); - QCOMPARE(getReply->error(), QNetworkReply::NoError); + QCOMPARE(getReply->networkError(), QNetworkReply::NoError); QCOMPARE(getReply->header(QNetworkRequest::ContentLengthHeader).toLongLong(), sourceFile.size()); QCOMPARE(putReply->url(), url); - QCOMPARE(putReply->error(), QNetworkReply::NoError); + QCOMPARE(putReply->networkError(), QNetworkReply::NoError); QCOMPARE(putReply->header(QNetworkRequest::ContentLengthHeader).toLongLong(), Q_INT64_C(0)); QVERIFY(putReply->readAll().isEmpty()); @@ -5691,7 +5691,7 @@ void tst_QNetworkReply::receiveCookiesFromHttp() RUN_REQUEST(runSimpleRequest(QNetworkAccessManager::PostOperation, request, reply, data)); QCOMPARE(reply->url(), url); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200); // 200 Ok @@ -5723,7 +5723,7 @@ void tst_QNetworkReply::receiveCookiesFromHttpSynchronous() RUN_REQUEST(runSimpleRequest(QNetworkAccessManager::PostOperation, request, reply, data)); QCOMPARE(reply->url(), url); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200); // 200 Ok @@ -5786,7 +5786,7 @@ void tst_QNetworkReply::sendCookies() RUN_REQUEST(runSimpleRequest(QNetworkAccessManager::GetOperation, request, reply)); QCOMPARE(reply->url(), url); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200); // 200 Ok @@ -5815,7 +5815,7 @@ void tst_QNetworkReply::sendCookiesSynchronous() RUN_REQUEST(runSimpleRequest(QNetworkAccessManager::GetOperation, request, reply)); QCOMPARE(reply->url(), url); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200); // 200 Ok @@ -5908,9 +5908,6 @@ void tst_QNetworkReply::httpProxyCommands() // wait for the finished signal QVERIFY(waitForFinish(reply) != Timeout); - //qDebug() << reply->error() << reply->errorString(); - //qDebug() << proxyServer.receivedData; - // we don't really care if the request succeeded // especially since it won't succeed in the HTTPS case // so just check that the command was correct @@ -5993,8 +5990,6 @@ void tst_QNetworkReply::httpProxyCommandsSynchronous() QVERIFY(reply->isFinished()); // synchronous manager.setProxy(QNetworkProxy()); - //qDebug() << reply->error() << reply->errorString(); - // we don't really care if the request succeeded // especially since it won't succeed in the HTTPS case // so just check that the command was correct @@ -6034,11 +6029,11 @@ void tst_QNetworkReply::proxyChange() QVERIFY(!QTestEventLoop::instance().timeout()); // verify that the replies succeeded - QCOMPARE(reply1->error(), QNetworkReply::NoError); + QCOMPARE(reply1->networkError(), QNetworkReply::NoError); QCOMPARE(reply1->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200); QCOMPARE(reply1->size(), 1); - QCOMPARE(reply2->error(), QNetworkReply::NoError); + QCOMPARE(reply2->networkError(), QNetworkReply::NoError); QCOMPARE(reply2->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200); QVERIFY(reply2->size() > 1); @@ -6055,7 +6050,7 @@ void tst_QNetworkReply::proxyChange() QCOMPARE(waitForFinish(reply3), int(Failure)); - QVERIFY(int(reply3->error()) > 0); + QVERIFY(int(reply3->networkError()) > 0); } #endif // !QT_NO_NETWORKPROXY @@ -6088,7 +6083,7 @@ void tst_QNetworkReply::authorizationError() QNetworkRequest request(url); QNetworkReplyPtr reply(manager.get(request)); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QSignalSpy errorSpy(reply.data(), SIGNAL(error(QNetworkReply::NetworkError))); QSignalSpy finishedSpy(reply.data(), SIGNAL(finished())); @@ -6100,7 +6095,7 @@ void tst_QNetworkReply::authorizationError() QFETCH(int, finishedSignalCount); QCOMPARE(finishedSpy.count(), finishedSignalCount); QFETCH(int, error); - QCOMPARE(reply->error(), QNetworkReply::NetworkError(error)); + QCOMPARE(reply->networkError(), QNetworkReply::NetworkError(error)); QFETCH(int, httpStatusCode); QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), httpStatusCode); @@ -6168,7 +6163,7 @@ void tst_QNetworkReply::httpReUsingConnectionSequential() connect(reply1, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop())); QTestEventLoop::instance().enterLoop(2); QVERIFY(!QTestEventLoop::instance().timeout()); - QVERIFY(!reply1->error()); + QVERIFY(!reply1->networkError()); int reply1port = server.client->peerPort(); if (doDeleteLater) @@ -6179,7 +6174,7 @@ void tst_QNetworkReply::httpReUsingConnectionSequential() connect(reply2, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop())); QTestEventLoop::instance().enterLoop(2); QVERIFY(!QTestEventLoop::instance().timeout()); - QVERIFY(!reply2->error()); + QVERIFY(!reply2->networkError()); int reply2port = server.client->peerPort(); // should still be the same object QVERIFY(reply1port > 0); @@ -6202,7 +6197,7 @@ public: public slots: void finishedSlot() { - QVERIFY(!reply1->error()); + QVERIFY(!reply1->networkError()); QFETCH(bool, doDeleteLater); if (doDeleteLater) { @@ -6244,7 +6239,7 @@ void tst_QNetworkReply::httpReUsingConnectionFromFinishedSlot() QVERIFY(!QTestEventLoop::instance().timeout()); QVERIFY(helper.reply2); - QVERIFY(!helper.reply2->error()); + QVERIFY(!helper.reply2->networkError()); QCOMPARE(server.totalConnections, 1); } @@ -6271,7 +6266,7 @@ public slots: requestsFinishedCount++; QNetworkReply *reply = qobject_cast<QNetworkReply*>(sender()); - QVERIFY(!reply->error()); + QVERIFY(!reply->networkError()); QCOMPARE(reply->bytesAvailable(), 27906); if (requestsFinishedCount == 60) { @@ -6289,7 +6284,7 @@ public slots: void readyReadSlot() { QNetworkReply *reply = qobject_cast<QNetworkReply*>(sender()); - QVERIFY(!reply->error()); + QVERIFY(!reply->networkError()); if (requestsStartedCount_readyRead < 30 && reply->bytesAvailable() > 27906/2) { startOne(); @@ -6351,7 +6346,7 @@ void tst_QNetworkReply::ignoreSslErrorsList() QVERIFY(waitForFinish(reply) != Timeout); QFETCH(QNetworkReply::NetworkError, expectedNetworkError); - QCOMPARE(reply->error(), expectedNetworkError); + QCOMPARE(reply->networkError(), expectedNetworkError); } void tst_QNetworkReply::ignoreSslErrorsListWithSlot_data() @@ -6382,7 +6377,7 @@ void tst_QNetworkReply::ignoreSslErrorsListWithSlot() QVERIFY(waitForFinish(reply) != Timeout); QFETCH(QNetworkReply::NetworkError, expectedNetworkError); - QCOMPARE(reply->error(), expectedNetworkError); + QCOMPARE(reply->networkError(), expectedNetworkError); } void tst_QNetworkReply::sslConfiguration_data() @@ -6461,7 +6456,7 @@ void tst_QNetworkReply::sslConfiguration() QFETCH(bool, works); QNetworkReply::NetworkError expectedError = works ? QNetworkReply::NoError : QNetworkReply::SslHandshakeFailedError; - QCOMPARE(reply->error(), expectedError); + QCOMPARE(reply->networkError(), expectedError); } #ifdef QT_BUILD_INTERNAL @@ -6496,7 +6491,7 @@ void tst_QNetworkReply::sslSessionSharing() connect(reply, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop())); QTestEventLoop::instance().enterLoop(20); QVERIFY(!QTestEventLoop::instance().timeout()); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); reply->deleteLater(); // now send several requests at the same time, so we open more sockets and reuse the SSL session @@ -6521,7 +6516,7 @@ void tst_QNetworkReply::sslSessionSharingHelperSlot() sslSessionSharingWasUsed = true; QString urlQueryString = reply->url().query(); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); count++; @@ -6562,7 +6557,7 @@ void tst_QNetworkReply::sslSessionSharingFromPersistentSession() connect(warmupReply, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop())); QTestEventLoop::instance().enterLoop(20); QVERIFY(!QTestEventLoop::instance().timeout()); - QCOMPARE(warmupReply->error(), QNetworkReply::NoError); + QCOMPARE(warmupReply->networkError(), QNetworkReply::NoError); QByteArray sslSession = warmupReply->sslConfiguration().sessionTicket(); QCOMPARE(!sslSession.isEmpty(), sessionPersistenceEnabled); @@ -6590,7 +6585,7 @@ void tst_QNetworkReply::sslSessionSharingFromPersistentSession() connect(reply, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop())); QTestEventLoop::instance().enterLoop(20); QVERIFY(!QTestEventLoop::instance().timeout()); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); bool sslSessionSharingWasUsedInReply = QSslConfigurationPrivate::peerSessionWasShared( reply->sslConfiguration()); @@ -6644,7 +6639,7 @@ void tst_QNetworkReply::symbianOpenCDataUrlCrash() RUN_REQUEST(runSimpleRequest(QNetworkAccessManager::GetOperation, req, reply)); QCOMPARE(reply->url(), url); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QCOMPARE(reply->header(QNetworkRequest::ContentLengthHeader).toLongLong(), qint64(598)); } @@ -6864,7 +6859,7 @@ void tst_QNetworkReply::getFromHttpIntoBuffer2() connect(reply, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop()), Qt::QueuedConnection); QTestEventLoop::instance().enterLoop(40); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QVERIFY(!QTestEventLoop::instance().timeout()); } @@ -6882,7 +6877,7 @@ void tst_QNetworkReply::getFromHttpIntoBufferCanReadLine() QVERIFY2(waitForFinish(reply) == Success, msgWaitForFinished(reply)); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QVERIFY(reply->canReadLine()); QCOMPARE(reply->read(1), QByteArray("x")); QVERIFY(reply->canReadLine()); @@ -6908,7 +6903,7 @@ void tst_QNetworkReply::ioGetFromHttpWithoutContentLength() QCOMPARE(reply->url(), request.url()); QVERIFY(reply->isFinished()); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); } // Is handled somewhere else too, introduced this special test to have it more accessible @@ -6930,7 +6925,7 @@ void tst_QNetworkReply::ioGetFromHttpBrokenChunkedEncoding() QVERIFY(!QTestEventLoop::instance().timeout()); QEXPECT_FAIL(0, "We should close the socket and not just do nothing", Continue); QVERIFY(reply->isFinished()); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); } // TODO: @@ -6954,7 +6949,7 @@ void tst_QNetworkReply::qtbug12908compressedHttpReply() QVERIFY2(waitForFinish(reply) == Success, msgWaitForFinished(reply)); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QCOMPARE(reply->size(), qint64(16384)); QCOMPARE(reply->readAll(), QByteArray(16384, '\0')); } @@ -6977,7 +6972,7 @@ void tst_QNetworkReply::compressedHttpReplyBrokenGzip() QCOMPARE(waitForFinish(reply), int(Failure)); - QCOMPARE(reply->error(), QNetworkReply::ProtocolFailure); + QCOMPARE(reply->networkError(), QNetworkReply::ProtocolFailure); } // TODO add similar test for FTP @@ -7032,7 +7027,7 @@ void tst_QNetworkReply::getFromUnreachableIp() QCOMPARE(waitForFinish(reply), int(Failure)); - QVERIFY(reply->error() != QNetworkReply::NoError); + QVERIFY(reply->networkError() != QNetworkReply::NoError); } void tst_QNetworkReply::qtbug4121unknownAuthentication() @@ -7056,7 +7051,7 @@ void tst_QNetworkReply::qtbug4121unknownAuthentication() QCOMPARE(finishedSpy.count(), 1); QCOMPARE(errorSpy.count(), 1); - QCOMPARE(reply->error(), QNetworkReply::AuthenticationRequiredError); + QCOMPARE(reply->networkError(), QNetworkReply::AuthenticationRequiredError); } #ifndef QT_NO_NETWORKPROXY @@ -7147,7 +7142,7 @@ void tst_QNetworkReply::authenticationCacheAfterCancel() QTestEventLoop::instance().enterLoop(10); QVERIFY(!QTestEventLoop::instance().timeout()); - QCOMPARE(reply->error(), QNetworkReply::ProxyAuthenticationRequiredError); + QCOMPARE(reply->networkError(), QNetworkReply::ProxyAuthenticationRequiredError); QCOMPARE(authSpy.count(), 0); QCOMPARE(proxyAuthSpy.count(), 1); proxyAuthSpy.clear(); @@ -7161,8 +7156,8 @@ void tst_QNetworkReply::authenticationCacheAfterCancel() QVERIFY(!QTestEventLoop::instance().timeout()); // Work round known quirk in the old test server (danted -v < v1.1.19): - if (reply->error() != QNetworkReply::HostNotFoundError) - QCOMPARE(reply->error(), QNetworkReply::ProxyAuthenticationRequiredError); + if (reply->networkError() != QNetworkReply::HostNotFoundError) + QCOMPARE(reply->networkError(), QNetworkReply::ProxyAuthenticationRequiredError); QCOMPARE(authSpy.count(), 0); QVERIFY(proxyAuthSpy.count() > 0); proxyAuthSpy.clear(); @@ -7188,7 +7183,7 @@ void tst_QNetworkReply::authenticationCacheAfterCancel() QTestEventLoop::instance().enterLoop(10); QVERIFY(!QTestEventLoop::instance().timeout()); - QCOMPARE(reply->error(), QNetworkReply::AuthenticationRequiredError); + QCOMPARE(reply->networkError(), QNetworkReply::AuthenticationRequiredError); QVERIFY(authSpy.count() > 0); authSpy.clear(); if (proxyAuth) { @@ -7204,7 +7199,7 @@ void tst_QNetworkReply::authenticationCacheAfterCancel() QTestEventLoop::instance().enterLoop(10); QVERIFY(!QTestEventLoop::instance().timeout()); - QCOMPARE(reply->error(), QNetworkReply::AuthenticationRequiredError); + QCOMPARE(reply->networkError(), QNetworkReply::AuthenticationRequiredError); QVERIFY(authSpy.count() > 0); authSpy.clear(); if (proxyAuth) { @@ -7222,7 +7217,7 @@ void tst_QNetworkReply::authenticationCacheAfterCancel() QTestEventLoop::instance().enterLoop(10); QVERIFY(!QTestEventLoop::instance().timeout()); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QVERIFY(authSpy.count() > 0); authSpy.clear(); if (proxyAuth) { @@ -7237,7 +7232,7 @@ void tst_QNetworkReply::authenticationCacheAfterCancel() QTestEventLoop::instance().enterLoop(10); QVERIFY(!QTestEventLoop::instance().timeout()); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); //should be supplied from cache QCOMPARE(authSpy.count(), 0); authSpy.clear(); @@ -7268,7 +7263,7 @@ void tst_QNetworkReply::authenticationWithDifferentRealm() connect(reply, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop()), Qt::QueuedConnection); QTestEventLoop::instance().enterLoop(10); QVERIFY(!QTestEventLoop::instance().timeout()); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); helper.httpUserName = "httptest"; helper.httpPassword = "httptest"; @@ -7278,7 +7273,7 @@ void tst_QNetworkReply::authenticationWithDifferentRealm() connect(reply, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop()), Qt::QueuedConnection); QTestEventLoop::instance().enterLoop(10); QVERIFY(!QTestEventLoop::instance().timeout()); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); } #endif // !QT_NO_NETWORKPROXY @@ -7329,7 +7324,7 @@ void tst_QNetworkReply::qtbug13431replyThrottling() QTestEventLoop::instance().enterLoop(30); QVERIFY(!QTestEventLoop::instance().timeout()); QVERIFY(helper.m_reply->isFinished()); - QCOMPARE(helper.m_reply->error(), QNetworkReply::NoError); + QCOMPARE(helper.m_reply->networkError(), QNetworkReply::NoError); } void tst_QNetworkReply::httpWithNoCredentialUsage() @@ -7378,7 +7373,7 @@ void tst_QNetworkReply::httpWithNoCredentialUsage() QCOMPARE(finishedSpy.count(), 1); QCOMPARE(errorSpy.count(), 1); - QCOMPARE(reply->error(), QNetworkReply::AuthenticationRequiredError); + QCOMPARE(reply->networkError(), QNetworkReply::AuthenticationRequiredError); } } @@ -7394,7 +7389,7 @@ void tst_QNetworkReply::qtbug15311doubleContentLength() QVERIFY2(waitForFinish(reply) == Success, msgWaitForFinished(reply)); QVERIFY(reply->isFinished()); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QCOMPARE(reply->size(), qint64(3)); QCOMPARE(reply->header(QNetworkRequest::ContentLengthHeader).toLongLong(), qint64(3)); QCOMPARE(reply->rawHeader("Content-length"), QByteArray("3, 3")); @@ -7413,7 +7408,7 @@ void tst_QNetworkReply::qtbug18232gzipContentLengthZero() QVERIFY2(waitForFinish(reply) == Success, msgWaitForFinished(reply)); QVERIFY(reply->isFinished()); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QCOMPARE(reply->size(), qint64(0)); QCOMPARE(reply->header(QNetworkRequest::ContentLengthHeader).toLongLong(), qint64(0)); QCOMPARE(reply->readAll(), QByteArray()); @@ -7434,7 +7429,7 @@ void tst_QNetworkReply::qtbug22660gzipNoContentLengthEmptyContent() QVERIFY2(waitForFinish(reply) == Success, msgWaitForFinished(reply)); QVERIFY(reply->isFinished()); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QCOMPARE(reply->size(), qint64(0)); QVERIFY(!reply->header(QNetworkRequest::ContentLengthHeader).isValid()); QCOMPARE(reply->readAll(), QByteArray()); @@ -7507,7 +7502,7 @@ void tst_QNetworkReply::qtbug27161httpHeaderMayBeDamaged(){ QVERIFY2(waitForFinish(reply) == Success, msgWaitForFinished(reply)); QVERIFY(reply->isFinished()); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QCOMPARE(reply->size(), qint64(3)); QCOMPARE(reply->header(QNetworkRequest::ContentLengthHeader).toLongLong(), qint64(3)); QCOMPARE(reply->rawHeader("Content-length"), QByteArray("3")); @@ -7558,7 +7553,7 @@ void tst_QNetworkReply::qtbug28035browserDoesNotLoadQtProjectOrgCorrectly() { QVERIFY2(waitForFinish(reply) == Success, msgWaitForFinished(reply)); QVERIFY(reply->isFinished()); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QCOMPARE(reply->readAll(), QByteArray("GET")); QCOMPARE(reply->attribute(QNetworkRequest::SourceIsFromCacheAttribute).toBool(), false); @@ -7568,7 +7563,7 @@ void tst_QNetworkReply::qtbug28035browserDoesNotLoadQtProjectOrgCorrectly() { QVERIFY2(waitForFinish(reply) == Success, msgWaitForFinished(reply)); QVERIFY(reply->isFinished()); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QCOMPARE(reply->readAll(), QByteArray("GET")); QCOMPARE(reply->attribute(QNetworkRequest::SourceIsFromCacheAttribute).toBool(), true); @@ -7580,7 +7575,7 @@ void tst_QNetworkReply::qtbug28035browserDoesNotLoadQtProjectOrgCorrectly() { QVERIFY2(waitForFinish(reply) == Success, msgWaitForFinished(reply)); QVERIFY(reply->isFinished()); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QCOMPARE(reply->rawHeader("Content-length"), QByteArray("4")); QCOMPARE(reply->readAll(), QByteArray("POST")); QCOMPARE(reply->attribute(QNetworkRequest::SourceIsFromCacheAttribute).toBool(), false); @@ -7592,7 +7587,7 @@ void tst_QNetworkReply::qtbug28035browserDoesNotLoadQtProjectOrgCorrectly() { QVERIFY2(waitForFinish(reply) == Success, msgWaitForFinished(reply)); QVERIFY(reply->isFinished()); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QCOMPARE(reply->readAll(), QByteArray("GET")); QCOMPARE(reply->attribute(QNetworkRequest::SourceIsFromCacheAttribute).toBool(), false); @@ -7603,7 +7598,7 @@ void tst_QNetworkReply::qtbug28035browserDoesNotLoadQtProjectOrgCorrectly() { QVERIFY2(waitForFinish(reply) == Success, msgWaitForFinished(reply)); QVERIFY(reply->isFinished()); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QCOMPARE(reply->readAll(), QByteArray("GET")); QCOMPARE(reply->attribute(QNetworkRequest::SourceIsFromCacheAttribute).toBool(), true); @@ -7614,7 +7609,7 @@ void tst_QNetworkReply::qtbug28035browserDoesNotLoadQtProjectOrgCorrectly() { QVERIFY2(waitForFinish(reply) == Success, msgWaitForFinished(reply)); QVERIFY(reply->isFinished()); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QCOMPARE(reply->attribute(QNetworkRequest::SourceIsFromCacheAttribute).toBool(), false); server.clearHeaderParserState(); @@ -7624,7 +7619,7 @@ void tst_QNetworkReply::qtbug28035browserDoesNotLoadQtProjectOrgCorrectly() { QVERIFY2(waitForFinish(reply) == Success, msgWaitForFinished(reply)); QVERIFY(reply->isFinished()); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QCOMPARE(reply->readAll(), QByteArray("GET")); QCOMPARE(reply->attribute(QNetworkRequest::SourceIsFromCacheAttribute).toBool(), false); @@ -7635,7 +7630,7 @@ void tst_QNetworkReply::qtbug28035browserDoesNotLoadQtProjectOrgCorrectly() { QVERIFY2(waitForFinish(reply) == Success, msgWaitForFinished(reply)); QVERIFY(reply->isFinished()); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QCOMPARE(reply->readAll(), QByteArray("GET")); QCOMPARE(reply->attribute(QNetworkRequest::SourceIsFromCacheAttribute).toBool(), true); } @@ -7786,7 +7781,7 @@ void tst_QNetworkReply::synchronousRequestSslFailure() QSignalSpy sslErrorsSpy(&manager, SIGNAL(sslErrors(QNetworkReply*,QList<QSslError>))); runSimpleRequest(QNetworkAccessManager::GetOperation, request, reply, 0); QVERIFY(reply->isFinished()); - QCOMPARE(reply->error(), QNetworkReply::SslHandshakeFailedError); + QCOMPARE(reply->networkError(), QNetworkReply::SslHandshakeFailedError); QCOMPARE(sslErrorsSpy.count(), 0); } #endif @@ -7828,14 +7823,14 @@ void tst_QNetworkReply::httpAbort() HttpAbortHelper replyHolder(reply.data()); QTestEventLoop::instance().enterLoop(10); QVERIFY(!QTestEventLoop::instance().timeout()); - QCOMPARE(reply->error(), QNetworkReply::OperationCanceledError); + QCOMPARE(reply->networkError(), QNetworkReply::OperationCanceledError); QVERIFY(reply->isFinished()); // Abort immediately after the get() QNetworkReplyPtr reply2(manager.get(request)); connect(reply2, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop())); reply2->abort(); - QCOMPARE(reply2->error(), QNetworkReply::OperationCanceledError); + QCOMPARE(reply2->networkError(), QNetworkReply::OperationCanceledError); QVERIFY(reply2->isFinished()); // Abort after the finished() @@ -7846,7 +7841,7 @@ void tst_QNetworkReply::httpAbort() QVERIFY(reply3->isFinished()); reply3->abort(); - QCOMPARE(reply3->error(), QNetworkReply::NoError); + QCOMPARE(reply3->networkError(), QNetworkReply::NoError); } void tst_QNetworkReply::dontInsertPartialContentIntoTheCache() @@ -7893,7 +7888,7 @@ void tst_QNetworkReply::httpUserAgent() QVERIFY2(waitForFinish(reply) == Success, msgWaitForFinished(reply)); QVERIFY(reply->isFinished()); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QVERIFY(server.receivedData.contains("\r\nUser-Agent: abcDEFghi\r\n")); } @@ -7946,7 +7941,7 @@ void tst_QNetworkReply::synchronousAuthenticationCache() QNetworkReplyPtr reply(manager.get(request)); QVERIFY(reply->isFinished()); - QCOMPARE(reply->error(), QNetworkReply::AuthenticationRequiredError); + QCOMPARE(reply->networkError(), QNetworkReply::AuthenticationRequiredError); } //2) URL with credentials, we are authenticated @@ -7957,7 +7952,7 @@ void tst_QNetworkReply::synchronousAuthenticationCache() QNetworkReplyPtr reply(manager.get(request)); QVERIFY(reply->isFinished()); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QCOMPARE(reply->readAll().constData(), "OK"); } @@ -7969,7 +7964,7 @@ void tst_QNetworkReply::synchronousAuthenticationCache() QNetworkReplyPtr reply(manager.get(request)); QVERIFY(reply->isFinished()); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QCOMPARE(reply->readAll().constData(), "OK"); } } @@ -8063,7 +8058,7 @@ void tst_QNetworkReply::ftpAuthentication() runSimpleRequest(QNetworkAccessManager::GetOperation, request, reply); QCOMPARE(reply->url(), request.url()); - QCOMPARE(reply->error(), QNetworkReply::NetworkError(error)); + QCOMPARE(reply->networkError(), QNetworkReply::NetworkError(error)); } void tst_QNetworkReply::emitErrorForAllReplies() // QTBUG-36890 @@ -8166,7 +8161,7 @@ void tst_QNetworkReply::backgroundRequest() QNetworkSessionPrivate::setUsagePolicies(*session, original); QVERIFY(reply->isFinished()); - QCOMPARE(reply->error(), error); + QCOMPARE(reply->networkError(), error); #endif } #endif @@ -8244,7 +8239,7 @@ void tst_QNetworkReply::backgroundRequestInterruption() QNetworkSessionPrivate::setUsagePolicies(*session, original); QVERIFY(reply->isFinished()); - QCOMPARE(reply->error(), error); + QCOMPARE(reply->networkError(), error); #endif } #endif @@ -8391,7 +8386,7 @@ void tst_QNetworkReply::putWithRateLimiting() rateLimitedUploadDevice.open(QIODevice::ReadOnly); RUN_REQUEST(runCustomRequest(request, reply,QByteArray("POST"), &rateLimitedUploadDevice)); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200); QByteArray uploadedData = reply->readAll(); @@ -8439,7 +8434,7 @@ void tst_QNetworkReply::ioHttpSingleRedirect() // Reply url is set to the redirect url QCOMPARE(reply->url(), redirectUrl); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QVERIFY(validateRedirectedResponseHeaders(reply)); } @@ -8476,7 +8471,7 @@ void tst_QNetworkReply::ioHttpChangeMaxRedirects() QCOMPARE(redSpy.count(), request.maximumRedirectsAllowed()); QCOMPARE(spy.count(), 1); - QCOMPARE(reply->error(), QNetworkReply::TooManyRedirectsError); + QCOMPARE(reply->networkError(), QNetworkReply::TooManyRedirectsError); // Increase max redirects to allow successful completion request.setMaximumRedirectsAllowed(3); @@ -8488,7 +8483,7 @@ void tst_QNetworkReply::ioHttpChangeMaxRedirects() QCOMPARE(redSpy2.count(), 2); QCOMPARE(reply2->url(), server3Url); - QCOMPARE(reply2->error(), QNetworkReply::NoError); + QCOMPARE(reply2->networkError(), QNetworkReply::NoError); QVERIFY(validateRedirectedResponseHeaders(reply2)); } @@ -8546,7 +8541,7 @@ void tst_QNetworkReply::ioHttpRedirectErrors() watchDog.start(5000); QCOMPARE(eventLoop.exec(), int(Failure)); - QCOMPARE(reply->error(), error); + QCOMPARE(reply->networkError(), error); } struct SameOriginRedirector : MiniHttpServer @@ -8704,7 +8699,7 @@ void tst_QNetworkReply::ioHttpRedirectPolicyErrors() QCOMPARE(waitForFinish(reply), int(Failure)); QCOMPARE(spy.count(), 1); - QCOMPARE(reply->error(), expectedError); + QCOMPARE(reply->networkError(), expectedError); } void tst_QNetworkReply::ioHttpUserVerifiedRedirect_data() @@ -8847,7 +8842,7 @@ void tst_QNetworkReply::ioHttpRedirectFromLocalToRemote() QCOMPARE(waitForFinish(reply), int(Success)); QCOMPARE(reply->url(), targetUrl); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QCOMPARE(reply->header(QNetworkRequest::ContentLengthHeader).toLongLong(), reference.size()); QCOMPARE(reply->readAll(), reference.readAll()); } @@ -8966,7 +8961,7 @@ void tst_QNetworkReply::ioHttpRedirectMultipartPost() multiPart->deleteLater(); QCOMPARE(reply->url(), url); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->networkError(), QNetworkReply::NoError); QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200); // 200 OK @@ -9353,7 +9348,7 @@ void tst_QNetworkReply::getWithTimeout() QCOMPARE(waitForFinish(reply), int(Success)); QCOMPARE(spy.count(), 0); - QVERIFY(reply->error() == QNetworkReply::NoError); + QVERIFY(reply->networkError() == QNetworkReply::NoError); request.setTransferTimeout(1000); server.stopTransfer = true; @@ -9364,7 +9359,7 @@ void tst_QNetworkReply::getWithTimeout() QCOMPARE(waitForFinish(reply2), int(Failure)); QCOMPARE(spy2.count(), 1); - QVERIFY(reply2->error() == QNetworkReply::OperationCanceledError); + QVERIFY(reply2->networkError() == QNetworkReply::OperationCanceledError); request.setTransferTimeout(0); manager.setTransferTimeout(1000); @@ -9375,7 +9370,7 @@ void tst_QNetworkReply::getWithTimeout() QCOMPARE(waitForFinish(reply3), int(Failure)); QCOMPARE(spy3.count(), 1); - QVERIFY(reply3->error() == QNetworkReply::OperationCanceledError); + QVERIFY(reply3->networkError() == QNetworkReply::OperationCanceledError); manager.setTransferTimeout(0); } @@ -9393,7 +9388,7 @@ void tst_QNetworkReply::postWithTimeout() QCOMPARE(waitForFinish(reply), int(Success)); QCOMPARE(spy.count(), 0); - QVERIFY(reply->error() == QNetworkReply::NoError); + QVERIFY(reply->networkError() == QNetworkReply::NoError); request.setTransferTimeout(1000); server.stopTransfer = true; @@ -9404,7 +9399,7 @@ void tst_QNetworkReply::postWithTimeout() QCOMPARE(waitForFinish(reply2), int(Failure)); QCOMPARE(spy2.count(), 1); - QVERIFY(reply2->error() == QNetworkReply::OperationCanceledError); + QVERIFY(reply2->networkError() == QNetworkReply::OperationCanceledError); request.setTransferTimeout(0); manager.setTransferTimeout(1000); @@ -9415,7 +9410,7 @@ void tst_QNetworkReply::postWithTimeout() QCOMPARE(waitForFinish(reply3), int(Failure)); QCOMPARE(spy3.count(), 1); - QVERIFY(reply3->error() == QNetworkReply::OperationCanceledError); + QVERIFY(reply3->networkError() == QNetworkReply::OperationCanceledError); manager.setTransferTimeout(0); } diff --git a/tests/auto/network/bearer/qnetworksession/test/tst_qnetworksession.cpp b/tests/auto/network/bearer/qnetworksession/test/tst_qnetworksession.cpp index 8d32ddf37c..a13adc8ebf 100644 --- a/tests/auto/network/bearer/qnetworksession/test/tst_qnetworksession.cpp +++ b/tests/auto/network/bearer/qnetworksession/test/tst_qnetworksession.cpp @@ -1272,7 +1272,7 @@ void tst_QNetworkSession::usagePolicies() QNetworkSession::UsagePolicies initial; initial = session.usagePolicies(); if (initial != 0) - QNetworkSessionPrivate::setUsagePolicies(session, 0); + QNetworkSessionPrivate::setUsagePolicies(session, { }); QSignalSpy spy(&session, SIGNAL(usagePoliciesChanged(QNetworkSession::UsagePolicies))); QNetworkSessionPrivate::setUsagePolicies(session, QNetworkSession::NoBackgroundTrafficPolicy); QCOMPARE(spy.count(), 1); diff --git a/tests/auto/network/kernel/qnetworkinterface/BLACKLIST b/tests/auto/network/kernel/qnetworkinterface/BLACKLIST deleted file mode 100644 index 33bdf540b6..0000000000 --- a/tests/auto/network/kernel/qnetworkinterface/BLACKLIST +++ /dev/null @@ -1,4 +0,0 @@ -# QTBUG-65667 -[localAddress:linklocal-ipv4] -msvc-2015 ci -msvc-2017 ci diff --git a/tests/auto/network/kernel/qnetworkinterface/tst_qnetworkinterface.cpp b/tests/auto/network/kernel/qnetworkinterface/tst_qnetworkinterface.cpp index 0c7ba99be5..bc6e5435df 100644 --- a/tests/auto/network/kernel/qnetworkinterface/tst_qnetworkinterface.cpp +++ b/tests/auto/network/kernel/qnetworkinterface/tst_qnetworkinterface.cpp @@ -215,31 +215,45 @@ void tst_QNetworkInterface::loopbackIPv6() } void tst_QNetworkInterface::localAddress_data() { + bool ipv6 = isIPv6Working(); QTest::addColumn<QHostAddress>("target"); QTest::newRow("localhost-ipv4") << QHostAddress(QHostAddress::LocalHost); - if (isIPv6Working()) + if (ipv6) QTest::newRow("localhost-ipv6") << QHostAddress(QHostAddress::LocalHostIPv6); QTest::newRow("test-server") << QtNetworkSettings::serverIP(); - // Since we don't actually transmit anything, we can list any IPv4 address - // and it should work. But we're using a linklocal address so that this - // test can pass even machines that failed to reach a DHCP server. - QTest::newRow("linklocal-ipv4") << QHostAddress("169.254.0.1"); - - if (isIPv6Working()) { - // On the other hand, we can't list just any IPv6 here. It's very - // likely that this machine has not received a route via ICMPv6-RA or - // DHCPv6, so it won't have a global route. On some OSes, IPv6 may be - // enabled per interface, so we need to know which ones work. - const QList<QHostAddress> addrs = QNetworkInterface::allAddresses(); - for (const QHostAddress &addr : addrs) { - QString scope = addr.scopeId(); - if (scope.isEmpty()) + QSet<QHostAddress> added; + const QList<QNetworkInterface> ifaces = QNetworkInterface::allInterfaces(); + for (const QNetworkInterface &iface : ifaces) { + if ((iface.flags() & QNetworkInterface::IsUp) == 0) + continue; + const QList<QNetworkAddressEntry> addrs = iface.addressEntries(); + for (const QNetworkAddressEntry &entry : addrs) { + QHostAddress addr = entry.ip(); + if (addr.isLoopback()) + continue; // added above + + if (addr.protocol() == QAbstractSocket::IPv4Protocol) { + // add an IPv4 address with bits in the host portion of the address flipped + quint32 ip4 = entry.ip().toIPv4Address(); + addr.setAddress(ip4 ^ ~entry.netmask().toIPv4Address()); + } else if (!ipv6 || entry.prefixLength() != 64) { + continue; + } else { + // add a random node in this IPv6 network + quint64 randomid = qFromBigEndian(Q_UINT64_C(0x8f41f072e5733caa)); + QIPv6Address ip6 = addr.toIPv6Address(); + memcpy(&ip6[8], &randomid, sizeof(randomid)); + addr.setAddress(ip6); + } + + if (added.contains(addr)) continue; - QTest::addRow("linklocal-ipv6-%s", qPrintable(scope)) - << QHostAddress("fe80::1234%" + scope); + added.insert(addr); + + QTest::addRow("%s-%s", qPrintable(iface.name()), qPrintable(addr.toString())) << addr; } } } diff --git a/tests/auto/network/network.pro b/tests/auto/network/network.pro index 64262a8632..9a3ababe61 100644 --- a/tests/auto/network/network.pro +++ b/tests/auto/network/network.pro @@ -1,5 +1,6 @@ TEMPLATE=subdirs SUBDIRS=\ + selftest \ access \ bearer \ kernel \ diff --git a/tests/auto/network/selftest/selftest.pro b/tests/auto/network/selftest/selftest.pro new file mode 100644 index 0000000000..e8312032c3 --- /dev/null +++ b/tests/auto/network/selftest/selftest.pro @@ -0,0 +1,6 @@ +CONFIG += testcase +TARGET = tst_networkselftest +SOURCES += tst_networkselftest.cpp + +requires(qtConfig(private_tests)) +QT = core network network-private testlib diff --git a/tests/auto/network/selftest/tst_networkselftest.cpp b/tests/auto/network/selftest/tst_networkselftest.cpp new file mode 100644 index 0000000000..a540e18f48 --- /dev/null +++ b/tests/auto/network/selftest/tst_networkselftest.cpp @@ -0,0 +1,55 @@ +/**************************************************************************** +** +** Copyright (C) 2020 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:GPL-EXCEPT$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + + +#include <QtTest/QtTest> + +#include "../../network-settings.h" + +class tst_NetworkSelftest : public QObject +{ + Q_OBJECT + +private slots: + void testServerIsAvailableInCI(); +}; + +void tst_NetworkSelftest::testServerIsAvailableInCI() +{ + if (!qEnvironmentVariable("QTEST_ENVIRONMENT").split(' ').contains("ci")) + QSKIP("Not running in the CI"); + +#if !defined(QT_TEST_SERVER) + QVERIFY2(QtNetworkSettings::verifyTestNetworkSettings(), + "Test server must be available when running in the CI"); +#endif +} + +QTEST_MAIN(tst_NetworkSelftest) + +#include "tst_networkselftest.moc" diff --git a/tests/auto/network/socket/platformsocketengine/tst_platformsocketengine.cpp b/tests/auto/network/socket/platformsocketengine/tst_platformsocketengine.cpp index ffc63ee46a..5be00630ca 100644 --- a/tests/auto/network/socket/platformsocketengine/tst_platformsocketengine.cpp +++ b/tests/auto/network/socket/platformsocketengine/tst_platformsocketengine.cpp @@ -87,7 +87,8 @@ private slots: void tst_PlatformSocketEngine::initTestCase() { - QVERIFY(QtNetworkSettings::verifyTestNetworkSettings()); + if (!QtNetworkSettings::verifyTestNetworkSettings()) + QSKIP("No network test server available"); } //--------------------------------------------------------------------------- diff --git a/tests/auto/network/socket/qhttpsocketengine/tst_qhttpsocketengine.cpp b/tests/auto/network/socket/qhttpsocketengine/tst_qhttpsocketengine.cpp index 64241014d7..1931df3d07 100644 --- a/tests/auto/network/socket/qhttpsocketengine/tst_qhttpsocketengine.cpp +++ b/tests/auto/network/socket/qhttpsocketengine/tst_qhttpsocketengine.cpp @@ -129,7 +129,8 @@ void tst_QHttpSocketEngine::initTestCase() QVERIFY(QtNetworkSettings::verifyConnection(QtNetworkSettings::httpServerName(), 80)); QVERIFY(QtNetworkSettings::verifyConnection(QtNetworkSettings::imapServerName(), 143)); #else - QVERIFY(QtNetworkSettings::verifyTestNetworkSettings()); + if (!QtNetworkSettings::verifyTestNetworkSettings()) + QSKIP("No network test server available"); #endif } @@ -274,7 +275,7 @@ void tst_QHttpSocketEngine::errorTest() QTestEventLoop::instance().enterLoop(30); QVERIFY(!QTestEventLoop::instance().timeout()); - QCOMPARE(int(socket.error()), expectedError); + QCOMPARE(int(socket.socketError()), expectedError); } //--------------------------------------------------------------------------- diff --git a/tests/auto/network/socket/qlocalsocket/socketprocess/main.cpp b/tests/auto/network/socket/qlocalsocket/socketprocess/main.cpp index 272e837ac5..6355fea6ab 100644 --- a/tests/auto/network/socket/qlocalsocket/socketprocess/main.cpp +++ b/tests/auto/network/socket/qlocalsocket/socketprocess/main.cpp @@ -65,8 +65,8 @@ bool runServer(int numberOfConnections) return false; } printf("server: data written\n"); - if (socket->error() != QLocalSocket::UnknownSocketError) { - fprintf(stderr, "server: socket error %d\n", socket->error()); + if (socket->socketError() != QLocalSocket::UnknownSocketError) { + fprintf(stderr, "server: socket error %d\n", socket->socketError()); return false; } } @@ -83,8 +83,8 @@ bool runClient() socket.connectToServer(serverName, QLocalSocket::ReadWrite); if (socket.waitForConnected()) break; - if (socket.error() == QLocalSocket::ServerNotFoundError - || socket.error() == QLocalSocket::ConnectionRefusedError) { + if (socket.socketError() == QLocalSocket::ServerNotFoundError + || socket.socketError() == QLocalSocket::ConnectionRefusedError) { if (connectTimer.elapsed() > 5000) { fprintf(stderr, "client: server not found or connection refused. Giving up.\n"); return false; diff --git a/tests/auto/network/socket/qlocalsocket/tst_qlocalsocket.cpp b/tests/auto/network/socket/qlocalsocket/tst_qlocalsocket.cpp index 732f7eef00..0c1536bd59 100644 --- a/tests/auto/network/socket/qlocalsocket/tst_qlocalsocket.cpp +++ b/tests/auto/network/socket/qlocalsocket/tst_qlocalsocket.cpp @@ -195,7 +195,7 @@ private slots: void slotError(QLocalSocket::LocalSocketError newError) { QVERIFY(errorString() != QLatin1String("Unknown error")); - QCOMPARE(error(), newError); + QCOMPARE(socketError(), newError); } void slotStateChanged(QLocalSocket::LocalSocketState newState) { @@ -256,7 +256,7 @@ void tst_QLocalSocket::socket_basic() QCOMPARE(socket.canReadLine(), false); socket.close(); socket.disconnectFromServer(); - QCOMPARE(QLocalSocket::UnknownSocketError, socket.error()); + QCOMPARE(QLocalSocket::UnknownSocketError, socket.socketError()); QVERIFY(!socket.errorString().isEmpty()); QCOMPARE(socket.flush(), false); QCOMPARE(socket.isValid(), false); @@ -375,13 +375,13 @@ void tst_QLocalSocket::listenAndConnect() QVERIFY(socket->waitForConnected()); QVERIFY(socket->isValid()); QCOMPARE(socket->errorString(), QString("Unknown error")); - QCOMPARE(socket->error(), QLocalSocket::UnknownSocketError); + QCOMPARE(socket->socketError(), QLocalSocket::UnknownSocketError); QCOMPARE(socket->state(), QLocalSocket::ConnectedState); //QVERIFY(socket->socketDescriptor() != -1); QCOMPARE(spyError.count(), 0); } else { QVERIFY(!socket->errorString().isEmpty()); - QVERIFY(socket->error() != QLocalSocket::UnknownSocketError); + QVERIFY(socket->socketError() != QLocalSocket::UnknownSocketError); QCOMPARE(socket->state(), QLocalSocket::UnconnectedState); //QCOMPARE(socket->socketDescriptor(), -1); QCOMPARE(qvariant_cast<QLocalSocket::LocalSocketError>(spyError.first()[0]), diff --git a/tests/auto/network/socket/qsocks5socketengine/tst_qsocks5socketengine.cpp b/tests/auto/network/socket/qsocks5socketengine/tst_qsocks5socketengine.cpp index 464054f8a6..da9cdee691 100644 --- a/tests/auto/network/socket/qsocks5socketengine/tst_qsocks5socketengine.cpp +++ b/tests/auto/network/socket/qsocks5socketengine/tst_qsocks5socketengine.cpp @@ -142,7 +142,8 @@ void tst_QSocks5SocketEngine::initTestCase() QVERIFY(QtNetworkSettings::verifyConnection(QtNetworkSettings::httpServerName(), 80)); QVERIFY(QtNetworkSettings::verifyConnection(QtNetworkSettings::imapServerName(), 143)); #else - QVERIFY(QtNetworkSettings::verifyTestNetworkSettings()); + if (!QtNetworkSettings::verifyTestNetworkSettings()) + QSKIP("No network test server available"); #endif } @@ -287,7 +288,7 @@ void tst_QSocks5SocketEngine::errorTest() QTestEventLoop::instance().enterLoop(10); QVERIFY(!QTestEventLoop::instance().timeout()); - QCOMPARE(int(socket.error()), expectedError); + QCOMPARE(int(socket.socketError()), expectedError); } //--------------------------------------------------------------------------- @@ -1010,7 +1011,7 @@ void tst_QSocks5SocketEngine::incomplete() QTestEventLoop::instance().enterLoop(70); QVERIFY(!QTestEventLoop::instance().timeout()); - QCOMPARE(socket.error(), QAbstractSocket::ProxyConnectionClosedError); + QCOMPARE(socket.socketError(), QAbstractSocket::ProxyConnectionClosedError); } //---------------------------------------------------------------------------------- diff --git a/tests/auto/network/socket/qtcpsocket/tst_qtcpsocket.cpp b/tests/auto/network/socket/qtcpsocket/tst_qtcpsocket.cpp index 75b9b23259..9ab5e88900 100644 --- a/tests/auto/network/socket/qtcpsocket/tst_qtcpsocket.cpp +++ b/tests/auto/network/socket/qtcpsocket/tst_qtcpsocket.cpp @@ -358,7 +358,8 @@ void tst_QTcpSocket::initTestCase() QVERIFY(QtNetworkSettings::verifyConnection(QtNetworkSettings::ftpServerName(), 21)); QVERIFY(QtNetworkSettings::verifyConnection(QtNetworkSettings::ftpProxyServerName(), 2121)); #else - QVERIFY(QtNetworkSettings::verifyTestNetworkSettings()); + if (!QtNetworkSettings::verifyTestNetworkSettings()) + QSKIP("No network test server available"); #endif } @@ -492,7 +493,7 @@ void tst_QTcpSocket::constructing() QCOMPARE(socket->peerAddress(), QHostAddress()); QCOMPARE(socket->readChannelCount(), 0); QCOMPARE(socket->writeChannelCount(), 0); - QCOMPARE(socket->error(), QTcpSocket::UnknownSocketError); + QCOMPARE(socket->socketError(), QTcpSocket::UnknownSocketError); QCOMPARE(socket->errorString(), QString("Unknown error")); // Check the state of the socket layer? @@ -596,7 +597,7 @@ void tst_QTcpSocket::bind() } bool bindSuccess = socket->bind(addr, port); - if (!bindSuccess && randomPort && socket->error() == QTcpSocket::AddressInUseError) { + if (!bindSuccess && randomPort && socket->socketError() == QTcpSocket::AddressInUseError) { // we may have been unlucky and hit an already open port, so try another --attemptsLeft; continue; @@ -708,7 +709,7 @@ void tst_QTcpSocket::setInvalidSocketDescriptor() QVERIFY(!socket->setSocketDescriptor(-5, QTcpSocket::UnconnectedState)); QCOMPARE(socket->socketDescriptor(), (qintptr)-1); - QCOMPARE(socket->error(), QTcpSocket::UnsupportedSocketOperationError); + QCOMPARE(socket->socketError(), QTcpSocket::UnsupportedSocketOperationError); delete socket; } @@ -871,7 +872,7 @@ void tst_QTcpSocket::hostNotFound() "when we expect 404", Continue); } #endif - QCOMPARE(int(socket->error()), int(QTcpSocket::HostNotFoundError)); + QCOMPARE(int(socket->socketError()), int(QTcpSocket::HostNotFoundError)); delete socket; } @@ -897,7 +898,7 @@ void tst_QTcpSocket::timeoutConnect() QVERIFY(timer.elapsed() < 150); QVERIFY(!socket->waitForConnected(1000)); //200ms is too short when using SOCKS proxy authentication QCOMPARE(socket->state(), QTcpSocket::UnconnectedState); - QCOMPARE(int(socket->error()), int(QTcpSocket::SocketTimeoutError)); + QCOMPARE(int(socket->socketError()), int(QTcpSocket::SocketTimeoutError)); QCOMPARE(socket->readChannelCount(), 0); QCOMPARE(socket->writeChannelCount(), 0); @@ -1216,7 +1217,7 @@ void tst_QTcpSocket::openCloseOpenClose() QCOMPARE(socket->localAddress(), QHostAddress()); QCOMPARE((int) socket->peerPort(), 0); QCOMPARE(socket->peerAddress(), QHostAddress()); - QCOMPARE(socket->error(), QTcpSocket::UnknownSocketError); + QCOMPARE(socket->socketError(), QTcpSocket::UnknownSocketError); QCOMPARE(socket->errorString(), QString("Unknown error")); QCOMPARE(socket->state(), QTcpSocket::UnconnectedState); @@ -1370,7 +1371,7 @@ protected: while (!quit) { if (socket->waitForDisconnected(500)) break; - if (socket->error() != QAbstractSocket::SocketTimeoutError) + if (socket->socketError() != QAbstractSocket::SocketTimeoutError) return; } @@ -1606,8 +1607,8 @@ void tst_QTcpSocket::readLine() QVERIFY(!socket->waitForReadyRead(100)); QCOMPARE(socket->readLine(buffer, sizeof(buffer)), qint64(0)); - QVERIFY(socket->error() == QAbstractSocket::SocketTimeoutError - || socket->error() == QAbstractSocket::RemoteHostClosedError); + QVERIFY(socket->socketError() == QAbstractSocket::SocketTimeoutError + || socket->socketError() == QAbstractSocket::RemoteHostClosedError); QCOMPARE(socket->bytesAvailable(), qint64(0)); socket->close(); @@ -1756,11 +1757,11 @@ void tst_QTcpSocket::dontCloseOnTimeout() QTcpSocket *socket = newSocket(); socket->connectToHost(serverAddress, server.serverPort()); QVERIFY(!socket->waitForReadyRead(100)); - QCOMPARE(socket->error(), QTcpSocket::SocketTimeoutError); + QCOMPARE(socket->socketError(), QTcpSocket::SocketTimeoutError); QVERIFY(socket->isOpen()); QVERIFY(!socket->waitForDisconnected(100)); - QCOMPARE(socket->error(), QTcpSocket::SocketTimeoutError); + QCOMPARE(socket->socketError(), QTcpSocket::SocketTimeoutError); QVERIFY(socket->isOpen()); delete socket; @@ -2012,7 +2013,7 @@ void tst_QTcpSocket::remoteCloseError() QCOMPARE(disconnectedSpy.count(), 1); QCOMPARE(errorSpy.count(), 1); - QCOMPARE(clientSocket->error(), QAbstractSocket::RemoteHostClosedError); + QCOMPARE(clientSocket->socketError(), QAbstractSocket::RemoteHostClosedError); delete serverSocket; @@ -2380,7 +2381,7 @@ void tst_QTcpSocket::zeroAndMinusOneReturns() socket->write("GET / HTTP/1.0\r\n\r\n"); QVERIFY(socket->waitForDisconnected(15000)); - QCOMPARE(socket->error(), QAbstractSocket::RemoteHostClosedError); + QCOMPARE(socket->socketError(), QAbstractSocket::RemoteHostClosedError); QCOMPARE(socket->write("BLUBBER"), qint64(-1)); QVERIFY(socket->getChar(c)); @@ -2429,7 +2430,7 @@ void tst_QTcpSocket::connectionRefused() QVERIFY2(!timeout(), "Network timeout"); QCOMPARE(socket->state(), QAbstractSocket::UnconnectedState); - QCOMPARE(socket->error(), QAbstractSocket::ConnectionRefusedError); + QCOMPARE(socket->socketError(), QAbstractSocket::ConnectionRefusedError); QCOMPARE(stateSpy.count(), 3); QCOMPARE(qvariant_cast<QAbstractSocket::SocketState>(stateSpy.at(0).at(0)), QAbstractSocket::HostLookupState); @@ -2552,7 +2553,7 @@ void tst_QTcpSocket::connectToMultiIP() socket->connectToHost("multi.dev.qt-project.org", 81); QVERIFY(!socket->waitForConnected(2000)); QVERIFY(stopWatch.elapsed() < 2000); - QCOMPARE(socket->error(), QAbstractSocket::SocketTimeoutError); + QCOMPARE(socket->socketError(), QAbstractSocket::SocketTimeoutError); delete socket; #endif @@ -2738,7 +2739,7 @@ void tst_QTcpSocket::taskQtBug5799ConnectionErrorWaitForConnected() socket.waitForConnected(10000); QVERIFY2(timer.elapsed() < 9900, "Connection to closed port timed out instead of refusing, something is wrong"); QVERIFY2(socket.state() == QAbstractSocket::UnconnectedState, "Socket connected unexpectedly!"); - QVERIFY2(socket.error() == QAbstractSocket::ConnectionRefusedError, + QVERIFY2(socket.socketError() == QAbstractSocket::ConnectionRefusedError, QString("Could not reach server: %1").arg(socket.errorString()).toLocal8Bit()); } @@ -2757,7 +2758,7 @@ void tst_QTcpSocket::taskQtBug5799ConnectionErrorEventLoop() QTestEventLoop::instance().enterLoop(10); QVERIFY2(!QTestEventLoop::instance().timeout(), "Connection to closed port timed out instead of refusing, something is wrong"); QVERIFY2(socket.state() == QAbstractSocket::UnconnectedState, "Socket connected unexpectedly!"); - QVERIFY2(socket.error() == QAbstractSocket::ConnectionRefusedError, + QVERIFY2(socket.socketError() == QAbstractSocket::ConnectionRefusedError, QString("Could not reach server: %1").arg(socket.errorString()).toLocal8Bit()); } @@ -2767,12 +2768,12 @@ void tst_QTcpSocket::taskQtBug7054TimeoutErrorResetting() socket->connectToHost(QtNetworkSettings::httpServerName(), 443); QVERIFY(socket->waitForConnected(5*1000)); - QCOMPARE(socket->error(), QAbstractSocket::UnknownSocketError); + QCOMPARE(socket->socketError(), QAbstractSocket::UnknownSocketError); // We connected to the HTTPS port. Wait two seconds to receive data. We will receive // nothing because we would need to start the SSL handshake QVERIFY(!socket->waitForReadyRead(2*1000)); - QCOMPARE(socket->error(), QAbstractSocket::SocketTimeoutError); + QCOMPARE(socket->socketError(), QAbstractSocket::SocketTimeoutError); // Now write some crap to make the server disconnect us. 4 lines are enough. socket->write("a\r\nb\r\nc\r\nd\r\n"); @@ -2782,7 +2783,7 @@ void tst_QTcpSocket::taskQtBug7054TimeoutErrorResetting() // should get a better error since the server disconnected us QVERIFY(!socket->waitForReadyRead(2*1000)); // It must NOT be the SocketTimeoutError that had been set before - QCOMPARE(socket->error(), QAbstractSocket::RemoteHostClosedError); + QCOMPARE(socket->socketError(), QAbstractSocket::RemoteHostClosedError); } #ifndef QT_NO_NETWORKPROXY @@ -2840,7 +2841,7 @@ void tst_QTcpSocket::invalidProxy() // note: the following test is not a hard failure. // Sometimes, error codes change for the better - QTEST(int(socket->error()), "expectedError"); + QTEST(int(socket->socketError()), "expectedError"); delete socket; } @@ -2960,7 +2961,7 @@ void tst_QTcpSocket::proxyFactory() // note: the following test is not a hard failure. // Sometimes, error codes change for the better - QTEST(int(socket->error()), "expectedError"); + QTEST(int(socket->socketError()), "expectedError"); delete socket; } diff --git a/tests/auto/network/socket/qudpsocket/BLACKLIST b/tests/auto/network/socket/qudpsocket/BLACKLIST index bc6068d695..109bd4b643 100644 --- a/tests/auto/network/socket/qudpsocket/BLACKLIST +++ b/tests/auto/network/socket/qudpsocket/BLACKLIST @@ -1,4 +1,5 @@ [writeDatagramToNonExistingPeer] +windows-10 msvc-2019 windows-10 msvc-2017 windows-10 msvc-2015 windows-7sp1 diff --git a/tests/auto/network/socket/qudpsocket/tst_qudpsocket.cpp b/tests/auto/network/socket/qudpsocket/tst_qudpsocket.cpp index 0f419e9de4..88898cd8a8 100644 --- a/tests/auto/network/socket/qudpsocket/tst_qudpsocket.cpp +++ b/tests/auto/network/socket/qudpsocket/tst_qudpsocket.cpp @@ -337,7 +337,7 @@ void tst_QUdpSocket::constructing() QCOMPARE(socket.canReadLine(), false); QCOMPARE(socket.readLine(), QByteArray()); QCOMPARE(socket.socketDescriptor(), (qintptr)-1); - QCOMPARE(socket.error(), QUdpSocket::UnknownSocketError); + QCOMPARE(socket.socketError(), QUdpSocket::UnknownSocketError); QCOMPARE(socket.errorString(), QString("Unknown error")); // Check the state of the socket api @@ -575,7 +575,7 @@ void tst_QUdpSocket::ipv6Loop() int paulPort; if (!peter.bind(QHostAddress(QHostAddress::LocalHostIPv6), 0)) { - QCOMPARE(peter.error(), QUdpSocket::UnsupportedSocketOperationError); + QCOMPARE(peter.socketError(), QUdpSocket::UnsupportedSocketOperationError); return; } @@ -897,7 +897,7 @@ void tst_QUdpSocket::writeDatagram() QCOMPARE(errorspy.count(), 1); QCOMPARE(*static_cast<const int *>(errorspy.at(0).at(0).constData()), int(QUdpSocket::DatagramTooLargeError)); - QCOMPARE(client.error(), QUdpSocket::DatagramTooLargeError); + QCOMPARE(client.socketError(), QUdpSocket::DatagramTooLargeError); break; } QCOMPARE(bytesspy.count(), 1); @@ -1054,14 +1054,14 @@ void tst_QUdpSocket::writeToNonExistingPeer() // the second one should fail! QTest::qSleep(1000); // do not process events QCOMPARE(sConnected.write("", 1), qint64(-1)); - QCOMPARE(int(sConnected.error()), int(QUdpSocket::ConnectionRefusedError)); + QCOMPARE(int(sConnected.socketError()), int(QUdpSocket::ConnectionRefusedError)); // the third one will succeed... QCOMPARE(sConnected.write("", 1), qint64(1)); QTestEventLoop::instance().enterLoop(1); QCOMPARE(sConnectedReadyReadSpy.count(), 0); QCOMPARE(sConnectedErrorSpy.count(), 1); - QCOMPARE(int(sConnected.error()), int(QUdpSocket::ConnectionRefusedError)); + QCOMPARE(int(sConnected.socketError()), int(QUdpSocket::ConnectionRefusedError)); // we should now get a read error QCOMPARE(sConnected.write("", 1), qint64(1)); @@ -1071,12 +1071,12 @@ void tst_QUdpSocket::writeToNonExistingPeer() QCOMPARE(sConnected.bytesAvailable(), Q_INT64_C(0)); QCOMPARE(sConnected.pendingDatagramSize(), Q_INT64_C(-1)); QCOMPARE(sConnected.readDatagram(buf, 2), Q_INT64_C(-1)); - QCOMPARE(int(sConnected.error()), int(QUdpSocket::ConnectionRefusedError)); + QCOMPARE(int(sConnected.socketError()), int(QUdpSocket::ConnectionRefusedError)); QCOMPARE(sConnected.write("", 1), qint64(1)); QTest::qSleep(1000); // do not process events QCOMPARE(sConnected.read(buf, 2), Q_INT64_C(0)); - QCOMPARE(int(sConnected.error()), int(QUdpSocket::ConnectionRefusedError)); + QCOMPARE(int(sConnected.socketError()), int(QUdpSocket::ConnectionRefusedError)); // we should still be connected QCOMPARE(int(sConnected.state()), int(QUdpSocket::ConnectedState)); diff --git a/tests/auto/network/ssl/qocsp/tst_qocsp.cpp b/tests/auto/network/ssl/qocsp/tst_qocsp.cpp index 4eeea76205..8e579f7b5e 100644 --- a/tests/auto/network/ssl/qocsp/tst_qocsp.cpp +++ b/tests/auto/network/ssl/qocsp/tst_qocsp.cpp @@ -430,14 +430,14 @@ private: }; #define QCOMPARE_SINGLE_ERROR(sslSocket, expectedError) \ - const auto &tlsErrors = sslSocket.sslErrors(); \ + const auto &tlsErrors = sslSocket.sslHandshakeErrors(); \ QCOMPARE(tlsErrors.size(), 1); \ QCOMPARE(tlsErrors[0].error(), expectedError) #define QVERIFY_HANDSHAKE_WITHOUT_ERRORS(sslSocket) \ QVERIFY(sslSocket.isEncrypted()); \ QCOMPARE(sslSocket.state(), QAbstractSocket::ConnectedState); \ - QVERIFY(sslSocket.sslErrors().isEmpty()) + QVERIFY(sslSocket.sslHandshakeErrors().isEmpty()) #define QDECLARE_CHAIN(object, chainFileName) \ CertificateChain object = QSslCertificate::fromPath(certDirPath + QLatin1String(chainFileName)); \ @@ -605,7 +605,7 @@ void tst_QOcsp::malformedResponse() loop.enterLoopMSecs(handshakeTimeoutMS); QVERIFY(!clientSocket.isEncrypted()); - QCOMPARE(clientSocket.error(), QAbstractSocket::SslHandshakeFailedError); + QCOMPARE(clientSocket.socketError(), QAbstractSocket::SslHandshakeFailedError); } void tst_QOcsp::expiredResponse_data() @@ -721,7 +721,7 @@ void tst_QOcsp::wrongCertificateInResponse() loop.enterLoopMSecs(handshakeTimeoutMS); QVERIFY(!clientSocket.isEncrypted()); - QVERIFY(containsError(clientSocket.sslErrors(), expectedError)); + QVERIFY(containsError(clientSocket.sslHandshakeErrors(), expectedError)); } void tst_QOcsp::untrustedResponder() @@ -746,7 +746,7 @@ void tst_QOcsp::untrustedResponder() loop.enterLoopMSecs(handshakeTimeoutMS); QVERIFY(!clientSocket.isEncrypted()); - QVERIFY(containsError(clientSocket.sslErrors(), expectedError)); + QVERIFY(containsError(clientSocket.sslHandshakeErrors(), expectedError)); } void tst_QOcsp::setupOcspClient(QSslSocket &clientSocket, const CertificateChain &caCerts, const QString &name) diff --git a/tests/auto/network/ssl/qsslcertificate/BLACKLIST b/tests/auto/network/ssl/qsslcertificate/BLACKLIST deleted file mode 100644 index 9494ee2278..0000000000 --- a/tests/auto/network/ssl/qsslcertificate/BLACKLIST +++ /dev/null @@ -1,13 +0,0 @@ -# OpenSSL version is too new. Rich will fix :) -[subjectAndIssuerAttributes] -ubuntu-16.04 -rhel-7.6 -opensuse-leap -windows-7sp1 -ubuntu-18.04 -rhel-7.4 -b2qt -windows-10 msvc-2017 -windows-10 msvc-2015 -opensuse-42.3 - diff --git a/tests/auto/network/ssl/qsslcertificate/tst_qsslcertificate.cpp b/tests/auto/network/ssl/qsslcertificate/tst_qsslcertificate.cpp index efc0c26076..14718ad373 100644 --- a/tests/auto/network/ssl/qsslcertificate/tst_qsslcertificate.cpp +++ b/tests/auto/network/ssl/qsslcertificate/tst_qsslcertificate.cpp @@ -33,6 +33,10 @@ #include <qsslsocket.h> #include <qsslcertificateextension.h> +#ifndef QT_NO_OPENSSL +#include <openssl/obj_mac.h> +#endif + class tst_QSslCertificate : public QObject { Q_OBJECT @@ -960,8 +964,12 @@ void tst_QSslCertificate::subjectAndIssuerAttributes() certList = QSslCertificate::fromPath(testDataDir + "more-certificates/natwest-banking.pem"); QVERIFY(certList.count() > 0); + QByteArray shortName("1.3.6.1.4.1.311.60.2.1.3"); +#if !defined(QT_NO_OPENSSL) && defined(SN_jurisdictionCountryName) + shortName = SN_jurisdictionCountryName; +#endif attributes = certList[0].subjectInfoAttributes(); - QVERIFY(attributes.contains(QByteArray("1.3.6.1.4.1.311.60.2.1.3"))); + QVERIFY(attributes.contains(shortName)); } void tst_QSslCertificate::verify() diff --git a/tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp b/tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp index 98cb343ff8..18b449a953 100644 --- a/tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp +++ b/tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp @@ -73,7 +73,7 @@ typedef QSharedPointer<QSslSocket> QSslSocketPtr; #else #define FLUKE_CERTIFICATE_ERROR QSslError::CertificateUntrusted #endif -#endif // QT_NO_SSL +#endif // QT_NO_OPENSSL // Detect ALPN (Application-Layer Protocol Negotiation) support #undef ALPN_SUPPORTED // Undef the variable first to be safe @@ -259,8 +259,14 @@ private slots: void signatureAlgorithm(); #endif - void disabledProtocols_data(); - void disabledProtocols(); + void unsupportedProtocols_data(); + void unsupportedProtocols(); + + void oldErrorsOnSocketReuse(); +#if QT_CONFIG(openssl) + void alertMissingCertificate(); + void alertInvalidCertificate(); +#endif // openssl void setEmptyDefaultConfiguration(); // this test should be last @@ -335,6 +341,8 @@ tst_QSslSocket::tst_QSslSocket() qRegisterMetaType<QSslError>("QSslError"); qRegisterMetaType<QAbstractSocket::SocketState>("QAbstractSocket::SocketState"); qRegisterMetaType<QAbstractSocket::SocketError>("QAbstractSocket::SocketError"); + qRegisterMetaType<QAlertLevel>("QAlertLevel"); + qRegisterMetaType<QAlertType>("QAlertType"); #ifndef QT_NO_OPENSSL qRegisterMetaType<QSslPreSharedKeyAuthenticator *>(); @@ -391,7 +399,8 @@ void tst_QSslSocket::initTestCase() QVERIFY(QtNetworkSettings::verifyConnection(QtNetworkSettings::imapServerName(), 993)); QVERIFY(QtNetworkSettings::verifyConnection(QtNetworkSettings::echoServerName(), 13)); #else - QVERIFY(QtNetworkSettings::verifyTestNetworkSettings()); + if (!QtNetworkSettings::verifyTestNetworkSettings()) + QSKIP("No network test server available"); #endif // QT_TEST_SERVER #endif // QT_NO_SSL } @@ -524,7 +533,7 @@ void tst_QSslSocket::constructing() QCOMPARE(socket.write(0, 0), qint64(-1)); QTest::ignoreMessage(QtWarningMsg, writeNotOpenMessage); QCOMPARE(socket.write(QByteArray()), qint64(-1)); - QCOMPARE(socket.error(), QAbstractSocket::UnknownSocketError); + QCOMPARE(socket.socketError(), QAbstractSocket::UnknownSocketError); QVERIFY(!socket.flush()); QVERIFY(!socket.isValid()); QCOMPARE(socket.localAddress(), QHostAddress()); @@ -730,7 +739,7 @@ void tst_QSslSocket::sslErrors() // check the SSL errors contain HostNameMismatch and an error due to // the certificate being self-signed SslErrorList sslErrors; - const auto socketSslErrors = socket->sslErrors(); + const auto socketSslErrors = socket->sslHandshakeErrors(); for (const QSslError &err : socketSslErrors) sslErrors << err.error(); std::sort(sslErrors.begin(), sslErrors.end()); @@ -1177,25 +1186,6 @@ void tst_QSslSocket::protocol() QCOMPARE(socket->protocol(), QSsl::AnyProtocol); socket->abort(); } - { - // qt-test-server allows TlsV1, so it allows TlsV1SslV3 - socket->setProtocol(QSsl::TlsV1SslV3); - QCOMPARE(socket->protocol(), QSsl::TlsV1SslV3); - socket->connectToHostEncrypted(QtNetworkSettings::httpServerName(), 443); - if (setProxy && !socket->waitForEncrypted()) - QSKIP("Skipping flaky test - See QTBUG-29941"); - QCOMPARE(socket->protocol(), QSsl::TlsV1SslV3); - socket->abort(); - QCOMPARE(socket->protocol(), QSsl::TlsV1SslV3); - socket->connectToHost(QtNetworkSettings::httpServerName(), 443); - if (setProxy && !socket->waitForConnected()) - QSKIP("Skipping flaky test - See QTBUG-29941"); - socket->startClientEncryption(); - if (setProxy && !socket->waitForEncrypted()) - QSKIP("Skipping flaky test - See QTBUG-29941"); - QCOMPARE(socket->protocol(), QSsl::TlsV1SslV3); - socket->abort(); - } } class SslServer : public QTcpServer @@ -1227,6 +1217,8 @@ public: signals: void socketError(QAbstractSocket::SocketError); + void gotAlert(QAlertLevel level, QAlertType type, const QString &message); + void alertSent(QAlertLevel level, QAlertType type, const QString &message); protected: void incomingConnection(qintptr socketDescriptor) @@ -1238,6 +1230,8 @@ protected: if (ignoreSslErrors) connect(socket, SIGNAL(sslErrors(QList<QSslError>)), this, SLOT(ignoreErrorSlot())); connect(socket, SIGNAL(error(QAbstractSocket::SocketError)), this, SIGNAL(socketError(QAbstractSocket::SocketError))); + connect(socket, &QSslSocket::alertReceived, this, &SslServer::gotAlert); + connect(socket, &QSslSocket::alertSent, this, &SslServer::alertSent); QFile file(m_keyFile); QVERIFY(file.open(QIODevice::ReadOnly)); @@ -1301,20 +1295,13 @@ void tst_QSslSocket::protocolServerSide_data() QTest::addColumn<bool>("works"); QTest::newRow("tls1.0-tls1.0") << QSsl::TlsV1_0 << QSsl::TlsV1_0 << true; - QTest::newRow("tls1ssl3-tls1ssl3") << QSsl::TlsV1SslV3 << QSsl::TlsV1SslV3 << true; QTest::newRow("any-any") << QSsl::AnyProtocol << QSsl::AnyProtocol << true; QTest::newRow("secure-secure") << QSsl::SecureProtocols << QSsl::SecureProtocols << true; - QTest::newRow("tls1-tls1ssl3") << QSsl::TlsV1_0 << QSsl::TlsV1SslV3 << true; QTest::newRow("tls1.0-secure") << QSsl::TlsV1_0 << QSsl::SecureProtocols << true; QTest::newRow("tls1.0-any") << QSsl::TlsV1_0 << QSsl::AnyProtocol << true; - QTest::newRow("tls1ssl3-tls1.0") << QSsl::TlsV1SslV3 << QSsl::TlsV1_0 << true; - QTest::newRow("tls1ssl3-secure") << QSsl::TlsV1SslV3 << QSsl::SecureProtocols << true; - QTest::newRow("tls1ssl3-any") << QSsl::TlsV1SslV3 << QSsl::AnyProtocol << true; - QTest::newRow("secure-tls1.0") << QSsl::SecureProtocols << QSsl::TlsV1_0 << true; - QTest::newRow("secure-tls1ssl3") << QSsl::SecureProtocols << QSsl::TlsV1SslV3 << true; QTest::newRow("secure-any") << QSsl::SecureProtocols << QSsl::AnyProtocol << true; QTest::newRow("tls1.0orlater-tls1.0") << QSsl::TlsV1_0OrLater << QSsl::TlsV1_0 << true; @@ -1346,7 +1333,6 @@ void tst_QSslSocket::protocolServerSide_data() #endif // TLS1_3_VERSION QTest::newRow("any-tls1.0") << QSsl::AnyProtocol << QSsl::TlsV1_0 << true; - QTest::newRow("any-tls1ssl3") << QSsl::AnyProtocol << QSsl::TlsV1SslV3 << true; QTest::newRow("any-secure") << QSsl::AnyProtocol << QSsl::SecureProtocols << true; } @@ -1387,16 +1373,16 @@ void tst_QSslSocket::protocolServerSide() QAbstractSocket::SocketState expectedState = (works) ? QAbstractSocket::ConnectedState : QAbstractSocket::UnconnectedState; // Determine whether the client or the server caused the event loop // to quit due to a socket error, and investigate the culprit. - if (client.error() != QAbstractSocket::UnknownSocketError) { + if (client.socketError() != QAbstractSocket::UnknownSocketError) { // It can happen that the client, after TCP connection established, before // incomingConnection() slot fired, hits TLS initialization error and stops // the loop, so the server socket is not created yet. if (server.socket) - QVERIFY(server.socket->error() == QAbstractSocket::UnknownSocketError); + QVERIFY(server.socket->socketError() == QAbstractSocket::UnknownSocketError); QCOMPARE(client.state(), expectedState); - } else if (server.socket->error() != QAbstractSocket::UnknownSocketError) { - QVERIFY(client.error() == QAbstractSocket::UnknownSocketError); + } else if (server.socket->socketError() != QAbstractSocket::UnknownSocketError) { + QVERIFY(client.socketError() == QAbstractSocket::UnknownSocketError); QCOMPARE(server.socket->state(), expectedState); } @@ -2008,7 +1994,7 @@ void tst_QSslSocket::setEmptyKey() QTestEventLoop::instance().enterLoop(2); QCOMPARE(socket.state(), QAbstractSocket::ConnectedState); - QCOMPARE(socket.error(), QAbstractSocket::UnknownSocketError); + QCOMPARE(socket.socketError(), QAbstractSocket::UnknownSocketError); } void tst_QSslSocket::spontaneousWrite() @@ -2430,7 +2416,7 @@ void tst_QSslSocket::verifyMode() QList<QSslError> expectedErrors = QList<QSslError>() << QSslError(FLUKE_CERTIFICATE_ERROR, socket.peerCertificate()); - QCOMPARE(socket.sslErrors(), expectedErrors); + QCOMPARE(socket.sslHandshakeErrors(), expectedErrors); socket.abort(); VerifyServer server; @@ -2446,7 +2432,7 @@ void tst_QSslSocket::verifyMode() loop.exec(); QVERIFY(clientSocket.isEncrypted()); - QVERIFY(server.socket->sslErrors().isEmpty()); + QVERIFY(server.socket->sslHandshakeErrors().isEmpty()); } void tst_QSslSocket::verifyDepth() @@ -2780,11 +2766,11 @@ void tst_QSslSocket::writeBigChunk() // no better way to do this right now since the error is the same as the default error. if (socket->errorString().startsWith(QLatin1String("Unable to write data"))) { - qWarning() << socket->error() << socket->errorString(); + qWarning() << socket->socketError() << socket->errorString(); QFAIL("Error while writing! Check if the OpenSSL BIO size is limited?!"); } // also check the error string. If another error (than UnknownError) occurred, it should be different than before - QVERIFY2(errorBefore == errorAfter || socket->error() == QAbstractSocket::RemoteHostClosedError, + QVERIFY2(errorBefore == errorAfter || socket->socketError() == QAbstractSocket::RemoteHostClosedError, QByteArray("unexpected error: ").append(qPrintable(errorAfter))); // check that everything has been written to OpenSSL @@ -2823,7 +2809,7 @@ void tst_QSslSocket::blacklistedCertificates() connect(receiver, SIGNAL(sslErrors(QList<QSslError>)), SLOT(exitLoop())); connect(receiver, SIGNAL(encrypted()), SLOT(exitLoop())); enterLoop(1); - QList<QSslError> sslErrors = receiver->sslErrors(); + QList<QSslError> sslErrors = receiver->sslHandshakeErrors(); QVERIFY(sslErrors.count() > 0); // there are more errors (self signed cert and hostname mismatch), but we only care about the blacklist error QCOMPARE(sslErrors.at(0).error(), QSslError::CertificateBlacklisted); @@ -2979,7 +2965,7 @@ void tst_QSslSocket::resume() QCOMPARE(encryptedSpy.count(), 0); QVERIFY(!socket.isEncrypted()); QCOMPARE(errorSpy.count(), 1); - QCOMPARE(socket.error(), QAbstractSocket::SslHandshakeFailedError); + QCOMPARE(socket.socketError(), QAbstractSocket::SslHandshakeFailedError); } } @@ -4323,30 +4309,33 @@ void tst_QSslSocket::forwardReadChannelFinished() #endif // QT_NO_OPENSSL -void tst_QSslSocket::disabledProtocols_data() +void tst_QSslSocket::unsupportedProtocols_data() { - QTest::addColumn<QSsl::SslProtocol>("disabledProtocol"); - QTest::newRow("SslV2") << QSsl::SslV2; - QTest::newRow("SslV3") << QSsl::SslV3; + QTest::addColumn<QSsl::SslProtocol>("unsupportedProtocol"); + QTest::newRow("DtlsV1_0") << QSsl::DtlsV1_0; + QTest::newRow("DtlsV1_2") << QSsl::DtlsV1_2; + QTest::newRow("DtlsV1_0OrLater") << QSsl::DtlsV1_0OrLater; + QTest::newRow("DtlsV1_2OrLater") << QSsl::DtlsV1_2OrLater; + QTest::newRow("UnknownProtocol") << QSsl::UnknownProtocol; } -void tst_QSslSocket::disabledProtocols() +void tst_QSslSocket::unsupportedProtocols() { QFETCH_GLOBAL(const bool, setProxy); if (setProxy) return; - QFETCH(const QSsl::SslProtocol, disabledProtocol); + QFETCH(const QSsl::SslProtocol, unsupportedProtocol); const int timeoutMS = 500; // Test a client socket. { // 0. connectToHostEncrypted: client-side, non-blocking API, error is discovered // early, preventing any real connection from ever starting. QSslSocket socket; - socket.setProtocol(disabledProtocol); - QCOMPARE(socket.error(), QAbstractSocket::UnknownSocketError); + socket.setProtocol(unsupportedProtocol); + QCOMPARE(socket.socketError(), QAbstractSocket::UnknownSocketError); socket.connectToHostEncrypted(QStringLiteral("doesnotmatter.org"), 1010); - QCOMPARE(socket.error(), QAbstractSocket::SslInvalidUserDataError); + QCOMPARE(socket.socketError(), QAbstractSocket::SslInvalidUserDataError); QCOMPARE(socket.state(), QAbstractSocket::UnconnectedState); } { @@ -4356,14 +4345,14 @@ void tst_QSslSocket::disabledProtocols() QVERIFY(server.listen()); QSslSocket socket; - QCOMPARE(socket.error(), QAbstractSocket::UnknownSocketError); + QCOMPARE(socket.socketError(), QAbstractSocket::UnknownSocketError); socket.connectToHost(QHostAddress::LocalHost, server.serverPort()); QVERIFY(socket.waitForConnected(timeoutMS)); - socket.setProtocol(disabledProtocol); + socket.setProtocol(unsupportedProtocol); socket.startClientEncryption(); - QCOMPARE(socket.error(), QAbstractSocket::SslInvalidUserDataError); + QCOMPARE(socket.socketError(), QAbstractSocket::SslInvalidUserDataError); } { // 2. waitForEncrypted: client-side, blocking API plus requires from us @@ -4375,7 +4364,7 @@ void tst_QSslSocket::disabledProtocols() // and then calls startServerEncryption() (which must fall). { SslServer server; - server.protocol = disabledProtocol; + server.protocol = unsupportedProtocol; QVERIFY(server.listen()); QTestEventLoop loop; @@ -4387,12 +4376,172 @@ void tst_QSslSocket::disabledProtocols() loop.enterLoopMSecs(timeoutMS); QVERIFY(!loop.timeout()); QVERIFY(server.socket); - QCOMPARE(server.socket->error(), QAbstractSocket::SslInvalidUserDataError); + QCOMPARE(server.socket->socketError(), QAbstractSocket::SslInvalidUserDataError); + } +} + +void tst_QSslSocket::oldErrorsOnSocketReuse() +{ + QFETCH_GLOBAL(bool, setProxy); + if (setProxy) + return; // not relevant + SslServer server; + server.protocol = QSsl::TlsV1_1; + server.m_certFile = testDataDir + "certs/fluke.cert"; + server.m_keyFile = testDataDir + "certs/fluke.key"; + QVERIFY(server.listen(QHostAddress::SpecialAddress::LocalHost)); + + QSslSocket socket; + socket.setProtocol(QSsl::TlsV1_1); + QList<QSslError> errorList; + auto connection = connect(&socket, QOverload<const QList<QSslError> &>::of(&QSslSocket::sslErrors), + [&socket, &errorList](const QList<QSslError> &errors) { + errorList += errors; + socket.ignoreSslErrors(errors); + socket.resume(); + }); + + socket.connectToHostEncrypted(QString::fromLatin1("localhost"), server.serverPort()); + QVERIFY(QTest::qWaitFor([&socket](){ return socket.isEncrypted(); })); + socket.disconnectFromHost(); + if (socket.state() != QAbstractSocket::UnconnectedState) { + QVERIFY(QTest::qWaitFor( + [&socket](){ + return socket.state() == QAbstractSocket::UnconnectedState; + })); + } + + auto oldList = errorList; + errorList.clear(); + server.close(); + server.m_certFile = testDataDir + "certs/bogus-client.crt"; + server.m_keyFile = testDataDir + "certs/bogus-client.key"; + QVERIFY(server.listen(QHostAddress::SpecialAddress::LocalHost)); + + socket.connectToHostEncrypted(QString::fromLatin1("localhost"), server.serverPort()); + QVERIFY(QTest::qWaitFor([&socket](){ return socket.isEncrypted(); })); + + for (const auto &error : oldList) { + QVERIFY2(!errorList.contains(error), + "The new errors should not contain any of the old ones"); } } #endif // QT_NO_SSL +#if QT_CONFIG(openssl) + +void (QSslSocket::*const tlsErrorSignal)(const QList<QSslError> &) = &QSslSocket::sslErrors; +void (QAbstractSocket::*const socketErrorSignal)(QAbstractSocket::SocketError) = &QAbstractSocket::error; + +void tst_QSslSocket::alertMissingCertificate() +{ + // In this test we want a server to abort the connection due to the failing + // client authentication. The server expected to send an alert before closing + // the connection, and the client expected to receive this alert and report it. + + QFETCH_GLOBAL(const bool, setProxy); + if (setProxy) // Not what we test here, bail out. + return; + + SslServer server; + if (!server.listen(QHostAddress::LocalHost)) + QSKIP("SslServer::listen() returned false"); + + // We want a certificate request to be sent to the client: + server.peerVerifyMode = QSslSocket::VerifyPeer; + // The only way we can force OpenSSL to send an alert - is to use + // a special option (so we fail before handshake is finished): + server.config.setMissingCertificateIsFatal(true); + + QSslSocket clientSocket; + connect(&clientSocket, tlsErrorSignal, [&clientSocket](const QList<QSslError> &errors){ + qDebug() << "ERR"; + clientSocket.ignoreSslErrors(errors); + }); + + QSignalSpy serverSpy(&server, &SslServer::alertSent); + QSignalSpy clientSpy(&clientSocket, &QSslSocket::alertReceived); + + clientSocket.connectToHostEncrypted(server.serverAddress().toString(), server.serverPort()); + + QTestEventLoop runner; + QTimer::singleShot(500, [&runner](){ + runner.exitLoop(); + }); + + int waitFor = 2; + auto earlyQuitter = [&runner, &waitFor](QAbstractSocket::SocketError) { + if (!--waitFor) + runner.exitLoop(); + }; + + // Presumably, RemoteHostClosedError for the client and SslHandshakeError + // for the server: + connect(&clientSocket, socketErrorSignal, earlyQuitter); + connect(&server, &SslServer::socketError, earlyQuitter); + + runner.enterLoopMSecs(1000); + + QVERIFY(serverSpy.count() > 0); + QVERIFY(clientSpy.count() > 0); + QVERIFY(server.socket && !server.socket->isEncrypted()); + QVERIFY(!clientSocket.isEncrypted()); +} + +void tst_QSslSocket::alertInvalidCertificate() +{ + // In this test a client will not ignore verification errors, + // it also will do 'early' checks, meaning the reported and + // not ignored _during_ the hanshake, not after. This ensures + // OpenSSL sends an alert. + QFETCH_GLOBAL(const bool, setProxy); + if (setProxy) // Not what we test here, bail out. + return; + + SslServer server; + if (!server.listen(QHostAddress::LocalHost)) + QSKIP("SslServer::listen() returned false"); + + QSslSocket clientSocket; + auto configuration = QSslConfiguration::defaultConfiguration(); + configuration.setHandshakeMustInterruptOnError(true); + QVERIFY(configuration.handshakeMustInterruptOnError()); + clientSocket.setSslConfiguration(configuration); + + QSignalSpy serverSpy(&server, &SslServer::gotAlert); + QSignalSpy clientSpy(&clientSocket, &QSslSocket::alertSent); + QSignalSpy interruptedSpy(&clientSocket, &QSslSocket::handshakeInterruptedOnError); + + clientSocket.connectToHostEncrypted(server.serverAddress().toString(), server.serverPort()); + + QTestEventLoop runner; + QTimer::singleShot(500, [&runner](){ + runner.exitLoop(); + }); + + int waitFor = 2; + auto earlyQuitter = [&runner, &waitFor](QAbstractSocket::SocketError) { + if (!--waitFor) + runner.exitLoop(); + }; + + // Presumably, RemoteHostClosedError for the server and SslHandshakeError + // for the client: + connect(&clientSocket, socketErrorSignal, earlyQuitter); + connect(&server, &SslServer::socketError, earlyQuitter); + + runner.enterLoopMSecs(1000); + + QVERIFY(serverSpy.count() > 0); + QVERIFY(clientSpy.count() > 0); + QVERIFY(interruptedSpy.count() > 0); + QVERIFY(server.socket && !server.socket->isEncrypted()); + QVERIFY(!clientSocket.isEncrypted()); +} + +#endif // openssl + QTEST_MAIN(tst_QSslSocket) #include "tst_qsslsocket.moc" diff --git a/tests/auto/network/ssl/qsslsocket_onDemandCertificates_member/tst_qsslsocket_onDemandCertificates_member.cpp b/tests/auto/network/ssl/qsslsocket_onDemandCertificates_member/tst_qsslsocket_onDemandCertificates_member.cpp index 3b28e7a803..ad9554c7a5 100644 --- a/tests/auto/network/ssl/qsslsocket_onDemandCertificates_member/tst_qsslsocket_onDemandCertificates_member.cpp +++ b/tests/auto/network/ssl/qsslsocket_onDemandCertificates_member/tst_qsslsocket_onDemandCertificates_member.cpp @@ -109,7 +109,8 @@ void tst_QSslSocket_onDemandCertificates_member::initTestCase() QVERIFY(QtNetworkSettings::verifyConnection(QtNetworkSettings::httpProxyServerName(), 3129)); QVERIFY(QtNetworkSettings::verifyConnection(QtNetworkSettings::httpProxyServerName(), 3130)); #else - QVERIFY(QtNetworkSettings::verifyTestNetworkSettings()); + if (!QtNetworkSettings::verifyTestNetworkSettings()) + QSKIP("No network test server available"); #endif // QT_TEST_SERVER } diff --git a/tests/auto/network/ssl/qsslsocket_onDemandCertificates_static/tst_qsslsocket_onDemandCertificates_static.cpp b/tests/auto/network/ssl/qsslsocket_onDemandCertificates_static/tst_qsslsocket_onDemandCertificates_static.cpp index a441d13619..b4a41b57e6 100644 --- a/tests/auto/network/ssl/qsslsocket_onDemandCertificates_static/tst_qsslsocket_onDemandCertificates_static.cpp +++ b/tests/auto/network/ssl/qsslsocket_onDemandCertificates_static/tst_qsslsocket_onDemandCertificates_static.cpp @@ -105,7 +105,8 @@ void tst_QSslSocket_onDemandCertificates_static::initTestCase() QVERIFY(QtNetworkSettings::verifyConnection(QtNetworkSettings::httpProxyServerName(), 3129)); QVERIFY(QtNetworkSettings::verifyConnection(QtNetworkSettings::httpProxyServerName(), 3130)); #else - QVERIFY(QtNetworkSettings::verifyTestNetworkSettings()); + if (!QtNetworkSettings::verifyTestNetworkSettings()) + QSKIP("No network test server available"); #endif // QT_TEST_SERVER } |