diff options
Diffstat (limited to 'tests/auto/network')
8 files changed, 106 insertions, 49 deletions
diff --git a/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp b/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp index 8685546a5f..438cf866aa 100644 --- a/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp +++ b/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp @@ -2971,9 +2971,6 @@ void tst_QNetworkReply::ioGetFromHttpWithAuthSynchronous() void tst_QNetworkReply::ioGetFromHttpWithProxyAuth() { - qRegisterMetaType<QNetworkProxy>(); // for QSignalSpy - qRegisterMetaType<QAuthenticator *>(); - // This test sends three requests // The first two in parallel // The third after the first two finished @@ -3081,9 +3078,6 @@ void tst_QNetworkReply::ioGetFromHttpWithSocksProxy() // HTTP caching proxies are tested by the above function // test SOCKSv5 proxies too - qRegisterMetaType<QNetworkProxy>(); // for QSignalSpy - qRegisterMetaType<QAuthenticator *>(); - QFile reference(testDataDir + "/rfc3252.txt"); QVERIFY(reference.open(QIODevice::ReadOnly)); @@ -3141,9 +3135,6 @@ void tst_QNetworkReply::ioGetFromHttpWithSocksProxy() #ifndef QT_NO_SSL void tst_QNetworkReply::ioGetFromHttpsWithSslErrors() { - qRegisterMetaType<QNetworkReply*>(); // for QSignalSpy - qRegisterMetaType<QList<QSslError> >(); - QFile reference(testDataDir + "/rfc3252.txt"); QVERIFY(reference.open(QIODevice::ReadOnly)); @@ -3175,9 +3166,6 @@ void tst_QNetworkReply::ioGetFromHttpsWithIgnoreSslErrors() // same as above, except that we call ignoreSslErrors and don't connect // to the sslErrors() signal (which is *still* emitted) - qRegisterMetaType<QNetworkReply*>(); // for QSignalSpy - qRegisterMetaType<QList<QSslError> >(); - QFile reference(testDataDir + "/rfc3252.txt"); QVERIFY(reference.open(QIODevice::ReadOnly)); @@ -3203,9 +3191,6 @@ void tst_QNetworkReply::ioGetFromHttpsWithIgnoreSslErrors() void tst_QNetworkReply::ioGetFromHttpsWithSslHandshakeError() { - qRegisterMetaType<QNetworkReply*>(); // for QSignalSpy - qRegisterMetaType<QList<QSslError> >(); - QFile reference(testDataDir + "/rfc3252.txt"); QVERIFY(reference.open(QIODevice::ReadOnly)); @@ -3709,9 +3694,6 @@ void tst_QNetworkReply::ioGetWithManyProxies() { // Test proxy factories - qRegisterMetaType<QNetworkProxy>(); // for QSignalSpy - qRegisterMetaType<QAuthenticator *>(); - QFile reference(testDataDir + "/rfc3252.txt"); QVERIFY(reference.open(QIODevice::ReadOnly)); @@ -3874,6 +3856,10 @@ void tst_QNetworkReply::ioPutToFileFromLocalSocket() QNetworkReplyPtr reply = manager.put(QNetworkRequest(url), passive); passive->setParent(reply); +#ifdef Q_OS_WIN + if (!data.isEmpty()) + QEXPECT_FAIL("", "QTBUG-18385", Abort); +#endif QVERIFY(waitForFinish(reply) == Success); QCOMPARE(reply->error(), QNetworkReply::NoError); @@ -4104,10 +4090,6 @@ void tst_QNetworkReply::ioPostToHttpFromSocket_data() void tst_QNetworkReply::ioPostToHttpFromSocket() { - qRegisterMetaType<QNetworkProxy>(); // for QSignalSpy - qRegisterMetaType<QAuthenticator *>(); - qRegisterMetaType<QNetworkReply *>(); - QFETCH(QByteArray, data); QFETCH(QUrl, url); QFETCH(QNetworkProxy, proxy); @@ -4707,7 +4689,6 @@ void tst_QNetworkReply::rateControl() QNetworkRequest request("debugpipe://localhost:" + QString::number(sender.serverPort())); QNetworkReplyPtr reply = manager.get(request); reply->setReadBufferSize(32768); - qRegisterMetaType<QNetworkReply::NetworkError>("QNetworkReply::NetworkError"); QSignalSpy errorSpy(reply, SIGNAL(error(QNetworkReply::NetworkError))); RateControlledReader reader(sender, reply, rate, 20); @@ -5100,7 +5081,6 @@ void tst_QNetworkReply::nestedEventLoops() // seconds. (see above) qDebug("Takes 16 seconds to run, please wait"); - qRegisterMetaType<QNetworkReply::NetworkError>(); QUrl url("http://" + QtNetworkSettings::serverName()); QNetworkRequest request(url); @@ -5321,7 +5301,6 @@ void tst_QNetworkReply::authorizationError() QCOMPARE(reply->error(), QNetworkReply::NoError); - qRegisterMetaType<QNetworkReply::NetworkError>("QNetworkReply::NetworkError"); QSignalSpy errorSpy(reply, SIGNAL(error(QNetworkReply::NetworkError))); QSignalSpy finishedSpy(reply, SIGNAL(finished())); // now run the request: @@ -5653,6 +5632,7 @@ void tst_QNetworkReply::getAndThenDeleteObject_data() void tst_QNetworkReply::getAndThenDeleteObject() { + QSKIP("unstable test - reply may be finished too early"); // yes, this will leak if the testcase fails. I don't care. It must not fail then :P QNetworkAccessManager *manager = new QNetworkAccessManager(); QNetworkRequest request("http://" + QtNetworkSettings::serverName() + "/qtest/bigfile"); @@ -6050,11 +6030,8 @@ void tst_QNetworkReply::qtbug4121unknownAuthentication() QNetworkAccessManager manager; QNetworkReplyPtr reply = manager.get(request); - qRegisterMetaType<QNetworkReply*>("QNetworkReply*"); - qRegisterMetaType<QAuthenticator*>("QAuthenticator*"); QSignalSpy authSpy(&manager, SIGNAL(authenticationRequired(QNetworkReply*,QAuthenticator*))); QSignalSpy finishedSpy(&manager, SIGNAL(finished(QNetworkReply*))); - qRegisterMetaType<QNetworkReply::NetworkError>("QNetworkReply::NetworkError"); QSignalSpy errorSpy(reply, SIGNAL(error(QNetworkReply::NetworkError))); connect(reply, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop()), Qt::QueuedConnection); diff --git a/tests/auto/network/kernel/qnetworkinterface/qnetworkinterface.pro b/tests/auto/network/kernel/qnetworkinterface/qnetworkinterface.pro index 694dec2ed7..ba401579a6 100644 --- a/tests/auto/network/kernel/qnetworkinterface/qnetworkinterface.pro +++ b/tests/auto/network/kernel/qnetworkinterface/qnetworkinterface.pro @@ -3,3 +3,5 @@ TARGET = tst_qnetworkinterface SOURCES += tst_qnetworkinterface.cpp QT = core network testlib + +win32:CONFIG+=insignificant_test # QTBUG-24451 - localAddress() diff --git a/tests/auto/network/kernel/qnetworkproxyfactory/tst_qnetworkproxyfactory.cpp b/tests/auto/network/kernel/qnetworkproxyfactory/tst_qnetworkproxyfactory.cpp index 8a1a391b51..9b7d21eff8 100644 --- a/tests/auto/network/kernel/qnetworkproxyfactory/tst_qnetworkproxyfactory.cpp +++ b/tests/auto/network/kernel/qnetworkproxyfactory/tst_qnetworkproxyfactory.cpp @@ -81,6 +81,7 @@ public: private slots: void systemProxyForQueryCalledFromThread(); + void systemProxyForQuery_data(); void systemProxyForQuery() const; #ifndef QT_NO_BEARERMANAGEMENT void fromConfigurations(); @@ -110,34 +111,88 @@ QString tst_QNetworkProxyFactory::formatProxyName(const QNetworkProxy & proxy) c return proxyName; } +void tst_QNetworkProxyFactory::systemProxyForQuery_data() +{ + QTest::addColumn<int>("type"); + QTest::addColumn<QUrl>("url"); + QTest::addColumn<QString>("tag"); + QTest::addColumn<QString>("hostName"); + QTest::addColumn<int>("port"); + QTest::addColumn<int>("requiredCapabilities"); + + //URLs + QTest::newRow("http") << (int)QNetworkProxyQuery::UrlRequest << QUrl("http://qt-project.org") << QString() << QString() << 0 << 0; + //windows: "intranet" should be bypassed if "bypass proxy server for local addresses" is ticked + QTest::newRow("intranet") << (int)QNetworkProxyQuery::UrlRequest << QUrl("http://qt-test-server") << QString() << QString() << 0 << 0; + //windows: "intranet2" should be bypassed if "*.local" is in the exceptions list (advanced settings) + QTest::newRow("intranet2") << (int)QNetworkProxyQuery::UrlRequest << QUrl("http://qt-test-server.local") << QString() << QString() << 0 << 0; + QTest::newRow("https") << (int)QNetworkProxyQuery::UrlRequest << QUrl("https://qt-project.org") << QString() << QString() << 0 << (int)QNetworkProxy::TunnelingCapability; + QTest::newRow("ftp") << (int)QNetworkProxyQuery::UrlRequest << QUrl("ftp://qt-project.org") << QString() << QString() << 0 << 0; + + //TCP + QTest::newRow("imap") << (int)QNetworkProxyQuery::TcpSocket << QUrl() << QString() << QString("qt-project.org") << 0 << (int)QNetworkProxy::TunnelingCapability; + QTest::newRow("autobind-server") << (int)QNetworkProxyQuery::TcpServer << QUrl() << QString() << QString() << 0 << (int)QNetworkProxy::ListeningCapability; + QTest::newRow("web-server") << (int)QNetworkProxyQuery::TcpServer << QUrl() << QString() << QString() << 80 << (int)QNetworkProxy::ListeningCapability; + + //UDP + QTest::newRow("udp") << (int)QNetworkProxyQuery::UdpSocket << QUrl() << QString() << QString() << 0 << (int)QNetworkProxy::UdpTunnelingCapability; + + //Protocol tags + QTest::newRow("http-tag") << (int)QNetworkProxyQuery::TcpSocket << QUrl() << QString("http") << QString("qt-project.org") << 80 << (int)QNetworkProxy::TunnelingCapability; + QTest::newRow("ftp-tag") << (int)QNetworkProxyQuery::TcpSocket << QUrl() << QString("ftp") << QString("qt-project.org") << 21 << (int)QNetworkProxy::TunnelingCapability; + QTest::newRow("https-tag") << (int)QNetworkProxyQuery::TcpSocket << QUrl() << QString("https") << QString("qt-project.org") << 443 << (int)QNetworkProxy::TunnelingCapability; +#ifdef Q_OS_WIN + //in Qt 4.8, "socks" would get the socks proxy, but we dont want to enforce that for all platforms + QTest::newRow("socks-tag") << (int)QNetworkProxyQuery::TcpSocket << QUrl() << QString("socks") << QString("qt-project.org") << 21 << (int)(QNetworkProxy::TunnelingCapability | QNetworkProxy::ListeningCapability); +#endif + //windows: ssh is not a tag provided by the os, but any tunneling proxy is acceptable + QTest::newRow("ssh-tag") << (int)QNetworkProxyQuery::TcpSocket << QUrl() << QString("ssh") << QString("qt-project.org") << 22 << (int)QNetworkProxy::TunnelingCapability; + + //Server protocol tags (ftp/http proxies are no good, we need socks or nothing) + QTest::newRow("http-server-tag") << (int)QNetworkProxyQuery::TcpServer << QUrl() << QString("http") << QString() << 80 << (int)QNetworkProxy::ListeningCapability; + QTest::newRow("ftp-server-tag") << (int)QNetworkProxyQuery::TcpServer << QUrl() << QString("ftp") << QString() << 21 << (int)QNetworkProxy::ListeningCapability; + QTest::newRow("imap-server-tag") << (int)QNetworkProxyQuery::TcpServer << QUrl() << QString("imap") << QString() << 143 << (int)QNetworkProxy::ListeningCapability; + + //UDP protocol tag + QTest::newRow("sip-udp-tag") << (int)QNetworkProxyQuery::UdpSocket << QUrl() << QString("sip") << QString("qt-project.org") << 5061 << (int)QNetworkProxy::UdpTunnelingCapability; +} + void tst_QNetworkProxyFactory::systemProxyForQuery() const { - QNetworkProxyQuery query(QUrl(QString("http://www.abc.com")), QNetworkProxyQuery::UrlRequest); - QList<QNetworkProxy> systemProxyList = QNetworkProxyFactory::systemProxyForQuery(query); - bool pass = true; - QNetworkProxy proxy; + QFETCH(int, type); + QFETCH(QUrl, url); + QFETCH(QString, tag); + QFETCH(QString, hostName); + QFETCH(int, port); + QFETCH(int, requiredCapabilities); - QList<QNetworkProxy> nativeProxyList; - nativeProxyList << QNetworkProxy(QNetworkProxy::HttpProxy, QString("test.proxy.com"), 8080) << QNetworkProxy::NoProxy; + QNetworkProxyQuery query; - foreach (proxy, systemProxyList) { - if (!nativeProxyList.contains(proxy)) { - qWarning() << "System proxy not found in native proxy list: " << - formatProxyName(proxy); - pass = false; - } + switch (type) { + case QNetworkProxyQuery::UrlRequest: + query = QNetworkProxyQuery(url); + break; + case QNetworkProxyQuery::TcpSocket: + case QNetworkProxyQuery::UdpSocket: + query = QNetworkProxyQuery(hostName, port, tag, QNetworkProxyQuery::QueryType(type)); + break; + case QNetworkProxyQuery::TcpServer: + query = QNetworkProxyQuery(quint16(port), tag); + break; } - foreach (proxy, nativeProxyList) { - if (!systemProxyList.contains(proxy)) { - qWarning() << "Native proxy not found in system proxy list: " << - formatProxyName(proxy); - pass = false; - } - } + QElapsedTimer sw; + sw.start(); + QList<QNetworkProxy> systemProxyList = QNetworkProxyFactory::systemProxyForQuery(query); + qDebug() << sw.elapsed() << "ms"; + QVERIFY(!systemProxyList.isEmpty()); + + // for manual comparison with system + qDebug() << systemProxyList; - if (!pass) - QFAIL("One or more system proxy lookup failures occurred."); + foreach (const QNetworkProxy &proxy, systemProxyList) { + QVERIFY((requiredCapabilities == 0) || (proxy.capabilities() & requiredCapabilities)); + } } #ifndef QT_NO_BEARERMANAGEMENT diff --git a/tests/auto/network/network.pro b/tests/auto/network/network.pro index 3eafd7df70..2048d14dc8 100644 --- a/tests/auto/network/network.pro +++ b/tests/auto/network/network.pro @@ -6,3 +6,7 @@ SUBDIRS=\ ssl \ socket \ +win32 { + socket.CONFIG += no_check_target # QTBUG-24451 - all socket tests require waitForX + bearer.CONFIG += no_check_target # QTBUG-24503 - these tests fail if machine has a WLAN adaptor +} diff --git a/tests/auto/network/socket/qtcpsocket/tst_qtcpsocket.cpp b/tests/auto/network/socket/qtcpsocket/tst_qtcpsocket.cpp index 5395c7c28b..3c7c3a3da0 100644 --- a/tests/auto/network/socket/qtcpsocket/tst_qtcpsocket.cpp +++ b/tests/auto/network/socket/qtcpsocket/tst_qtcpsocket.cpp @@ -1475,6 +1475,9 @@ void tst_QTcpSocket::waitForBytesWritten() //---------------------------------------------------------------------------------- void tst_QTcpSocket::waitForBytesWrittenMinusOne() { +#ifdef Q_OS_WIN + QSKIP("QTBUG-24451 - indefinite wait may hang"); +#endif QTcpSocket *socket = newSocket(); socket->connectToHost(QtNetworkSettings::serverName(), 80); QVERIFY(socket->waitForConnected(10000)); @@ -1500,6 +1503,9 @@ void tst_QTcpSocket::waitForReadyRead() //---------------------------------------------------------------------------------- void tst_QTcpSocket::waitForReadyReadMinusOne() { +#ifdef Q_OS_WIN + QSKIP("QTBUG-24451 - indefinite wait may hang"); +#endif QTcpSocket *socket = newSocket(); socket->connectToHost(QtNetworkSettings::serverName(), 80); socket->write("GET / HTTP/1.0\r\n\r\n"); @@ -2102,6 +2108,9 @@ void tst_QTcpSocket::abortiveClose_abortSlot() //---------------------------------------------------------------------------------- void tst_QTcpSocket::localAddressEmptyOnBSD() { +#ifdef Q_OS_WIN + QSKIP("QTBUG-24451 - indefinite wait may hang"); +#endif QFETCH_GLOBAL(bool, setProxy); if (setProxy) return; //proxy not useful for localhost test case diff --git a/tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp b/tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp index cdb397ccd4..2f9ed0d089 100644 --- a/tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp +++ b/tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp @@ -1157,6 +1157,9 @@ void tst_QSslSocket::waitForEncrypted() void tst_QSslSocket::waitForEncryptedMinusOne() { +#ifdef Q_OS_WIN + QSKIP("QTBUG-24451 - indefinite wait may hang"); +#endif if (!QSslSocket::supportsSsl()) return; @@ -1663,6 +1666,9 @@ protected: void tst_QSslSocket::waitForMinusOne() { +#ifdef Q_OS_WIN + QSKIP("QTBUG-24451 - indefinite wait may hang"); +#endif QFETCH_GLOBAL(bool, setProxy); if (setProxy) return; diff --git a/tests/auto/network/ssl/qsslsocket_onDemandCertificates_member/qsslsocket_onDemandCertificates_member.pro b/tests/auto/network/ssl/qsslsocket_onDemandCertificates_member/qsslsocket_onDemandCertificates_member.pro index 33b55b4638..5aeb0e48ac 100644 --- a/tests/auto/network/ssl/qsslsocket_onDemandCertificates_member/qsslsocket_onDemandCertificates_member.pro +++ b/tests/auto/network/ssl/qsslsocket_onDemandCertificates_member/qsslsocket_onDemandCertificates_member.pro @@ -22,3 +22,5 @@ wince* { } requires(contains(QT_CONFIG,private_tests)) + +win32:CONFIG+=insignificant_test # QTBUG-24451 - all diff --git a/tests/auto/network/ssl/qsslsocket_onDemandCertificates_static/qsslsocket_onDemandCertificates_static.pro b/tests/auto/network/ssl/qsslsocket_onDemandCertificates_static/qsslsocket_onDemandCertificates_static.pro index 8a500a3d99..3955ea106c 100644 --- a/tests/auto/network/ssl/qsslsocket_onDemandCertificates_static/qsslsocket_onDemandCertificates_static.pro +++ b/tests/auto/network/ssl/qsslsocket_onDemandCertificates_static/qsslsocket_onDemandCertificates_static.pro @@ -22,3 +22,5 @@ wince* { } requires(contains(QT_CONFIG,private_tests)) + +win32:CONFIG+=insignificant_test # QTBUG-24451 - all |