diff options
Diffstat (limited to 'tests/auto/network')
28 files changed, 444 insertions, 263 deletions
diff --git a/tests/auto/network/access/http2/http2srv.h b/tests/auto/network/access/http2/http2srv.h index ff4a1319e2..76c5a0ee36 100644 --- a/tests/auto/network/access/http2/http2srv.h +++ b/tests/auto/network/access/http2/http2srv.h @@ -116,7 +116,7 @@ private slots: void readReady(); private: - void incomingConnection(qintptr socketDescriptor) Q_DECL_OVERRIDE; + void incomingConnection(qintptr socketDescriptor) override; quint32 clientSetting(Http2::Settings identifier, quint32 defaultValue); bool readMethodLine(); diff --git a/tests/auto/network/access/qftp/tst_qftp.cpp b/tests/auto/network/access/qftp/tst_qftp.cpp index f9f48506d6..d42702e1de 100644 --- a/tests/auto/network/access/qftp/tst_qftp.cpp +++ b/tests/auto/network/access/qftp/tst_qftp.cpp @@ -253,6 +253,8 @@ void tst_QFtp::init() } else { networkSessionExplicit.clear(); } +#else + Q_UNUSED(setSession); #endif delete ftp; diff --git a/tests/auto/network/access/qhttpnetworkreply/tst_qhttpnetworkreply.cpp b/tests/auto/network/access/qhttpnetworkreply/tst_qhttpnetworkreply.cpp index ec965a61b2..edfef09a96 100644 --- a/tests/auto/network/access/qhttpnetworkreply/tst_qhttpnetworkreply.cpp +++ b/tests/auto/network/access/qhttpnetworkreply/tst_qhttpnetworkreply.cpp @@ -104,7 +104,7 @@ void tst_QHttpNetworkReply::parseHeader() class TestHeaderSocket : public QAbstractSocket { public: - explicit TestHeaderSocket(const QByteArray &input) : QAbstractSocket(QAbstractSocket::TcpSocket, Q_NULLPTR) + explicit TestHeaderSocket(const QByteArray &input) : QAbstractSocket(QAbstractSocket::TcpSocket, nullptr) { inputBuffer.setData(input); inputBuffer.open(QIODevice::ReadOnly | QIODevice::Unbuffered); diff --git a/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp b/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp index a2e602e4c5..69bd78a4f0 100644 --- a/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp +++ b/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp @@ -548,7 +548,9 @@ static void setupSslServer(QSslSocket* serverSocket) } #endif -// Limited support for POST and PUT. +// NOTE: MiniHttpServer has a very limited support of PUT/POST requests! Make +// sure you understand the server's code before PUTting/POSTing data (and +// probably you'll have to update the logic). class MiniHttpServer: public QTcpServer { Q_OBJECT @@ -591,6 +593,12 @@ public: dataToTransmit = data; } + void clearHeaderParserState() + { + contentLength = 0; + receivedData.clear(); + } + protected: void incomingConnection(qintptr socketDescriptor) { @@ -672,6 +680,7 @@ private slots: } public slots: + void readyReadSlot() { QTcpSocket *currentClient = qobject_cast<QTcpSocket *>(sender()); @@ -7341,6 +7350,7 @@ void tst_QNetworkReply::qtbug28035browserDoesNotLoadQtProjectOrgCorrectly() { QCOMPARE(reply->readAll(), QByteArray("GET")); QCOMPARE(reply->attribute(QNetworkRequest::SourceIsFromCacheAttribute).toBool(), false); + server.clearHeaderParserState(); server.setDataToTransmit(getReply); reply.reset(manager.get(request)); QVERIFY2(waitForFinish(reply) == Success, msgWaitForFinished(reply)); @@ -7350,6 +7360,7 @@ void tst_QNetworkReply::qtbug28035browserDoesNotLoadQtProjectOrgCorrectly() { QCOMPARE(reply->readAll(), QByteArray("GET")); QCOMPARE(reply->attribute(QNetworkRequest::SourceIsFromCacheAttribute).toBool(), true); + server.clearHeaderParserState(); server.setDataToTransmit(postReply); request.setRawHeader("Content-Type", "text/plain"); reply.reset(manager.post(request, postData)); @@ -7362,6 +7373,7 @@ void tst_QNetworkReply::qtbug28035browserDoesNotLoadQtProjectOrgCorrectly() { QCOMPARE(reply->readAll(), QByteArray("POST")); QCOMPARE(reply->attribute(QNetworkRequest::SourceIsFromCacheAttribute).toBool(), false); + server.clearHeaderParserState(); server.setDataToTransmit(getReply); reply.reset(manager.get(request)); @@ -7372,6 +7384,7 @@ void tst_QNetworkReply::qtbug28035browserDoesNotLoadQtProjectOrgCorrectly() { QCOMPARE(reply->readAll(), QByteArray("GET")); QCOMPARE(reply->attribute(QNetworkRequest::SourceIsFromCacheAttribute).toBool(), false); + server.clearHeaderParserState(); server.setDataToTransmit(getReply); reply.reset(manager.get(request)); @@ -7382,6 +7395,7 @@ void tst_QNetworkReply::qtbug28035browserDoesNotLoadQtProjectOrgCorrectly() { QCOMPARE(reply->readAll(), QByteArray("GET")); QCOMPARE(reply->attribute(QNetworkRequest::SourceIsFromCacheAttribute).toBool(), true); + server.clearHeaderParserState(); server.setDataToTransmit(putReply); reply.reset(manager.put(request, postData)); @@ -7391,6 +7405,7 @@ void tst_QNetworkReply::qtbug28035browserDoesNotLoadQtProjectOrgCorrectly() { QCOMPARE(reply->error(), QNetworkReply::NoError); QCOMPARE(reply->attribute(QNetworkRequest::SourceIsFromCacheAttribute).toBool(), false); + server.clearHeaderParserState(); server.setDataToTransmit(getReply); reply.reset(manager.get(request)); @@ -7401,6 +7416,7 @@ void tst_QNetworkReply::qtbug28035browserDoesNotLoadQtProjectOrgCorrectly() { QCOMPARE(reply->readAll(), QByteArray("GET")); QCOMPARE(reply->attribute(QNetworkRequest::SourceIsFromCacheAttribute).toBool(), false); + server.clearHeaderParserState(); server.setDataToTransmit(getReply); reply.reset(manager.get(request)); diff --git a/tests/auto/network/kernel/qhostaddress/qhostaddress.pro b/tests/auto/network/kernel/qhostaddress/qhostaddress.pro index a79fa2f59d..b5d6ea6459 100644 --- a/tests/auto/network/kernel/qhostaddress/qhostaddress.pro +++ b/tests/auto/network/kernel/qhostaddress/qhostaddress.pro @@ -2,7 +2,6 @@ CONFIG += testcase TARGET = tst_qhostaddress SOURCES += tst_qhostaddress.cpp - -QT = core network testlib +QT = core network-private testlib win32:LIBS += -lws2_32 diff --git a/tests/auto/network/kernel/qhostaddress/tst_qhostaddress.cpp b/tests/auto/network/kernel/qhostaddress/tst_qhostaddress.cpp index bc3f5650ba..224e4d61a9 100644 --- a/tests/auto/network/kernel/qhostaddress/tst_qhostaddress.cpp +++ b/tests/auto/network/kernel/qhostaddress/tst_qhostaddress.cpp @@ -27,9 +27,10 @@ ** ****************************************************************************/ +#include <qhostaddress.h> +#include <private/qhostaddress_p.h> #include <qcoreapplication.h> #include <QtTest/QtTest> -#include <qhostaddress.h> #include <qplatformdefs.h> #include <qdebug.h> #include <qhash.h> @@ -46,6 +47,7 @@ # include <netinet/in.h> #endif +Q_DECLARE_METATYPE(AddressClassification) Q_DECLARE_METATYPE(QHostAddress::SpecialAddress) class tst_QHostAddress : public QObject @@ -75,10 +77,8 @@ private slots: void parseSubnet(); void isInSubnet_data(); void isInSubnet(); - void isLoopback_data(); - void isLoopback(); - void isMulticast_data(); - void isMulticast(); + void classification_data(); + void classification(); void convertv4v6_data(); void convertv4v6(); }; @@ -667,90 +667,88 @@ void tst_QHostAddress::isInSubnet() QTEST(address.isInSubnet(prefix, prefixLength), "result"); } -void tst_QHostAddress::isLoopback_data() -{ - QTest::addColumn<QHostAddress>("address"); - QTest::addColumn<bool>("result"); - - QTest::newRow("default") << QHostAddress() << false; - QTest::newRow("invalid") << QHostAddress("&&&") << false; - - QTest::newRow("ipv6_loop") << QHostAddress(QHostAddress::LocalHostIPv6) << true; - QTest::newRow("::1") << QHostAddress("::1") << true; - - QTest::newRow("ipv4_loop") << QHostAddress(QHostAddress::LocalHost) << true; - QTest::newRow("127.0.0.1") << QHostAddress("127.0.0.1") << true; - QTest::newRow("127.0.0.2") << QHostAddress("127.0.0.2") << true; - QTest::newRow("127.3.2.1") << QHostAddress("127.3.2.1") << true; - - QTest::newRow("1.2.3.4") << QHostAddress("1.2.3.4") << false; - QTest::newRow("10.0.0.4") << QHostAddress("10.0.0.4") << false; - QTest::newRow("192.168.3.4") << QHostAddress("192.168.3.4") << false; - - QTest::newRow("::") << QHostAddress("::") << false; - QTest::newRow("Any") << QHostAddress(QHostAddress::Any) << false; - QTest::newRow("AnyIPv4") << QHostAddress(QHostAddress::AnyIPv4) << false; - QTest::newRow("AnyIPv6") << QHostAddress(QHostAddress::AnyIPv6) << false; - QTest::newRow("Broadcast") << QHostAddress(QHostAddress::Broadcast) << false; - QTest::newRow("Null") << QHostAddress(QHostAddress::Null) << false; - QTest::newRow("ipv6-all-ffff") << QHostAddress("ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff") << false; - - QTest::newRow("::ffff:127.0.0.1") << QHostAddress("::ffff:127.0.0.1") << true; - QTest::newRow("::ffff:127.0.0.2") << QHostAddress("::ffff:127.0.0.2") << true; - QTest::newRow("::ffff:127.3.2.1") << QHostAddress("::ffff:127.3.2.1") << true; - -} - -void tst_QHostAddress::isLoopback() -{ - QFETCH(QHostAddress, address); - QFETCH(bool, result); - - QCOMPARE(address.isLoopback(), result); -} - -void tst_QHostAddress::isMulticast_data() +void tst_QHostAddress::classification_data() { QTest::addColumn<QHostAddress>("address"); - QTest::addColumn<bool>("result"); - - QTest::newRow("default") << QHostAddress() << false; - QTest::newRow("invalid") << QHostAddress("&&&") << false; - - QTest::newRow("ipv6_loop") << QHostAddress(QHostAddress::LocalHostIPv6) << false; - QTest::newRow("::1") << QHostAddress("::1") << false; - QTest::newRow("ipv4_loop") << QHostAddress(QHostAddress::LocalHost) << false; - QTest::newRow("127.0.0.1") << QHostAddress("127.0.0.1") << false; - QTest::newRow("::") << QHostAddress("::") << false; - QTest::newRow("Any") << QHostAddress(QHostAddress::Any) << false; - QTest::newRow("AnyIPv4") << QHostAddress(QHostAddress::AnyIPv4) << false; - QTest::newRow("AnyIPv6") << QHostAddress(QHostAddress::AnyIPv6) << false; - QTest::newRow("Broadcast") << QHostAddress(QHostAddress::Broadcast) << false; - QTest::newRow("Null") << QHostAddress(QHostAddress::Null) << false; - - QTest::newRow("223.255.255.255") << QHostAddress("223.255.255.255") << false; - QTest::newRow("224.0.0.0") << QHostAddress("224.0.0.0") << true; - QTest::newRow("239.255.255.255") << QHostAddress("239.255.255.255") << true; - QTest::newRow("240.0.0.0") << QHostAddress("240.0.0.0") << false; - - QTest::newRow("::ffff:223.255.255.255") << QHostAddress("::ffff:223.255.255.255") << false; - QTest::newRow("::ffff:224.0.0.0") << QHostAddress("::ffff:224.0.0.0") << true; - QTest::newRow("::ffff:239.255.255.255") << QHostAddress("::ffff:239.255.255.255") << true; - QTest::newRow("::ffff:240.0.0.0") << QHostAddress("::ffff:240.0.0.0") << false; - - QTest::newRow("fc00::") << QHostAddress("fc00::") << false; - QTest::newRow("fe80::") << QHostAddress("fe80::") << false; - QTest::newRow("fec0::") << QHostAddress("fec0::") << false; - QTest::newRow("ff00::") << QHostAddress("ff00::") << true; - QTest::newRow("ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff") << QHostAddress("ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff") << true; + QTest::addColumn<AddressClassification>("result"); + + QTest::newRow("default") << QHostAddress() << UnknownAddress; + QTest::newRow("invalid") << QHostAddress("&&&") << UnknownAddress; + + QTest::newRow("Any") << QHostAddress(QHostAddress::Any) << LocalNetAddress; + QTest::newRow("Null") << QHostAddress(QHostAddress::Null) << UnknownAddress; + + // IPv6 address space + auto addV6 = [](const char *str, AddressClassification cl) { + QTest::newRow(str) << QHostAddress(str) << cl; + }; + QTest::newRow("AnyIPv6") << QHostAddress(QHostAddress::AnyIPv6) << LocalNetAddress; + QTest::newRow("ipv6_loop") << QHostAddress(QHostAddress::LocalHostIPv6) << LoopbackAddress; + addV6("::", LocalNetAddress); + addV6("::1", LoopbackAddress); + addV6("::2", GlobalAddress); + addV6("2000::", GlobalAddress); + addV6("3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", GlobalAddress); + addV6("fbff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", GlobalAddress); + addV6("fc00::", UniqueLocalAddress); + addV6("fdff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", UniqueLocalAddress); + addV6("fe00::", UnknownAddress); + addV6("fe7f:ffff:ffff:ffff:ffff:ffff:ffff:ffff", UnknownAddress); + addV6("fe80::", LinkLocalAddress); + addV6("febf:ffff:ffff:ffff:ffff:ffff:ffff:ffff", LinkLocalAddress); + addV6("fec0::", SiteLocalAddress); + addV6("feff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", SiteLocalAddress); + addV6("ff00::", MulticastAddress); + addV6("ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", MulticastAddress); + + // IPv4 address space + auto addV4 = [](const char *str, AddressClassification cl) { + QTest::newRow(str) << QHostAddress(str) << cl; + QByteArray v6 = "::ffff:"; + v6 += str; + QTest::newRow(v6.constData()) << QHostAddress(QString::fromLatin1(v6)) << cl; + }; + QTest::newRow("AnyIPv4") << QHostAddress(QHostAddress::AnyIPv4) << LocalNetAddress; + QTest::newRow("ipv4_loop") << QHostAddress(QHostAddress::LocalHost) << LoopbackAddress; + QTest::newRow("Broadcast") << QHostAddress(QHostAddress::Broadcast) << BroadcastAddress; + addV4("0.0.0.0", LocalNetAddress); + addV4("0.0.0.1", LocalNetAddress); + addV4("0.255.255.255", LocalNetAddress); + addV4("1.0.0.0", GlobalAddress); + addV4("1.2.3.4", GlobalAddress); + addV4("10.0.0.4", PrivateNetworkAddress); + addV4("127.0.0.1", LoopbackAddress); + addV4("127.0.0.2", LoopbackAddress); + addV4("127.255.255.255", LoopbackAddress); + addV4("192.168.3.4", PrivateNetworkAddress); + addV4("223.255.255.255", GlobalAddress); + addV4("224.0.0.0", MulticastAddress); + addV4("239.255.255.255", MulticastAddress); + addV4("240.0.0.0", UnknownAddress); + addV4("255.255.255.254", UnknownAddress); + addV4("255.255.255.255", BroadcastAddress); } -void tst_QHostAddress::isMulticast() +void tst_QHostAddress::classification() { QFETCH(QHostAddress, address); - QFETCH(bool, result); - - QCOMPARE(address.isMulticast(), result); + QFETCH(AddressClassification, result); + + bool isLoopback = (result == LoopbackAddress); + bool isGlobal = (result & GlobalAddress); // GlobalAddress is a bit + bool isLinkLocal = (result == LinkLocalAddress); + bool isSiteLocal = (result == SiteLocalAddress); + bool isUniqueLocalAddress = (result == UniqueLocalAddress); + bool isMulticast = (result == MulticastAddress); + bool isBroadcast = (result == BroadcastAddress); + + QCOMPARE(address.isLoopback(), isLoopback); + QCOMPARE(address.isGlobal(), isGlobal); + QCOMPARE(address.isLinkLocal(), isLinkLocal); + QCOMPARE(address.isSiteLocal(), isSiteLocal); + QCOMPARE(address.isUniqueLocalUnicast(), isUniqueLocalAddress); + QCOMPARE(address.isMulticast(), isMulticast); + QCOMPARE(address.isBroadcast(), isBroadcast); } void tst_QHostAddress::convertv4v6_data() diff --git a/tests/auto/network/kernel/qnetworkinterface/BLACKLIST b/tests/auto/network/kernel/qnetworkinterface/BLACKLIST index 23bb688d9a..33bdf540b6 100644 --- a/tests/auto/network/kernel/qnetworkinterface/BLACKLIST +++ b/tests/auto/network/kernel/qnetworkinterface/BLACKLIST @@ -1,2 +1,4 @@ -[localAddress] -linux +# 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 36dcec0a82..0b4ed4870d 100644 --- a/tests/auto/network/kernel/qnetworkinterface/tst_qnetworkinterface.cpp +++ b/tests/auto/network/kernel/qnetworkinterface/tst_qnetworkinterface.cpp @@ -40,6 +40,8 @@ #include "../../../network-settings.h" #include "emulationdetector.h" +Q_DECLARE_METATYPE(QHostAddress) + class tst_QNetworkInterface : public QObject { Q_OBJECT @@ -57,6 +59,7 @@ private slots: void consistencyCheck(); void loopbackIPv4(); void loopbackIPv6(); + void localAddress_data(); void localAddress(); void interfaceFromXXX_data(); void interfaceFromXXX(); @@ -138,7 +141,9 @@ void tst_QNetworkInterface::dump() qDebug() << " index: " << i.index(); qDebug() << " flags: " << qPrintable(flags); + qDebug() << " type: " << i.type(); qDebug() << " hw address:" << qPrintable(i.hardwareAddress()); + qDebug() << " MTU: " << i.maxTransmissionUnit(); int count = 0; foreach (const QNetworkAddressEntry &e, i.addressEntries()) { @@ -151,6 +156,16 @@ void tst_QNetworkInterface::dump() << " (" << qPrintable(e.netmask().toString()) << ')'; if (!e.broadcast().isNull()) s.nospace() << " broadcast " << qPrintable(e.broadcast().toString()); + if (e.dnsEligibility() == QNetworkAddressEntry::DnsEligible) + s.nospace() << " dns-eligible"; + else if (e.dnsEligibility() == QNetworkAddressEntry::DnsIneligible) + s.nospace() << " dns-ineligible"; + if (e.isLifetimeKnown()) { +#define printable(l) qPrintable(l.isForever() ? "forever" : QString::fromLatin1("%1ms").arg(l.remainingTime())) + s.nospace() << " preferred:" << printable(e.preferredLifetime()) + << " valid:" << printable(e.validityLifetime()); +#undef printable + } } } } @@ -162,6 +177,7 @@ void tst_QNetworkInterface::consistencyCheck() QVector<int> interfaceIndexes; foreach (const QNetworkInterface &iface, ifaces) { + QVERIFY(iface.isValid()); QVERIFY2(!interfaceNames.contains(iface.name()), "duplicate name = " + iface.name().toLocal8Bit()); interfaceNames << iface.name(); @@ -170,6 +186,17 @@ void tst_QNetworkInterface::consistencyCheck() "duplicate index = " + QByteArray::number(iface.index())); if (iface.index()) interfaceIndexes << iface.index(); + + QVERIFY(iface.maxTransmissionUnit() >= 0); + + const QList<QNetworkAddressEntry> addresses = iface.addressEntries(); + for (auto entry : addresses) { + QVERIFY(entry.ip().protocol() != QAbstractSocket::UnknownNetworkLayerProtocol); + if (!entry.preferredLifetime().isForever() || !entry.validityLifetime().isForever()) + QVERIFY(entry.isLifetimeKnown()); + if (!entry.validityLifetime().isForever()) + QVERIFY(entry.isTemporary()); + } } } @@ -186,18 +213,69 @@ void tst_QNetworkInterface::loopbackIPv6() QList<QHostAddress> all = QNetworkInterface::allAddresses(); QVERIFY(all.contains(QHostAddress(QHostAddress::LocalHostIPv6))); } +void tst_QNetworkInterface::localAddress_data() +{ + QTest::addColumn<QHostAddress>("target"); + + QTest::newRow("localhost-ipv4") << QHostAddress(QHostAddress::LocalHost); + if (isIPv6Working()) + 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()) + continue; + QTest::addRow("linklocal-ipv6-%s", qPrintable(scope)) + << QHostAddress("fe80::1234%" + scope); + } + } +} void tst_QNetworkInterface::localAddress() { + QFETCH(QHostAddress, target); QUdpSocket socket; - socket.connectToHost(QtNetworkSettings::serverName(), 80); + socket.connectToHost(target, 80); QVERIFY(socket.waitForConnected(5000)); QHostAddress local = socket.localAddress(); - // test that we can find the address that QUdpSocket reported - QList<QHostAddress> all = QNetworkInterface::allAddresses(); - QVERIFY(all.contains(local)); + // find the interface that contains the address QUdpSocket reported + QList<QNetworkInterface> ifaces = QNetworkInterface::allInterfaces(); + const QNetworkInterface *outgoingIface = nullptr; + for (const QNetworkInterface &iface : ifaces) { + QList<QNetworkAddressEntry> addrs = iface.addressEntries(); + for (const QNetworkAddressEntry &entry : addrs) { + if (entry.ip() == local) { + outgoingIface = &iface; + break; + } + } + if (outgoingIface) + break; + } + QVERIFY(outgoingIface); + + // we get QVariant() if the QNativeSocketEngine doesn't know how to get the PMTU + int pmtu = socket.socketOption(QAbstractSocket::PathMtuSocketOption).toInt(); + qDebug() << "Connected to" << target.toString() << "via interface" << outgoingIface->name() + << "pmtu" << pmtu; + + // check that the Path MTU is less than or equal the interface's MTU + QVERIFY(pmtu <= outgoingIface->maxTransmissionUnit()); } void tst_QNetworkInterface::interfaceFromXXX_data() diff --git a/tests/auto/network/socket/qlocalsocket/tst_qlocalsocket.cpp b/tests/auto/network/socket/qlocalsocket/tst_qlocalsocket.cpp index 7760138067..0d538865a3 100644 --- a/tests/auto/network/socket/qlocalsocket/tst_qlocalsocket.cpp +++ b/tests/auto/network/socket/qlocalsocket/tst_qlocalsocket.cpp @@ -476,7 +476,7 @@ void tst_QLocalSocket::connectWithOldOpen() class OverriddenOpen : public LocalSocket { public: - virtual bool open(OpenMode mode) Q_DECL_OVERRIDE + virtual bool open(OpenMode mode) override { return QIODevice::open(mode); } }; diff --git a/tests/auto/network/socket/qtcpsocket/tst_qtcpsocket.cpp b/tests/auto/network/socket/qtcpsocket/tst_qtcpsocket.cpp index e45eda2940..fc92ed6cbc 100644 --- a/tests/auto/network/socket/qtcpsocket/tst_qtcpsocket.cpp +++ b/tests/auto/network/socket/qtcpsocket/tst_qtcpsocket.cpp @@ -3131,7 +3131,7 @@ void tst_QTcpSocket::readNotificationsAfterBind() if (setProxy) return; - QAbstractSocket socket(QAbstractSocket::TcpSocket, Q_NULLPTR); + QAbstractSocket socket(QAbstractSocket::TcpSocket, nullptr); QVERIFY2(socket.bind(), "Bind error!"); connect(&socket, SIGNAL(error(QAbstractSocket::SocketError)), &QTestEventLoop::instance(), SLOT(exitLoop())); diff --git a/tests/auto/network/ssl/qsslcertificate/tst_qsslcertificate.cpp b/tests/auto/network/ssl/qsslcertificate/tst_qsslcertificate.cpp index 064efc120b..1477fd212e 100644 --- a/tests/auto/network/ssl/qsslcertificate/tst_qsslcertificate.cpp +++ b/tests/auto/network/ssl/qsslcertificate/tst_qsslcertificate.cpp @@ -57,11 +57,8 @@ class tst_QSslCertificate : public QObject void compareCertificates(const QSslCertificate & cert1, const QSslCertificate & cert2); #endif - QString oldCurrentDir; - public slots: void initTestCase(); - void cleanupTestCase(); #ifndef QT_NO_SSL private slots: @@ -120,14 +117,10 @@ void tst_QSslCertificate::initTestCase() testDataDir = QFileInfo(QFINDTESTDATA("certificates")).absolutePath(); if (testDataDir.isEmpty()) testDataDir = QCoreApplication::applicationDirPath(); + if (!testDataDir.endsWith(QLatin1String("/"))) + testDataDir += QLatin1String("/"); - if (QDir::current().absolutePath() != testDataDir) { - oldCurrentDir = QDir::current().absolutePath(); - QVERIFY2(QDir::setCurrent(testDataDir), - qPrintable(QString("Cannot change directory to %1").arg(testDataDir))); - } - - QDir dir(testDataDir + "/certificates"); + QDir dir(testDataDir + "certificates"); QFileInfoList fileInfoList = dir.entryInfoList(QDir::Files | QDir::Readable); QRegExp rxCert(QLatin1String("^.+\\.(pem|der)$")); QRegExp rxSan(QLatin1String("^(.+\\.(?:pem|der))\\.san$")); @@ -151,13 +144,6 @@ void tst_QSslCertificate::initTestCase() } } -void tst_QSslCertificate::cleanupTestCase() -{ - if (!oldCurrentDir.isEmpty()) { - QDir::setCurrent(oldCurrentDir); - } -} - #ifndef QT_NO_SSL void tst_QSslCertificate::hash() @@ -232,7 +218,7 @@ void tst_QSslCertificate::constructor_device() if (!QSslSocket::supportsSsl()) return; - QFile f(testDataDir + "/verify-certs/test-ocsp-good-cert.pem"); + QFile f(testDataDir + "verify-certs/test-ocsp-good-cert.pem"); bool ok = f.open(QIODevice::ReadOnly); QVERIFY(ok); @@ -241,7 +227,7 @@ void tst_QSslCertificate::constructor_device() f.close(); // Check opening a DER as a PEM fails - QFile f2(testDataDir + "/certificates/cert.der"); + QFile f2(testDataDir + "certificates/cert.der"); ok = f2.open(QIODevice::ReadOnly); QVERIFY(ok); @@ -250,7 +236,7 @@ void tst_QSslCertificate::constructor_device() f2.close(); // Check opening a DER as a DER works - QFile f3(testDataDir + "/certificates/cert.der"); + QFile f3(testDataDir + "certificates/cert.der"); ok = f3.open(QIODevice::ReadOnly); QVERIFY(ok); @@ -259,7 +245,7 @@ void tst_QSslCertificate::constructor_device() f3.close(); // Check opening a PEM as a DER fails - QFile f4(testDataDir + "/verify-certs/test-ocsp-good-cert.pem"); + QFile f4(testDataDir + "verify-certs/test-ocsp-good-cert.pem"); ok = f4.open(QIODevice::ReadOnly); QVERIFY(ok); @@ -445,7 +431,7 @@ void tst_QSslCertificate::subjectAlternativeNames() void tst_QSslCertificate::utf8SubjectNames() { - QSslCertificate cert = QSslCertificate::fromPath("certificates/cert-ss-san-utf8.pem", QSsl::Pem, + QSslCertificate cert = QSslCertificate::fromPath(testDataDir + "certificates/cert-ss-san-utf8.pem", QSsl::Pem, QRegExp::FixedString).first(); QVERIFY(!cert.isNull()); @@ -568,60 +554,60 @@ void tst_QSslCertificate::fromPath_data() QTest::newRow("empty regexp der") << QString() << int(QRegExp::RegExp) << false << 0; QTest::newRow("empty wildcard pem") << QString() << int(QRegExp::Wildcard) << true << 0; QTest::newRow("empty wildcard der") << QString() << int(QRegExp::Wildcard) << false << 0; - QTest::newRow("\"certificates\" fixed pem") << QString("certificates") << int(QRegExp::FixedString) << true << 0; - QTest::newRow("\"certificates\" fixed der") << QString("certificates") << int(QRegExp::FixedString) << false << 0; - QTest::newRow("\"certificates\" regexp pem") << QString("certificates") << int(QRegExp::RegExp) << true << 0; - QTest::newRow("\"certificates\" regexp der") << QString("certificates") << int(QRegExp::RegExp) << false << 0; - QTest::newRow("\"certificates\" wildcard pem") << QString("certificates") << int(QRegExp::Wildcard) << true << 0; - QTest::newRow("\"certificates\" wildcard der") << QString("certificates") << int(QRegExp::Wildcard) << false << 0; - QTest::newRow("\"certificates/cert.pem\" fixed pem") << QString("certificates/cert.pem") << int(QRegExp::FixedString) << true << 1; - QTest::newRow("\"certificates/cert.pem\" fixed der") << QString("certificates/cert.pem") << int(QRegExp::FixedString) << false << 0; - QTest::newRow("\"certificates/cert.pem\" regexp pem") << QString("certificates/cert.pem") << int(QRegExp::RegExp) << true << 1; - QTest::newRow("\"certificates/cert.pem\" regexp der") << QString("certificates/cert.pem") << int(QRegExp::RegExp) << false << 0; - QTest::newRow("\"certificates/cert.pem\" wildcard pem") << QString("certificates/cert.pem") << int(QRegExp::Wildcard) << true << 1; - QTest::newRow("\"certificates/cert.pem\" wildcard der") << QString("certificates/cert.pem") << int(QRegExp::Wildcard) << false << 0; - QTest::newRow("\"certificates/*\" fixed pem") << QString("certificates/*") << int(QRegExp::FixedString) << true << 0; - QTest::newRow("\"certificates/*\" fixed der") << QString("certificates/*") << int(QRegExp::FixedString) << false << 0; - QTest::newRow("\"certificates/*\" regexp pem") << QString("certificates/*") << int(QRegExp::RegExp) << true << 0; - QTest::newRow("\"certificates/*\" regexp der") << QString("certificates/*") << int(QRegExp::RegExp) << false << 0; - QTest::newRow("\"certificates/*\" wildcard pem") << QString("certificates/*") << int(QRegExp::Wildcard) << true << 7; - QTest::newRow("\"certificates/ca*\" wildcard pem") << QString("certificates/ca*") << int(QRegExp::Wildcard) << true << 1; - QTest::newRow("\"certificates/cert*\" wildcard pem") << QString("certificates/cert*") << int(QRegExp::Wildcard) << true << 4; - QTest::newRow("\"certificates/cert-[sure]*\" wildcard pem") << QString("certificates/cert-[sure]*") << int(QRegExp::Wildcard) << true << 3; - QTest::newRow("\"certificates/cert-[not]*\" wildcard pem") << QString("certificates/cert-[not]*") << int(QRegExp::Wildcard) << true << 0; - QTest::newRow("\"certificates/*\" wildcard der") << QString("certificates/*") << int(QRegExp::Wildcard) << false << 2; - QTest::newRow("\"c*/c*.pem\" fixed pem") << QString("c*/c*.pem") << int(QRegExp::FixedString) << true << 0; - QTest::newRow("\"c*/c*.pem\" fixed der") << QString("c*/c*.pem") << int(QRegExp::FixedString) << false << 0; - QTest::newRow("\"c*/c*.pem\" regexp pem") << QString("c*/c*.pem") << int(QRegExp::RegExp) << true << 0; - QTest::newRow("\"c*/c*.pem\" regexp der") << QString("c*/c*.pem") << int(QRegExp::RegExp) << false << 0; - QTest::newRow("\"c*/c*.pem\" wildcard pem") << QString("c*/c*.pem") << int(QRegExp::Wildcard) << true << 5; - QTest::newRow("\"c*/c*.pem\" wildcard der") << QString("c*/c*.pem") << int(QRegExp::Wildcard) << false << 0; - QTest::newRow("\"d*/c*.pem\" fixed pem") << QString("d*/c*.pem") << int(QRegExp::FixedString) << true << 0; - QTest::newRow("\"d*/c*.pem\" fixed der") << QString("d*/c*.pem") << int(QRegExp::FixedString) << false << 0; - QTest::newRow("\"d*/c*.pem\" regexp pem") << QString("d*/c*.pem") << int(QRegExp::RegExp) << true << 0; - QTest::newRow("\"d*/c*.pem\" regexp der") << QString("d*/c*.pem") << int(QRegExp::RegExp) << false << 0; - QTest::newRow("\"d*/c*.pem\" wildcard pem") << QString("d*/c*.pem") << int(QRegExp::Wildcard) << true << 0; - QTest::newRow("\"d*/c*.pem\" wildcard der") << QString("d*/c*.pem") << int(QRegExp::Wildcard) << false << 0; - QTest::newRow("\"c.*/c.*.pem\" fixed pem") << QString("c.*/c.*.pem") << int(QRegExp::FixedString) << true << 0; - QTest::newRow("\"c.*/c.*.pem\" fixed der") << QString("c.*/c.*.pem") << int(QRegExp::FixedString) << false << 0; - QTest::newRow("\"c.*/c.*.pem\" regexp pem") << QString("c.*/c.*.pem") << int(QRegExp::RegExp) << true << 5; - QTest::newRow("\"c.*/c.*.pem\" regexp der") << QString("c.*/c.*.pem") << int(QRegExp::RegExp) << false << 0; - QTest::newRow("\"c.*/c.*.pem\" wildcard pem") << QString("c.*/c.*.pem") << int(QRegExp::Wildcard) << true << 0; - QTest::newRow("\"c.*/c.*.pem\" wildcard der") << QString("c.*/c.*.pem") << int(QRegExp::Wildcard) << false << 0; - QTest::newRow("\"d.*/c.*.pem\" fixed pem") << QString("d.*/c.*.pem") << int(QRegExp::FixedString) << true << 0; - QTest::newRow("\"d.*/c.*.pem\" fixed der") << QString("d.*/c.*.pem") << int(QRegExp::FixedString) << false << 0; - QTest::newRow("\"d.*/c.*.pem\" regexp pem") << QString("d.*/c.*.pem") << int(QRegExp::RegExp) << true << 0; - QTest::newRow("\"d.*/c.*.pem\" regexp der") << QString("d.*/c.*.pem") << int(QRegExp::RegExp) << false << 0; - QTest::newRow("\"d.*/c.*.pem\" wildcard pem") << QString("d.*/c.*.pem") << int(QRegExp::Wildcard) << true << 0; - QTest::newRow("\"d.*/c.*.pem\" wildcard der") << QString("d.*/c.*.pem") << int(QRegExp::Wildcard) << false << 0; + QTest::newRow("\"certificates\" fixed pem") << (testDataDir + "certificates") << int(QRegExp::FixedString) << true << 0; + QTest::newRow("\"certificates\" fixed der") << (testDataDir + "certificates") << int(QRegExp::FixedString) << false << 0; + QTest::newRow("\"certificates\" regexp pem") << (testDataDir + "certificates") << int(QRegExp::RegExp) << true << 0; + QTest::newRow("\"certificates\" regexp der") << (testDataDir + "certificates") << int(QRegExp::RegExp) << false << 0; + QTest::newRow("\"certificates\" wildcard pem") << (testDataDir + "certificates") << int(QRegExp::Wildcard) << true << 0; + QTest::newRow("\"certificates\" wildcard der") << (testDataDir + "certificates") << int(QRegExp::Wildcard) << false << 0; + QTest::newRow("\"certificates/cert.pem\" fixed pem") << (testDataDir + "certificates/cert.pem") << int(QRegExp::FixedString) << true << 1; + QTest::newRow("\"certificates/cert.pem\" fixed der") << (testDataDir + "certificates/cert.pem") << int(QRegExp::FixedString) << false << 0; + QTest::newRow("\"certificates/cert.pem\" regexp pem") << (testDataDir + "certificates/cert.pem") << int(QRegExp::RegExp) << true << 1; + QTest::newRow("\"certificates/cert.pem\" regexp der") << (testDataDir + "certificates/cert.pem") << int(QRegExp::RegExp) << false << 0; + QTest::newRow("\"certificates/cert.pem\" wildcard pem") << (testDataDir + "certificates/cert.pem") << int(QRegExp::Wildcard) << true << 1; + QTest::newRow("\"certificates/cert.pem\" wildcard der") << (testDataDir + "certificates/cert.pem") << int(QRegExp::Wildcard) << false << 0; + QTest::newRow("\"certificates/*\" fixed pem") << (testDataDir + "certificates/*") << int(QRegExp::FixedString) << true << 0; + QTest::newRow("\"certificates/*\" fixed der") << (testDataDir + "certificates/*") << int(QRegExp::FixedString) << false << 0; + QTest::newRow("\"certificates/*\" regexp pem") << (testDataDir + "certificates/*") << int(QRegExp::RegExp) << true << 0; + QTest::newRow("\"certificates/*\" regexp der") << (testDataDir + "certificates/*") << int(QRegExp::RegExp) << false << 0; + QTest::newRow("\"certificates/*\" wildcard pem") << (testDataDir + "certificates/*") << int(QRegExp::Wildcard) << true << 7; + QTest::newRow("\"certificates/ca*\" wildcard pem") << (testDataDir + "certificates/ca*") << int(QRegExp::Wildcard) << true << 1; + QTest::newRow("\"certificates/cert*\" wildcard pem") << (testDataDir + "certificates/cert*") << int(QRegExp::Wildcard) << true << 4; + QTest::newRow("\"certificates/cert-[sure]*\" wildcard pem") << (testDataDir + "certificates/cert-[sure]*") << int(QRegExp::Wildcard) << true << 3; + QTest::newRow("\"certificates/cert-[not]*\" wildcard pem") << (testDataDir + "certificates/cert-[not]*") << int(QRegExp::Wildcard) << true << 0; + QTest::newRow("\"certificates/*\" wildcard der") << (testDataDir + "certificates/*") << int(QRegExp::Wildcard) << false << 2; + QTest::newRow("\"c*/c*.pem\" fixed pem") << (testDataDir + "c*/c*.pem") << int(QRegExp::FixedString) << true << 0; + QTest::newRow("\"c*/c*.pem\" fixed der") << (testDataDir + "c*/c*.pem") << int(QRegExp::FixedString) << false << 0; + QTest::newRow("\"c*/c*.pem\" regexp pem") << (testDataDir + "c*/c*.pem") << int(QRegExp::RegExp) << true << 0; + QTest::newRow("\"c*/c*.pem\" regexp der") << (testDataDir + "c*/c*.pem") << int(QRegExp::RegExp) << false << 0; + QTest::newRow("\"c*/c*.pem\" wildcard pem") << (testDataDir + "c*/c*.pem") << int(QRegExp::Wildcard) << true << 5; + QTest::newRow("\"c*/c*.pem\" wildcard der") << (testDataDir + "c*/c*.pem") << int(QRegExp::Wildcard) << false << 0; + QTest::newRow("\"d*/c*.pem\" fixed pem") << (testDataDir + "d*/c*.pem") << int(QRegExp::FixedString) << true << 0; + QTest::newRow("\"d*/c*.pem\" fixed der") << (testDataDir + "d*/c*.pem") << int(QRegExp::FixedString) << false << 0; + QTest::newRow("\"d*/c*.pem\" regexp pem") << (testDataDir + "d*/c*.pem") << int(QRegExp::RegExp) << true << 0; + QTest::newRow("\"d*/c*.pem\" regexp der") << (testDataDir + "d*/c*.pem") << int(QRegExp::RegExp) << false << 0; + QTest::newRow("\"d*/c*.pem\" wildcard pem") << (testDataDir + "d*/c*.pem") << int(QRegExp::Wildcard) << true << 0; + QTest::newRow("\"d*/c*.pem\" wildcard der") << (testDataDir + "d*/c*.pem") << int(QRegExp::Wildcard) << false << 0; + QTest::newRow("\"c.*/c.*.pem\" fixed pem") << (testDataDir + "c.*/c.*.pem") << int(QRegExp::FixedString) << true << 0; + QTest::newRow("\"c.*/c.*.pem\" fixed der") << (testDataDir + "c.*/c.*.pem") << int(QRegExp::FixedString) << false << 0; + QTest::newRow("\"c.*/c.*.pem\" regexp pem") << (testDataDir + "c.*/c.*.pem") << int(QRegExp::RegExp) << true << 5; + QTest::newRow("\"c.*/c.*.pem\" regexp der") << (testDataDir + "c.*/c.*.pem") << int(QRegExp::RegExp) << false << 0; + QTest::newRow("\"c.*/c.*.pem\" wildcard pem") << (testDataDir + "c.*/c.*.pem") << int(QRegExp::Wildcard) << true << 0; + QTest::newRow("\"c.*/c.*.pem\" wildcard der") << (testDataDir + "c.*/c.*.pem") << int(QRegExp::Wildcard) << false << 0; + QTest::newRow("\"d.*/c.*.pem\" fixed pem") << (testDataDir + "d.*/c.*.pem") << int(QRegExp::FixedString) << true << 0; + QTest::newRow("\"d.*/c.*.pem\" fixed der") << (testDataDir + "d.*/c.*.pem") << int(QRegExp::FixedString) << false << 0; + QTest::newRow("\"d.*/c.*.pem\" regexp pem") << (testDataDir + "d.*/c.*.pem") << int(QRegExp::RegExp) << true << 0; + QTest::newRow("\"d.*/c.*.pem\" regexp der") << (testDataDir + "d.*/c.*.pem") << int(QRegExp::RegExp) << false << 0; + QTest::newRow("\"d.*/c.*.pem\" wildcard pem") << (testDataDir + "d.*/c.*.pem") << int(QRegExp::Wildcard) << true << 0; + QTest::newRow("\"d.*/c.*.pem\" wildcard der") << (testDataDir + "d.*/c.*.pem") << int(QRegExp::Wildcard) << false << 0; #ifdef Q_OS_LINUX - QTest::newRow("absolute path wildcard pem") << (testDataDir + "/certificates/*.pem") << int(QRegExp::Wildcard) << true << 7; + QTest::newRow("absolute path wildcard pem") << (testDataDir + "certificates/*.pem") << int(QRegExp::Wildcard) << true << 7; #endif - QTest::newRow("trailing-whitespace") << QString("more-certificates/trailing-whitespace.pem") << int(QRegExp::FixedString) << true << 1; - QTest::newRow("no-ending-newline") << QString("more-certificates/no-ending-newline.pem") << int(QRegExp::FixedString) << true << 1; - QTest::newRow("malformed-just-begin") << QString("more-certificates/malformed-just-begin.pem") << int(QRegExp::FixedString) << true << 0; - QTest::newRow("malformed-just-begin-no-newline") << QString("more-certificates/malformed-just-begin-no-newline.pem") << int(QRegExp::FixedString) << true << 0; + QTest::newRow("trailing-whitespace") << (testDataDir + "more-certificates/trailing-whitespace.pem") << int(QRegExp::FixedString) << true << 1; + QTest::newRow("no-ending-newline") << (testDataDir + "more-certificates/no-ending-newline.pem") << int(QRegExp::FixedString) << true << 1; + QTest::newRow("malformed-just-begin") << (testDataDir + "more-certificates/malformed-just-begin.pem") << int(QRegExp::FixedString) << true << 0; + QTest::newRow("malformed-just-begin-no-newline") << (testDataDir + "more-certificates/malformed-just-begin-no-newline.pem") << int(QRegExp::FixedString) << true << 0; } void tst_QSslCertificate::fromPath() @@ -722,7 +708,7 @@ void tst_QSslCertificate::certInfo() "dc:c2:eb:b7:bb:50:18:05:ba:ad:af:08:49:fe:98:63" "55:ba:e7:fb:95:5d:91"; - QSslCertificate cert = QSslCertificate::fromPath("certificates/cert.pem", QSsl::Pem, + QSslCertificate cert = QSslCertificate::fromPath(testDataDir + "certificates/cert.pem", QSsl::Pem, QRegExp::FixedString).first(); QVERIFY(!cert.isNull()); @@ -779,7 +765,7 @@ void tst_QSslCertificate::certInfo() void tst_QSslCertificate::certInfoQByteArray() { - QSslCertificate cert = QSslCertificate::fromPath("certificates/cert.pem", QSsl::Pem, + QSslCertificate cert = QSslCertificate::fromPath(testDataDir + "certificates/cert.pem", QSsl::Pem, QRegExp::FixedString).first(); QVERIFY(!cert.isNull()); @@ -828,11 +814,11 @@ void tst_QSslCertificate::task256066toPem() void tst_QSslCertificate::nulInCN() { -#ifdef QT_SECURETRANSPORT +#if defined(QT_SECURETRANSPORT) || defined(Q_OS_WINRT) QSKIP("Generic QSslCertificatePrivate fails this test"); #endif QList<QSslCertificate> certList = - QSslCertificate::fromPath(testDataDir + "/more-certificates/badguy-nul-cn.crt"); + QSslCertificate::fromPath(testDataDir + "more-certificates/badguy-nul-cn.crt"); QCOMPARE(certList.size(), 1); const QSslCertificate &cert = certList.at(0); @@ -847,11 +833,11 @@ void tst_QSslCertificate::nulInCN() void tst_QSslCertificate::nulInSan() { -#ifdef QT_SECURETRANSPORT +#if defined(QT_SECURETRANSPORT) || defined(Q_OS_WINRT) QSKIP("Generic QSslCertificatePrivate fails this test"); #endif QList<QSslCertificate> certList = - QSslCertificate::fromPath(testDataDir + "/more-certificates/badguy-nul-san.crt"); + QSslCertificate::fromPath(testDataDir + "more-certificates/badguy-nul-san.crt"); QCOMPARE(certList.size(), 1); const QSslCertificate &cert = certList.at(0); @@ -871,7 +857,7 @@ void tst_QSslCertificate::nulInSan() void tst_QSslCertificate::largeSerialNumber() { QList<QSslCertificate> certList = - QSslCertificate::fromPath(testDataDir + "/more-certificates/cert-large-serial-number.pem"); + QSslCertificate::fromPath(testDataDir + "more-certificates/cert-large-serial-number.pem"); QCOMPARE(certList.size(), 1); @@ -883,7 +869,7 @@ void tst_QSslCertificate::largeSerialNumber() void tst_QSslCertificate::largeExpirationDate() // QTBUG-12489 { QList<QSslCertificate> certList = - QSslCertificate::fromPath(testDataDir + "/more-certificates/cert-large-expiration-date.pem"); + QSslCertificate::fromPath(testDataDir + "more-certificates/cert-large-expiration-date.pem"); QCOMPARE(certList.size(), 1); @@ -896,8 +882,8 @@ void tst_QSslCertificate::largeExpirationDate() // QTBUG-12489 void tst_QSslCertificate::blacklistedCertificates() { - QList<QSslCertificate> blacklistedCerts = QSslCertificate::fromPath("more-certificates/blacklisted*.pem", QSsl::Pem, QRegExp::Wildcard); - QVERIFY2(blacklistedCerts.count() > 0, "Please run this test from the source directory"); + QList<QSslCertificate> blacklistedCerts = QSslCertificate::fromPath(testDataDir + "more-certificates/blacklisted*.pem", QSsl::Pem, QRegExp::Wildcard); + QVERIFY(blacklistedCerts.count() > 0); for (int a = 0; a < blacklistedCerts.count(); a++) { QVERIFY(blacklistedCerts.at(a).isBlacklisted()); } @@ -905,34 +891,34 @@ void tst_QSslCertificate::blacklistedCertificates() void tst_QSslCertificate::selfsignedCertificates() { - QVERIFY(QSslCertificate::fromPath(testDataDir + "/certificates/cert-ss.pem").first().isSelfSigned()); - QVERIFY(!QSslCertificate::fromPath(testDataDir + "/certificates/cert.pem").first().isSelfSigned()); + QVERIFY(QSslCertificate::fromPath(testDataDir + "certificates/cert-ss.pem").first().isSelfSigned()); + QVERIFY(!QSslCertificate::fromPath(testDataDir + "certificates/cert.pem").first().isSelfSigned()); QVERIFY(!QSslCertificate().isSelfSigned()); } void tst_QSslCertificate::toText() { QList<QSslCertificate> certList = - QSslCertificate::fromPath(testDataDir + "/more-certificates/cert-large-expiration-date.pem"); + QSslCertificate::fromPath(testDataDir + "more-certificates/cert-large-expiration-date.pem"); QCOMPARE(certList.size(), 1); const QSslCertificate &cert = certList.at(0); // Openssl's cert dump method changed slightly between 0.9.8, 1.0.0 and 1.01 versions, so we want it to match any output - QFile f098(testDataDir + "/more-certificates/cert-large-expiration-date.txt.0.9.8"); + QFile f098(testDataDir + "more-certificates/cert-large-expiration-date.txt.0.9.8"); QVERIFY(f098.open(QIODevice::ReadOnly | QFile::Text)); QByteArray txt098 = f098.readAll(); - QFile f100(testDataDir + "/more-certificates/cert-large-expiration-date.txt.1.0.0"); + QFile f100(testDataDir + "more-certificates/cert-large-expiration-date.txt.1.0.0"); QVERIFY(f100.open(QIODevice::ReadOnly | QFile::Text)); QByteArray txt100 = f100.readAll(); - QFile f101(testDataDir + "/more-certificates/cert-large-expiration-date.txt.1.0.1"); + QFile f101(testDataDir + "more-certificates/cert-large-expiration-date.txt.1.0.1"); QVERIFY(f101.open(QIODevice::ReadOnly | QFile::Text)); QByteArray txt101 = f101.readAll(); - QFile f101c(testDataDir + "/more-certificates/cert-large-expiration-date.txt.1.0.1c"); + QFile f101c(testDataDir + "more-certificates/cert-large-expiration-date.txt.1.0.1c"); QVERIFY(f101c.open(QIODevice::ReadOnly | QFile::Text)); QByteArray txt101c = f101c.readAll(); @@ -950,8 +936,8 @@ void tst_QSslCertificate::toText() void tst_QSslCertificate::multipleCommonNames() { QList<QSslCertificate> certList = - QSslCertificate::fromPath(testDataDir + "/more-certificates/test-cn-two-cns-cert.pem"); - QVERIFY2(certList.count() > 0, "Please run this test from the source directory"); + QSslCertificate::fromPath(testDataDir + "more-certificates/test-cn-two-cns-cert.pem"); + QVERIFY(certList.count() > 0); QStringList commonNames = certList[0].subjectInfo(QSslCertificate::CommonName); QVERIFY(commonNames.contains(QString("www.example.com"))); @@ -961,15 +947,15 @@ void tst_QSslCertificate::multipleCommonNames() void tst_QSslCertificate::subjectAndIssuerAttributes() { QList<QSslCertificate> certList = - QSslCertificate::fromPath(testDataDir + "/more-certificates/test-cn-with-drink-cert.pem"); - QVERIFY2(certList.count() > 0, "Please run this test from the source directory"); + QSslCertificate::fromPath(testDataDir + "more-certificates/test-cn-with-drink-cert.pem"); + QVERIFY(certList.count() > 0); QList<QByteArray> attributes = certList[0].subjectInfoAttributes(); QVERIFY(attributes.contains(QByteArray("favouriteDrink"))); attributes.clear(); - certList = QSslCertificate::fromPath(testDataDir + "/more-certificates/natwest-banking.pem"); - QVERIFY2(certList.count() > 0, "Please run this test from the source directory"); + certList = QSslCertificate::fromPath(testDataDir + "more-certificates/natwest-banking.pem"); + QVERIFY(certList.count() > 0); attributes = certList[0].subjectInfoAttributes(); QVERIFY(attributes.contains(QByteArray("1.3.6.1.4.1.311.60.2.1.3"))); @@ -999,17 +985,17 @@ void tst_QSslCertificate::verify() errors.clear(); // Verify a valid cert signed by a CA - QList<QSslCertificate> caCerts = QSslCertificate::fromPath(testDataDir + "/verify-certs/cacert.pem"); + QList<QSslCertificate> caCerts = QSslCertificate::fromPath(testDataDir + "verify-certs/cacert.pem"); QSslSocket::addDefaultCaCertificate(caCerts.first()); - toVerify = QSslCertificate::fromPath(testDataDir + "/verify-certs/test-ocsp-good-cert.pem"); + toVerify = QSslCertificate::fromPath(testDataDir + "verify-certs/test-ocsp-good-cert.pem"); errors = QSslCertificate::verify(toVerify); VERIFY_VERBOSE(errors.count() == 0); errors.clear(); // Test a blacklisted certificate - toVerify = QSslCertificate::fromPath(testDataDir + "/verify-certs/test-addons-mozilla-org-cert.pem"); + toVerify = QSslCertificate::fromPath(testDataDir + "verify-certs/test-addons-mozilla-org-cert.pem"); errors = QSslCertificate::verify(toVerify); bool foundBlack = false; foreach (const QSslError &error, errors) { @@ -1022,7 +1008,7 @@ void tst_QSslCertificate::verify() errors.clear(); // This one is expired and untrusted - toVerify = QSslCertificate::fromPath(testDataDir + "/more-certificates/cert-large-serial-number.pem"); + toVerify = QSslCertificate::fromPath(testDataDir + "more-certificates/cert-large-serial-number.pem"); errors = QSslCertificate::verify(toVerify); VERIFY_VERBOSE(errors.contains(QSslError(QSslError::SelfSignedCertificate, toVerify[0]))); VERIFY_VERBOSE(errors.contains(QSslError(QSslError::CertificateExpired, toVerify[0]))); @@ -1030,15 +1016,15 @@ void tst_QSslCertificate::verify() toVerify.clear(); // This one is signed by a valid cert, but the signer is not a valid CA - toVerify << QSslCertificate::fromPath(testDataDir + "/verify-certs/test-intermediate-not-ca-cert.pem").first(); - toVerify << QSslCertificate::fromPath(testDataDir + "/verify-certs/test-ocsp-good-cert.pem").first(); + toVerify << QSslCertificate::fromPath(testDataDir + "verify-certs/test-intermediate-not-ca-cert.pem").first(); + toVerify << QSslCertificate::fromPath(testDataDir + "verify-certs/test-ocsp-good-cert.pem").first(); errors = QSslCertificate::verify(toVerify); VERIFY_VERBOSE(errors.contains(QSslError(QSslError::InvalidCaCertificate, toVerify[1]))); toVerify.clear(); // This one is signed by a valid cert, and the signer is a valid CA - toVerify << QSslCertificate::fromPath(testDataDir + "/verify-certs/test-intermediate-is-ca-cert.pem").first(); - toVerify << QSslCertificate::fromPath(testDataDir + "/verify-certs/test-intermediate-ca-cert.pem").first(); + toVerify << QSslCertificate::fromPath(testDataDir + "verify-certs/test-intermediate-is-ca-cert.pem").first(); + toVerify << QSslCertificate::fromPath(testDataDir + "verify-certs/test-intermediate-ca-cert.pem").first(); errors = QSslCertificate::verify(toVerify); VERIFY_VERBOSE(errors.count() == 0); @@ -1068,8 +1054,8 @@ QString tst_QSslCertificate::toString(const QList<QSslError>& errors) void tst_QSslCertificate::extensions() { QList<QSslCertificate> certList = - QSslCertificate::fromPath(testDataDir + "/more-certificates/natwest-banking.pem"); - QVERIFY2(certList.count() > 0, "Please run this test from the source directory"); + QSslCertificate::fromPath(testDataDir + "more-certificates/natwest-banking.pem"); + QVERIFY(certList.count() > 0); QSslCertificate cert = certList[0]; QList<QSslCertificateExtension> extensions = cert.extensions(); @@ -1166,8 +1152,8 @@ void tst_QSslCertificate::extensions() void tst_QSslCertificate::extensionsCritical() { QList<QSslCertificate> certList = - QSslCertificate::fromPath(testDataDir + "/verify-certs/test-addons-mozilla-org-cert.pem"); - QVERIFY2(certList.count() > 0, "Please run this test from the source directory"); + QSslCertificate::fromPath(testDataDir + "verify-certs/test-addons-mozilla-org-cert.pem"); + QVERIFY(certList.count() > 0); QSslCertificate cert = certList[0]; QList<QSslCertificateExtension> extensions = cert.extensions(); @@ -1249,7 +1235,7 @@ void tst_QSslCertificate::threadSafeConstMethods() if (!QSslSocket::supportsSsl()) return; - QByteArray encoded = readFile(testDataDir + "/certificates/cert.pem"); + QByteArray encoded = readFile(testDataDir + "certificates/cert.pem"); QSslCertificate certificate(encoded); QVERIFY(!certificate.isNull()); @@ -1287,12 +1273,12 @@ void tst_QSslCertificate::version_data() QTest::newRow("null certificate") << QSslCertificate() << QByteArray(); QList<QSslCertificate> certs; - certs << QSslCertificate::fromPath(testDataDir + "/verify-certs/test-ocsp-good-cert.pem"); + certs << QSslCertificate::fromPath(testDataDir + "verify-certs/test-ocsp-good-cert.pem"); QTest::newRow("v3 certificate") << certs.first() << QByteArrayLiteral("3"); certs.clear(); - certs << QSslCertificate::fromPath(testDataDir + "/certificates/cert.pem"); + certs << QSslCertificate::fromPath(testDataDir + "certificates/cert.pem"); QTest::newRow("v1 certificate") << certs.first() << QByteArrayLiteral("1"); } @@ -1314,7 +1300,7 @@ void tst_QSslCertificate::pkcs12() return; } - QFile f(testDataDir + QLatin1String("/pkcs12/leaf.p12")); + QFile f(testDataDir + QLatin1String("pkcs12/leaf.p12")); bool ok = f.open(QIODevice::ReadOnly); QVERIFY(ok); @@ -1329,12 +1315,12 @@ void tst_QSslCertificate::pkcs12() QVERIFY(ok); f.close(); - QList<QSslCertificate> leafCert = QSslCertificate::fromPath(testDataDir + QLatin1String("/pkcs12/leaf.crt")); + QList<QSslCertificate> leafCert = QSslCertificate::fromPath(testDataDir + QLatin1String("pkcs12/leaf.crt")); QVERIFY(!leafCert.isEmpty()); QCOMPARE(cert, leafCert.first()); - QFile f2(testDataDir + QLatin1String("/pkcs12/leaf.key")); + QFile f2(testDataDir + QLatin1String("pkcs12/leaf.key")); ok = f2.open(QIODevice::ReadOnly); QVERIFY(ok); @@ -1344,7 +1330,7 @@ void tst_QSslCertificate::pkcs12() QVERIFY(!leafKey.isNull()); QCOMPARE(key, leafKey); - QList<QSslCertificate> caCert = QSslCertificate::fromPath(testDataDir + QLatin1String("/pkcs12/inter.crt")); + QList<QSslCertificate> caCert = QSslCertificate::fromPath(testDataDir + QLatin1String("pkcs12/inter.crt")); QVERIFY(!caCert.isEmpty()); QVERIFY(!caCerts.isEmpty()); @@ -1352,7 +1338,7 @@ void tst_QSslCertificate::pkcs12() QCOMPARE(caCerts, caCert); // QTBUG-62335 - Fail (found no private key) but don't crash: - QFile nocert(testDataDir + QLatin1String("/pkcs12/leaf-nokey.p12")); + QFile nocert(testDataDir + QLatin1String("pkcs12/leaf-nokey.p12")); ok = nocert.open(QIODevice::ReadOnly); QVERIFY(ok); QTest::ignoreMessage(QtWarningMsg, "Unable to convert private key"); diff --git a/tests/auto/network/ssl/qsslkey/keys/ec-pri-256-brainpoolP256r1.der b/tests/auto/network/ssl/qsslkey/keys/ec-pri-256-brainpoolP256r1.der Binary files differnew file mode 100644 index 0000000000..ff5a631ef2 --- /dev/null +++ b/tests/auto/network/ssl/qsslkey/keys/ec-pri-256-brainpoolP256r1.der diff --git a/tests/auto/network/ssl/qsslkey/keys/ec-pri-256-brainpoolP256r1.pem b/tests/auto/network/ssl/qsslkey/keys/ec-pri-256-brainpoolP256r1.pem new file mode 100644 index 0000000000..b9d7290f1c --- /dev/null +++ b/tests/auto/network/ssl/qsslkey/keys/ec-pri-256-brainpoolP256r1.pem @@ -0,0 +1,5 @@ +-----BEGIN EC PRIVATE KEY----- +MHgCAQEEICkGJVTQ1CxAApDzCDX4SqwtWJ8maYHgk9JQ+TI3vs2poAsGCSskAwMC +CAEBB6FEA0IABCAhr230hmTi9SziKN7ZJOE2QjuI0FNtL1yZgtRPjNz/a4a+vG3d +WNAvN+7QWatJGUk1Z5weeDU0D9M6PnRRSnc= +-----END EC PRIVATE KEY----- diff --git a/tests/auto/network/ssl/qsslkey/keys/ec-pri-384-brainpoolP384r1.der b/tests/auto/network/ssl/qsslkey/keys/ec-pri-384-brainpoolP384r1.der Binary files differnew file mode 100644 index 0000000000..697ca6bc4a --- /dev/null +++ b/tests/auto/network/ssl/qsslkey/keys/ec-pri-384-brainpoolP384r1.der diff --git a/tests/auto/network/ssl/qsslkey/keys/ec-pri-384-brainpoolP384r1.pem b/tests/auto/network/ssl/qsslkey/keys/ec-pri-384-brainpoolP384r1.pem new file mode 100644 index 0000000000..37e9bf5eb7 --- /dev/null +++ b/tests/auto/network/ssl/qsslkey/keys/ec-pri-384-brainpoolP384r1.pem @@ -0,0 +1,6 @@ +-----BEGIN EC PRIVATE KEY----- +MIGoAgEBBDAJ0lL3eojQpq85spC6f0/mf8o2AqwDs8niN9lw2FmhEaR7sV4iX8Y6 +rKr1unYULMagCwYJKyQDAwIIAQELoWQDYgAES6Rp6pXKoyMaGzpKXRdL/JndNm9J +L9VkLzZDlnTbleLjtghdGi5SZHGRvBNLZoGLYKOpJLoG2nCRJ6Ci3EHxlKtw6ytz +Fk0YKn2UAcPefyUrL0HajfRIJkFmVGRavKGx +-----END EC PRIVATE KEY----- diff --git a/tests/auto/network/ssl/qsslkey/keys/ec-pri-512-brainpoolP512r1.der b/tests/auto/network/ssl/qsslkey/keys/ec-pri-512-brainpoolP512r1.der Binary files differnew file mode 100644 index 0000000000..39e8672124 --- /dev/null +++ b/tests/auto/network/ssl/qsslkey/keys/ec-pri-512-brainpoolP512r1.der diff --git a/tests/auto/network/ssl/qsslkey/keys/ec-pri-512-brainpoolP512r1.pem b/tests/auto/network/ssl/qsslkey/keys/ec-pri-512-brainpoolP512r1.pem new file mode 100644 index 0000000000..a5d848f2f9 --- /dev/null +++ b/tests/auto/network/ssl/qsslkey/keys/ec-pri-512-brainpoolP512r1.pem @@ -0,0 +1,7 @@ +-----BEGIN EC PRIVATE KEY----- +MIHaAgEBBECf7ioHynYtlc1ICFXTqrbGh/aOhflko3J8rQeQ2mBi6ozxkmpEDgRW +cR6u0QeSCCAEacHJd0kC3hjkA4piB5KroAsGCSskAwMCCAEBDaGBhQOBggAEWvov +CfjIdPUfC70DNETCfPjIqedVswV7KbM03DdRXqzBREZJb0nwkXrP/wMj+vWEBMui +tfLBKd9s0vq4xgtEMCagNRNwwuFYzA6vfLzNTPsSCS1phKU1NFqm2dgGiSL+MBg0 +Wf+1Epfcdm9dBU+8IzTx1L+yRheWYohN2okh5Q8= +-----END EC PRIVATE KEY----- diff --git a/tests/auto/network/ssl/qsslkey/keys/ec-pub-256-brainpoolP256r1.der b/tests/auto/network/ssl/qsslkey/keys/ec-pub-256-brainpoolP256r1.der Binary files differnew file mode 100644 index 0000000000..ee7abb84bd --- /dev/null +++ b/tests/auto/network/ssl/qsslkey/keys/ec-pub-256-brainpoolP256r1.der diff --git a/tests/auto/network/ssl/qsslkey/keys/ec-pub-256-brainpoolP256r1.pem b/tests/auto/network/ssl/qsslkey/keys/ec-pub-256-brainpoolP256r1.pem new file mode 100644 index 0000000000..d3691cba57 --- /dev/null +++ b/tests/auto/network/ssl/qsslkey/keys/ec-pub-256-brainpoolP256r1.pem @@ -0,0 +1,4 @@ +-----BEGIN PUBLIC KEY----- +MFowFAYHKoZIzj0CAQYJKyQDAwIIAQEHA0IABCAhr230hmTi9SziKN7ZJOE2QjuI +0FNtL1yZgtRPjNz/a4a+vG3dWNAvN+7QWatJGUk1Z5weeDU0D9M6PnRRSnc= +-----END PUBLIC KEY----- diff --git a/tests/auto/network/ssl/qsslkey/keys/ec-pub-384-brainpoolP384r1.der b/tests/auto/network/ssl/qsslkey/keys/ec-pub-384-brainpoolP384r1.der Binary files differnew file mode 100644 index 0000000000..bf07791c3c --- /dev/null +++ b/tests/auto/network/ssl/qsslkey/keys/ec-pub-384-brainpoolP384r1.der diff --git a/tests/auto/network/ssl/qsslkey/keys/ec-pub-384-brainpoolP384r1.pem b/tests/auto/network/ssl/qsslkey/keys/ec-pub-384-brainpoolP384r1.pem new file mode 100644 index 0000000000..57d0108830 --- /dev/null +++ b/tests/auto/network/ssl/qsslkey/keys/ec-pub-384-brainpoolP384r1.pem @@ -0,0 +1,5 @@ +-----BEGIN PUBLIC KEY----- +MHowFAYHKoZIzj0CAQYJKyQDAwIIAQELA2IABEukaeqVyqMjGhs6Sl0XS/yZ3TZv +SS/VZC82Q5Z025Xi47YIXRouUmRxkbwTS2aBi2CjqSS6BtpwkSegotxB8ZSrcOsr +cxZNGCp9lAHD3n8lKy9B2o30SCZBZlRkWryhsQ== +-----END PUBLIC KEY----- diff --git a/tests/auto/network/ssl/qsslkey/keys/ec-pub-512-brainpoolP512r1.der b/tests/auto/network/ssl/qsslkey/keys/ec-pub-512-brainpoolP512r1.der Binary files differnew file mode 100644 index 0000000000..eac51290d9 --- /dev/null +++ b/tests/auto/network/ssl/qsslkey/keys/ec-pub-512-brainpoolP512r1.der diff --git a/tests/auto/network/ssl/qsslkey/keys/ec-pub-512-brainpoolP512r1.pem b/tests/auto/network/ssl/qsslkey/keys/ec-pub-512-brainpoolP512r1.pem new file mode 100644 index 0000000000..66c58e23af --- /dev/null +++ b/tests/auto/network/ssl/qsslkey/keys/ec-pub-512-brainpoolP512r1.pem @@ -0,0 +1,6 @@ +-----BEGIN PUBLIC KEY----- +MIGbMBQGByqGSM49AgEGCSskAwMCCAEBDQOBggAEWvovCfjIdPUfC70DNETCfPjI +qedVswV7KbM03DdRXqzBREZJb0nwkXrP/wMj+vWEBMuitfLBKd9s0vq4xgtEMCag +NRNwwuFYzA6vfLzNTPsSCS1phKU1NFqm2dgGiSL+MBg0Wf+1Epfcdm9dBU+8IzTx +1L+yRheWYohN2okh5Q8= +-----END PUBLIC KEY----- diff --git a/tests/auto/network/ssl/qsslkey/keys/genkeys.sh b/tests/auto/network/ssl/qsslkey/keys/genkeys.sh index b6ef997b0d..7fb15e91ee 100755 --- a/tests/auto/network/ssl/qsslkey/keys/genkeys.sh +++ b/tests/auto/network/ssl/qsslkey/keys/genkeys.sh @@ -71,9 +71,7 @@ done #--- EC ---------------------------------------------------------------------------- # Note: EC will be generated with pre-defined curves. You can check supported curves # with openssl ecparam -list_curves. -# If OpenSSL 1.0.2 is available brainpool should be added! -# brainpoolP256r1 brainpoolP384r1 brainpoolP512r1 -for curve in secp224r1 prime256v1 secp384r1 +for curve in secp224r1 prime256v1 secp384r1 brainpoolP256r1 brainpoolP384r1 brainpoolP512r1 do size=`tr -cd 0-9 <<< $curve` size=${size::-1} # remove last number of curve name as we need bit size only diff --git a/tests/auto/network/ssl/qsslkey/qsslkey.pro b/tests/auto/network/ssl/qsslkey/qsslkey.pro index 8c3877631a..0074513878 100644 --- a/tests/auto/network/ssl/qsslkey/qsslkey.pro +++ b/tests/auto/network/ssl/qsslkey/qsslkey.pro @@ -9,4 +9,5 @@ qtConfig(private_tests) { TARGET = tst_qsslkey -TESTDATA += keys/* rsa-without-passphrase.pem rsa-with-passphrase.pem +TESTDATA += keys/* \ + rsa-*.pem diff --git a/tests/auto/network/ssl/qsslkey/tst_qsslkey.cpp b/tests/auto/network/ssl/qsslkey/tst_qsslkey.cpp index 0112af4ed7..27d92db3bf 100644 --- a/tests/auto/network/ssl/qsslkey/tst_qsslkey.cpp +++ b/tests/auto/network/ssl/qsslkey/tst_qsslkey.cpp @@ -106,8 +106,10 @@ void tst_QSslKey::initTestCase() testDataDir = QFileInfo(QFINDTESTDATA("rsa-without-passphrase.pem")).absolutePath(); if (testDataDir.isEmpty()) testDataDir = QCoreApplication::applicationDirPath(); + if (!testDataDir.endsWith(QLatin1String("/"))) + testDataDir += QLatin1String("/"); - QDir dir(testDataDir + "/keys"); + QDir dir(testDataDir + "keys"); QFileInfoList fileInfoList = dir.entryInfoList(QDir::Files | QDir::Readable); QRegExp rx(QLatin1String("^(rsa|dsa|ec)-(pub|pri)-(\\d+)-?\\w*\\.(pem|der)$")); foreach (QFileInfo fileInfo, fileInfoList) { @@ -392,9 +394,9 @@ void tst_QSslKey::passphraseChecks_data() { QTest::addColumn<QString>("fileName"); - QTest::newRow("DES") << QString(testDataDir + "/rsa-with-passphrase-des.pem"); - QTest::newRow("3DES") << QString(testDataDir + "/rsa-with-passphrase-3des.pem"); - QTest::newRow("RC2") << QString(testDataDir + "/rsa-with-passphrase-rc2.pem"); + QTest::newRow("DES") << (testDataDir + "rsa-with-passphrase-des.pem"); + QTest::newRow("3DES") << (testDataDir + "rsa-with-passphrase-3des.pem"); + QTest::newRow("RC2") << (testDataDir + "rsa-with-passphrase-rc2.pem"); } void tst_QSslKey::passphraseChecks() @@ -440,7 +442,7 @@ void tst_QSslKey::passphraseChecks() void tst_QSslKey::noPassphraseChecks() { // be sure and check a key without passphrase too - QString fileName(testDataDir + "/rsa-without-passphrase.pem"); + QString fileName(testDataDir + "rsa-without-passphrase.pem"); QFile keyFile(fileName); { if (!keyFile.isOpen()) diff --git a/tests/auto/network/ssl/qsslsocket/qsslsocket.pro b/tests/auto/network/ssl/qsslsocket/qsslsocket.pro index 4ccf0f24b0..f45857b02d 100644 --- a/tests/auto/network/ssl/qsslsocket/qsslsocket.pro +++ b/tests/auto/network/ssl/qsslsocket/qsslsocket.pro @@ -14,6 +14,8 @@ win32 { } } +TESTDATA += certs + DEFINES += SRCDIR=\\\"$$PWD/\\\" requires(qtConfig(private_tests)) diff --git a/tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp b/tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp index 4de77a9080..01a7465564 100644 --- a/tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp +++ b/tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp @@ -278,7 +278,10 @@ private: #endif // QT_NO_SSL private: static int loopLevel; +public: + static QString testDataDir; }; +QString tst_QSslSocket::testDataDir; #ifndef QT_NO_SSL #ifndef QT_NO_OPENSSL @@ -332,6 +335,11 @@ void tst_QSslSocket::initTestCase_data() void tst_QSslSocket::initTestCase() { + testDataDir = QFileInfo(QFINDTESTDATA("certs")).absolutePath(); + if (testDataDir.isEmpty()) + testDataDir = QCoreApplication::applicationDirPath(); + if (!testDataDir.endsWith(QLatin1String("/"))) + testDataDir += QLatin1String("/"); #ifndef QT_NO_SSL qDebug("Using SSL library %s (%ld)", qPrintable(QSslSocket::sslLibraryVersionString()), @@ -705,7 +713,7 @@ void tst_QSslSocket::connectToHostEncrypted() QSslSocketPtr socket = newSocket(); this->socket = socket.data(); - QVERIFY(socket->addCaCertificates(QLatin1String(SRCDIR "certs/qt-test-server-cacert.pem"))); + QVERIFY(socket->addCaCertificates(testDataDir + "certs/qt-test-server-cacert.pem")); #ifdef QSSLSOCKET_CERTUNTRUSTED_WORKAROUND connect(socket.data(), SIGNAL(sslErrors(QList<QSslError>)), this, SLOT(untrustedWorkaroundSlot(QList<QSslError>))); @@ -739,7 +747,7 @@ void tst_QSslSocket::connectToHostEncryptedWithVerificationPeerName() QSslSocketPtr socket = newSocket(); this->socket = socket.data(); - socket->addCaCertificates(QLatin1String(SRCDIR "certs/qt-test-server-cacert.pem")); + socket->addCaCertificates(testDataDir + "certs/qt-test-server-cacert.pem"); #ifdef QSSLSOCKET_CERTUNTRUSTED_WORKAROUND connect(socket.data(), SIGNAL(sslErrors(QList<QSslError>)), this, SLOT(untrustedWorkaroundSlot(QList<QSslError>))); @@ -803,10 +811,10 @@ void tst_QSslSocket::localCertificate() // values. This test should just run the codepath inside qsslsocket_openssl.cpp QSslSocketPtr socket = newSocket(); - QList<QSslCertificate> localCert = QSslCertificate::fromPath(SRCDIR "certs/qt-test-server-cacert.pem"); + QList<QSslCertificate> localCert = QSslCertificate::fromPath(testDataDir + "certs/qt-test-server-cacert.pem"); socket->setCaCertificates(localCert); - socket->setLocalCertificate(QLatin1String(SRCDIR "certs/fluke.cert")); - socket->setPrivateKey(QLatin1String(SRCDIR "certs/fluke.key")); + socket->setLocalCertificate(testDataDir + "certs/fluke.cert"); + socket->setPrivateKey(testDataDir + "certs/fluke.key"); socket->connectToHostEncrypted(QtNetworkSettings::serverName(), 443); QFETCH_GLOBAL(bool, setProxy); @@ -832,7 +840,7 @@ void tst_QSslSocket::peerCertificateChain() QSslSocketPtr socket = newSocket(); this->socket = socket.data(); - QList<QSslCertificate> caCertificates = QSslCertificate::fromPath(QLatin1String(SRCDIR "certs/qt-test-server-cacert.pem")); + QList<QSslCertificate> caCertificates = QSslCertificate::fromPath(testDataDir + "certs/qt-test-server-cacert.pem"); QCOMPARE(caCertificates.count(), 1); socket->addCaCertificates(caCertificates); #ifdef QSSLSOCKET_CERTUNTRUSTED_WORKAROUND @@ -895,7 +903,7 @@ void tst_QSslSocket::privateKeyOpaque() if (!QSslSocket::supportsSsl()) return; - QFile file(SRCDIR "certs/fluke.key"); + QFile file(testDataDir + "certs/fluke.key"); QVERIFY(file.open(QIODevice::ReadOnly)); QSslKey key(file.readAll(), QSsl::Rsa, QSsl::Pem, QSsl::PrivateKey); QVERIFY(!key.isNull()); @@ -908,9 +916,9 @@ void tst_QSslSocket::privateKeyOpaque() // values. This test should just run the codepath inside qsslsocket_openssl.cpp QSslSocketPtr socket = newSocket(); - QList<QSslCertificate> localCert = QSslCertificate::fromPath(SRCDIR "certs/qt-test-server-cacert.pem"); + QList<QSslCertificate> localCert = QSslCertificate::fromPath(testDataDir + "certs/qt-test-server-cacert.pem"); socket->setCaCertificates(localCert); - socket->setLocalCertificate(QLatin1String(SRCDIR "certs/fluke.cert")); + socket->setLocalCertificate(testDataDir + "certs/fluke.cert"); socket->setPrivateKey(QSslKey(reinterpret_cast<Qt::HANDLE>(pkey))); socket->setPeerVerifyMode(QSslSocket::QueryPeer); @@ -928,7 +936,7 @@ void tst_QSslSocket::protocol() QSslSocketPtr socket = newSocket(); this->socket = socket.data(); - QList<QSslCertificate> certs = QSslCertificate::fromPath(SRCDIR "certs/qt-test-server-cacert.pem"); + QList<QSslCertificate> certs = QSslCertificate::fromPath(testDataDir + "certs/qt-test-server-cacert.pem"); socket->setCaCertificates(certs); #ifdef QSSLSOCKET_CERTUNTRUSTED_WORKAROUND @@ -1075,8 +1083,8 @@ class SslServer : public QTcpServer { Q_OBJECT public: - SslServer(const QString &keyFile = SRCDIR "certs/fluke.key", - const QString &certFile = SRCDIR "certs/fluke.cert", + SslServer(const QString &keyFile = tst_QSslSocket::testDataDir + "certs/fluke.key", + const QString &certFile = tst_QSslSocket::testDataDir + "certs/fluke.cert", const QString &interFile = QString()) : socket(0), config(QSslConfiguration::defaultConfiguration()), @@ -1167,6 +1175,9 @@ protected slots: void tst_QSslSocket::protocolServerSide_data() { +#ifdef Q_OS_WINRT + QSKIP("Server-side encryption is not implemented on WinRT."); +#endif QTest::addColumn<QSsl::SslProtocol>("serverProtocol"); QTest::addColumn<QSsl::SslProtocol>("clientProtocol"); QTest::addColumn<bool>("works"); @@ -1347,6 +1358,9 @@ void tst_QSslSocket::protocolServerSide() void tst_QSslSocket::serverCipherPreferences() { +#ifdef Q_OS_WINRT + QSKIP("Server-side encryption is not implemented on WinRT."); +#endif if (!QSslSocket::supportsSsl()) { qWarning("SSL not supported, skipping test"); return; @@ -1422,7 +1436,7 @@ void tst_QSslSocket::setCaCertificates() QSslSocket socket; QCOMPARE(socket.caCertificates(), QSslSocket::defaultCaCertificates()); - socket.setCaCertificates(QSslCertificate::fromPath(SRCDIR "certs/qt-test-server-cacert.pem")); + socket.setCaCertificates(QSslCertificate::fromPath(testDataDir + "certs/qt-test-server-cacert.pem")); QCOMPARE(socket.caCertificates().size(), 1); socket.setCaCertificates(socket.defaultCaCertificates()); QCOMPARE(socket.caCertificates(), QSslSocket::defaultCaCertificates()); @@ -1438,7 +1452,7 @@ void tst_QSslSocket::localCertificateChain() return; QSslSocket socket; - socket.setLocalCertificate(QLatin1String(SRCDIR "certs/fluke.cert")); + socket.setLocalCertificate(testDataDir + "certs/fluke.cert"); QSslConfiguration conf = socket.sslConfiguration(); QList<QSslCertificate> chain = conf.localCertificateChain(); @@ -1449,6 +1463,9 @@ void tst_QSslSocket::localCertificateChain() void tst_QSslSocket::setLocalCertificateChain() { +#ifdef Q_OS_WINRT + QSKIP("Server-side encryption is not implemented on WinRT."); +#endif if (!QSslSocket::supportsSsl()) return; @@ -1456,9 +1473,9 @@ void tst_QSslSocket::setLocalCertificateChain() if (setProxy) return; - SslServer server(QLatin1String(SRCDIR "certs/leaf.key"), - QLatin1String(SRCDIR "certs/leaf.crt"), - QLatin1String(SRCDIR "certs/inter.crt")); + SslServer server(testDataDir + "certs/leaf.key", + testDataDir + "certs/leaf.crt", + testDataDir + "certs/inter.crt"); QVERIFY(server.listen()); @@ -1486,6 +1503,9 @@ void tst_QSslSocket::setPrivateKey() void tst_QSslSocket::setSocketDescriptor() { +#ifdef Q_OS_WINRT + QSKIP("Server-side encryption is not implemented on WinRT."); +#endif if (!QSslSocket::supportsSsl()) return; @@ -1524,7 +1544,7 @@ void tst_QSslSocket::setSslConfiguration_data() QTest::newRow("empty") << QSslConfiguration() << false; QSslConfiguration conf = QSslConfiguration::defaultConfiguration(); QTest::newRow("default") << conf << false; // does not contain test server cert - QList<QSslCertificate> testServerCert = QSslCertificate::fromPath(SRCDIR "certs/qt-test-server-cacert.pem"); + QList<QSslCertificate> testServerCert = QSslCertificate::fromPath(testDataDir + "certs/qt-test-server-cacert.pem"); conf.setCaCertificates(testServerCert); QTest::newRow("set-root-cert") << conf << true; conf.setProtocol(QSsl::SecureProtocols); @@ -1627,7 +1647,7 @@ void tst_QSslSocket::addDefaultCaCertificate() // Reset the global CA chain QSslSocket::setDefaultCaCertificates(QSslSocket::systemCaCertificates()); - QList<QSslCertificate> flukeCerts = QSslCertificate::fromPath(SRCDIR "certs/qt-test-server-cacert.pem"); + QList<QSslCertificate> flukeCerts = QSslCertificate::fromPath(testDataDir + "certs/qt-test-server-cacert.pem"); QCOMPARE(flukeCerts.size(), 1); QList<QSslCertificate> globalCerts = QSslSocket::defaultCaCertificates(); QVERIFY(!globalCerts.contains(flukeCerts.first())); @@ -1739,7 +1759,7 @@ void tst_QSslSocket::isMatchingHostname() { // with normalization: (the certificate has *.SCHÄUFELE.DE as a CN) // openssl req -x509 -nodes -subj "/CN=*.SCHÄUFELE.DE" -newkey rsa:512 -keyout /dev/null -out xn--schufele-2za.crt - QList<QSslCertificate> certs = QSslCertificate::fromPath(SRCDIR "certs/xn--schufele-2za.crt"); + QList<QSslCertificate> certs = QSslCertificate::fromPath(testDataDir + "certs/xn--schufele-2za.crt"); QVERIFY(!certs.isEmpty()); QSslCertificate cert = certs.first(); @@ -1795,7 +1815,7 @@ protected: socket->ignoreSslErrors(); // Only set the certificate - QList<QSslCertificate> localCert = QSslCertificate::fromPath(SRCDIR "certs/fluke.cert"); + QList<QSslCertificate> localCert = QSslCertificate::fromPath(tst_QSslSocket::testDataDir + "certs/fluke.cert"); QVERIFY(!localCert.isEmpty()); QVERIFY(!localCert.first().isNull()); socket->setLocalCertificate(localCert.first()); @@ -1808,6 +1828,9 @@ protected: void tst_QSslSocket::setEmptyKey() { +#ifdef Q_OS_WINRT + QSKIP("Server-side encryption is not implemented on WinRT."); +#endif if (!QSslSocket::supportsSsl()) return; @@ -1829,6 +1852,9 @@ void tst_QSslSocket::setEmptyKey() void tst_QSslSocket::spontaneousWrite() { +#ifdef Q_OS_WINRT + QSKIP("Server-side encryption is not implemented on WinRT."); +#endif QFETCH_GLOBAL(bool, setProxy); if (setProxy) return; @@ -1874,6 +1900,9 @@ void tst_QSslSocket::spontaneousWrite() void tst_QSslSocket::setReadBufferSize() { +#ifdef Q_OS_WINRT + QSKIP("Server-side encryption is not implemented on WinRT."); +#endif QFETCH_GLOBAL(bool, setProxy); if (setProxy) return; @@ -2024,13 +2053,14 @@ protected: socket = new QSslSocket(this); connect(socket, SIGNAL(sslErrors(QList<QSslError>)), this, SLOT(ignoreErrorSlot())); - QFile file(SRCDIR "certs/fluke.key"); + QFile file(tst_QSslSocket::testDataDir + "certs/fluke.key"); QVERIFY(file.open(QIODevice::ReadOnly)); QSslKey key(file.readAll(), QSsl::Rsa, QSsl::Pem, QSsl::PrivateKey); QVERIFY(!key.isNull()); socket->setPrivateKey(key); - QList<QSslCertificate> localCert = QSslCertificate::fromPath(SRCDIR "certs/fluke.cert"); + QList<QSslCertificate> localCert = QSslCertificate::fromPath(tst_QSslSocket::testDataDir + + "certs/fluke.cert"); QVERIFY(!localCert.isEmpty()); QVERIFY(!localCert.first().isNull()); socket->setLocalCertificate(localCert.first()); @@ -2134,6 +2164,9 @@ void tst_QSslSocket::waitForMinusOne() #ifdef Q_OS_WIN QSKIP("QTBUG-24451 - indefinite wait may hang"); #endif +#ifdef Q_OS_WINRT // This can stay in case the one above goes away + QSKIP("Server-side encryption is not implemented on WinRT."); +#endif QFETCH_GLOBAL(bool, setProxy); if (setProxy) return; @@ -2203,8 +2236,8 @@ protected: { socket = new QSslSocket(this); - socket->setPrivateKey(SRCDIR "certs/fluke.key"); - socket->setLocalCertificate(SRCDIR "certs/fluke.cert"); + socket->setPrivateKey(tst_QSslSocket::testDataDir + "certs/fluke.key"); + socket->setLocalCertificate(tst_QSslSocket::testDataDir + "certs/fluke.cert"); socket->setSocketDescriptor(socketDescriptor); socket->startServerEncryption(); } @@ -2212,6 +2245,9 @@ protected: void tst_QSslSocket::verifyMode() { +#ifdef Q_OS_WINRT + QSKIP("Server-side encryption is not implemented on WinRT."); +#endif QFETCH_GLOBAL(bool, setProxy); if (setProxy) return; @@ -2319,7 +2355,7 @@ void tst_QSslSocket::resetProxy() // make sure the connection works, and then set a nonsense proxy, and then // make sure it does not work anymore QSslSocket socket; - socket.addCaCertificates(QLatin1String(SRCDIR "certs/qt-test-server-cacert.pem")); + socket.addCaCertificates(testDataDir + "certs/qt-test-server-cacert.pem"); socket.setProxy(goodProxy); socket.connectToHostEncrypted(QtNetworkSettings::serverName(), 443); QVERIFY2(socket.waitForConnected(10000), qPrintable(socket.errorString())); @@ -2338,7 +2374,7 @@ void tst_QSslSocket::resetProxy() // set the nonsense proxy and make sure the connection does not work, // and then set the right proxy and make sure it works QSslSocket socket2; - socket2.addCaCertificates(QLatin1String(SRCDIR "certs/qt-test-server-cacert.pem")); + socket2.addCaCertificates(testDataDir + "certs/qt-test-server-cacert.pem"); socket2.setProxy(badProxy); socket2.connectToHostEncrypted(QtNetworkSettings::serverName(), 443); QVERIFY(! socket2.waitForConnected(10000)); @@ -2357,7 +2393,7 @@ void tst_QSslSocket::ignoreSslErrorsList_data() // construct the list of errors that we will get with the SSL handshake and that we will ignore QList<QSslError> expectedSslErrors; // fromPath gives us a list of certs, but it actually only contains one - QList<QSslCertificate> certs = QSslCertificate::fromPath(QLatin1String(SRCDIR "certs/qt-test-server-cacert.pem")); + QList<QSslCertificate> certs = QSslCertificate::fromPath(testDataDir + "certs/qt-test-server-cacert.pem"); QSslError rightError(FLUKE_CERTIFICATE_ERROR, certs.at(0)); QSslError wrongError(FLUKE_CERTIFICATE_ERROR); @@ -2430,6 +2466,9 @@ void tst_QSslSocket::ignoreSslErrorsListWithSlot() void tst_QSslSocket::abortOnSslErrors() { +#ifdef Q_OS_WINRT + QSKIP("Server-side encryption is not implemented on WinRT."); +#endif QFETCH_GLOBAL(bool, setProxy); if (setProxy) return; @@ -2491,6 +2530,7 @@ void tst_QSslSocket::writeBigChunk() QByteArray data; data.resize(1024*1024*10); // 10 MB // init with garbage. needed so ssl cannot compress it in an efficient way. + // ### Qt 6: update to a random engine for (size_t i = 0; i < data.size() / sizeof(int); i++) { int r = qrand(); data.data()[i*sizeof(int)] = r; @@ -2525,11 +2565,14 @@ void tst_QSslSocket::writeBigChunk() void tst_QSslSocket::blacklistedCertificates() { +#ifdef Q_OS_WINRT + QSKIP("Server-side encryption is not implemented on WinRT."); +#endif QFETCH_GLOBAL(bool, setProxy); if (setProxy) return; - SslServer server(SRCDIR "certs/fake-login.live.com.key", SRCDIR "certs/fake-login.live.com.pem"); + SslServer server(testDataDir + "certs/fake-login.live.com.key", testDataDir + "certs/fake-login.live.com.pem"); QSslSocket *receiver = new QSslSocket(this); connect(receiver, SIGNAL(readyRead()), SLOT(exitLoop())); @@ -2641,7 +2684,7 @@ void tst_QSslSocket::resume_data() QTest::newRow("DoNotIgnoreErrors") << false << QList<QSslError>() << false; QTest::newRow("ignoreAllErrors") << true << QList<QSslError>() << true; - QList<QSslCertificate> certs = QSslCertificate::fromPath(QLatin1String(SRCDIR "certs/qt-test-server-cacert.pem")); + QList<QSslCertificate> certs = QSslCertificate::fromPath(testDataDir + "certs/qt-test-server-cacert.pem"); QSslError rightError(FLUKE_CERTIFICATE_ERROR, certs.at(0)); QSslError wrongError(FLUKE_CERTIFICATE_ERROR); errorsList.append(wrongError); @@ -2711,8 +2754,8 @@ class WebSocket : public QSslSocket Q_OBJECT public: explicit WebSocket(qintptr socketDescriptor, - const QString &keyFile = SRCDIR "certs/fluke.key", - const QString &certFile = SRCDIR "certs/fluke.cert"); + const QString &keyFile = tst_QSslSocket::testDataDir + "certs/fluke.key", + const QString &certFile = tst_QSslSocket::testDataDir + "certs/fluke.cert"); protected slots: void onReadyReadFirstBytes(void); @@ -2782,6 +2825,9 @@ protected: void tst_QSslSocket::qtbug18498_peek() { +#ifdef Q_OS_WINRT + QSKIP("Server-side encryption is not implemented on WinRT."); +#endif QFETCH_GLOBAL(bool, setProxy); if (setProxy) return; @@ -2849,6 +2895,9 @@ protected: void tst_QSslSocket::qtbug18498_peek2() { +#ifdef Q_OS_WINRT + QSKIP("Server-side encryption is not implemented on WinRT."); +#endif QFETCH_GLOBAL(bool, setProxy); if (setProxy) return; @@ -2917,13 +2966,13 @@ void tst_QSslSocket::qtbug18498_peek2() QCOMPARE(a[2], 'S'); QCOMPARE(server->readAll(), QByteArray("TLS\r\n")); - QFile file(SRCDIR "certs/fluke.key"); + QFile file(testDataDir + "certs/fluke.key"); QVERIFY(file.open(QIODevice::ReadOnly)); QSslKey key(file.readAll(), QSsl::Rsa, QSsl::Pem, QSsl::PrivateKey); QVERIFY(!key.isNull()); server->setPrivateKey(key); - QList<QSslCertificate> localCert = QSslCertificate::fromPath(SRCDIR "certs/fluke.cert"); + QList<QSslCertificate> localCert = QSslCertificate::fromPath(testDataDir + "certs/fluke.cert"); QVERIFY(!localCert.isEmpty()); QVERIFY(!localCert.first().isNull()); server->setLocalCertificate(localCert.first()); @@ -2963,6 +3012,9 @@ void tst_QSslSocket::qtbug18498_peek2() void tst_QSslSocket::dhServer() { +#ifdef Q_OS_WINRT + QSKIP("Server-side encryption is not implemented on WinRT."); +#endif if (!QSslSocket::supportsSsl()) QSKIP("No SSL support"); @@ -3072,6 +3124,9 @@ void tst_QSslSocket::dhServerCustomParams() void tst_QSslSocket::ecdhServer() { +#ifdef Q_OS_WINRT + QSKIP("Server-side encryption is not implemented on WinRT."); +#endif if (!QSslSocket::supportsSsl()) { qWarning("SSL not supported, skipping test"); return; @@ -3117,10 +3172,10 @@ void tst_QSslSocket::verifyClientCertificate_data() QTest::newRow("NoCert:VerifyPeer") << QSslSocket::VerifyPeer << noCerts << noKey << false; // self-signed certificate - QList<QSslCertificate> flukeCerts = QSslCertificate::fromPath(SRCDIR "certs/fluke.cert"); + QList<QSslCertificate> flukeCerts = QSslCertificate::fromPath(testDataDir + "certs/fluke.cert"); QCOMPARE(flukeCerts.size(), 1); - QFile flukeFile(SRCDIR "certs/fluke.key"); + QFile flukeFile(testDataDir + "certs/fluke.key"); QVERIFY(flukeFile.open(QIODevice::ReadOnly)); QSslKey flukeKey(flukeFile.readAll(), QSsl::Rsa, QSsl::Pem, QSsl::PrivateKey); QVERIFY(!flukeKey.isNull()); @@ -3131,10 +3186,10 @@ void tst_QSslSocket::verifyClientCertificate_data() QTest::newRow("SelfSignedCert:VerifyPeer") << QSslSocket::VerifyPeer << flukeCerts << flukeKey << false; // valid certificate, but wrong usage (server certificate) - QList<QSslCertificate> serverCerts = QSslCertificate::fromPath(SRCDIR "certs/bogus-server.crt"); + QList<QSslCertificate> serverCerts = QSslCertificate::fromPath(testDataDir + "certs/bogus-server.crt"); QCOMPARE(serverCerts.size(), 1); - QFile serverFile(SRCDIR "certs/bogus-server.key"); + QFile serverFile(testDataDir + "certs/bogus-server.key"); QVERIFY(serverFile.open(QIODevice::ReadOnly)); QSslKey serverKey(serverFile.readAll(), QSsl::Rsa, QSsl::Pem, QSsl::PrivateKey); QVERIFY(!serverKey.isNull()); @@ -3145,10 +3200,10 @@ void tst_QSslSocket::verifyClientCertificate_data() QTest::newRow("ValidServerCert:VerifyPeer") << QSslSocket::VerifyPeer << serverCerts << serverKey << false; // valid certificate, correct usage (client certificate) - QList<QSslCertificate> validCerts = QSslCertificate::fromPath(SRCDIR "certs/bogus-client.crt"); + QList<QSslCertificate> validCerts = QSslCertificate::fromPath(testDataDir + "certs/bogus-client.crt"); QCOMPARE(validCerts.size(), 1); - QFile validFile(SRCDIR "certs/bogus-client.key"); + QFile validFile(testDataDir + "certs/bogus-client.key"); QVERIFY(validFile.open(QIODevice::ReadOnly)); QSslKey validKey(validFile.readAll(), QSsl::Rsa, QSsl::Pem, QSsl::PrivateKey); QVERIFY(!validKey.isNull()); @@ -3159,7 +3214,7 @@ void tst_QSslSocket::verifyClientCertificate_data() QTest::newRow("ValidClientCert:VerifyPeer") << QSslSocket::VerifyPeer << validCerts << validKey << true; // valid certificate, correct usage (client certificate), with chain - validCerts += QSslCertificate::fromPath(SRCDIR "certs/bogus-ca.crt"); + validCerts += QSslCertificate::fromPath(testDataDir + "certs/bogus-ca.crt"); QCOMPARE(validCerts.size(), 2); QTest::newRow("ValidClientCert:AutoVerifyPeer") << QSslSocket::AutoVerifyPeer << validCerts << validKey << true; @@ -3178,6 +3233,9 @@ void tst_QSslSocket::verifyClientCertificate() // success instead of failure etc.). QSKIP("This test can not work with Secure Transport"); #endif +#ifdef Q_OS_WINRT + QSKIP("Server-side encryption is not implemented on WinRT."); +#endif if (!QSslSocket::supportsSsl()) { qWarning("SSL not supported, skipping test"); return; @@ -3189,7 +3247,7 @@ void tst_QSslSocket::verifyClientCertificate() QFETCH(QSslSocket::PeerVerifyMode, peerVerifyMode); SslServer server; - server.addCaCertificates = QLatin1String(SRCDIR "certs/bogus-ca.crt"); + server.addCaCertificates = testDataDir + "certs/bogus-ca.crt"; server.ignoreSslErrors = false; server.peerVerifyMode = peerVerifyMode; QVERIFY(server.listen()); @@ -3688,6 +3746,9 @@ void tst_QSslSocket::simplePskConnect() void tst_QSslSocket::ephemeralServerKey_data() { +#ifdef Q_OS_WINRT + QSKIP("Server-side encryption is not implemented on WinRT."); +#endif QTest::addColumn<QString>("cipher"); QTest::addColumn<bool>("emptyKey"); @@ -3762,6 +3823,9 @@ void tst_QSslSocket::allowedProtocolNegotiation() void tst_QSslSocket::pskServer() { +#ifdef Q_OS_WINRT + QSKIP("Server-side encryption is not implemented on WinRT."); +#endif QFETCH_GLOBAL(bool, setProxy); if (!QSslSocket::supportsSsl() || setProxy) return; |