diff options
author | Timur Pocheptsov <timur.pocheptsov@qt.io> | 2020-11-20 17:39:12 +0100 |
---|---|---|
committer | Timur Pocheptsov <timur.pocheptsov@qt.io> | 2020-11-30 14:31:38 +0100 |
commit | 6c6a6f4aa9f97e5edad8592e3e8e939db2755dc4 (patch) | |
tree | f974d683baf0f3f423eb877f0a245447c3529c76 /tests | |
parent | 0c3dbbefd281377d7eb100aa88e20866d9268be1 (diff) |
QSslConfiguration - improve code coverage
By adding auto-tests that were missing/not triggering the paths found
by LCOV.
Change-Id: I472f59e8e7292786c80d7c8dcebde53a2982e1ec
Reviewed-by: MÃ¥rten Nordheim <marten.nordheim@qt.io>
(cherry picked from commit 1157167a5c69e253fdeb6c8ad532c5d52e150769)
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/network/ssl/qdtls/tst_qdtls.cpp | 16 | ||||
-rw-r--r-- | tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp | 29 |
2 files changed, 43 insertions, 2 deletions
diff --git a/tests/auto/network/ssl/qdtls/tst_qdtls.cpp b/tests/auto/network/ssl/qdtls/tst_qdtls.cpp index 1fc46ca36a..b80ca8593b 100644 --- a/tests/auto/network/ssl/qdtls/tst_qdtls.cpp +++ b/tests/auto/network/ssl/qdtls/tst_qdtls.cpp @@ -40,10 +40,13 @@ #include <QtNetwork/qssl.h> #include <QtCore/qcryptographichash.h> +#include <QtCore/qscopeguard.h> #include <QtCore/qbytearray.h> #include <QtCore/qvector.h> +#include <QtCore/qobject.h> #include <QtCore/qstring.h> #include <QtCore/qobject.h> +#include <QtCore/qlist.h> #include <algorithm> @@ -312,6 +315,19 @@ void tst_QDtls::configuration() QCOMPARE(dtls.dtlsError(), QDtlsError::InvalidOperation); QCOMPARE(dtls.dtlsConfiguration(), config); } + + static bool doneAlready = false; + if (!doneAlready) { + doneAlready = true; + QSslConfiguration nullConfig; + const auto defaultDtlsConfig = QSslConfiguration::defaultDtlsConfiguration(); + const auto restoreDefault = qScopeGuard([&defaultDtlsConfig] { + QSslConfiguration::setDefaultDtlsConfiguration(defaultDtlsConfig); + }); + QSslConfiguration::setDefaultDtlsConfiguration(nullConfig); + QCOMPARE(QSslConfiguration::defaultDtlsConfiguration(), nullConfig); + QVERIFY(QSslConfiguration::defaultDtlsConfiguration() != defaultDtlsConfig); + } } void tst_QDtls::invalidConfiguration() diff --git a/tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp b/tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp index 5903eb6488..ef02a5ff2d 100644 --- a/tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp +++ b/tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp @@ -191,7 +191,7 @@ private slots: void setLocalCertificate(); void localCertificateChain(); void setLocalCertificateChain(); - void setPrivateKey(); + void tlsConfiguration(); void setSocketDescriptor(); void setSslConfiguration_data(); void setSslConfiguration(); @@ -1562,8 +1562,33 @@ void tst_QSslSocket::setLocalCertificateChain() QCOMPARE(chain[1].serialNumber(), QByteArray("3b:eb:99:c5:ea:d8:0b:5d:0b:97:5d:4f:06:75:4b:e1")); } -void tst_QSslSocket::setPrivateKey() +void tst_QSslSocket::tlsConfiguration() { + QFETCH_GLOBAL(const bool, setProxy); + if (setProxy) + return; + // Test some things not covered by any other auto-test. + QSslSocket socket; + auto tlsConfig = socket.sslConfiguration(); + QVERIFY(tlsConfig.sessionCipher().isNull()); + QCOMPARE(tlsConfig.addCaCertificates(QStringLiteral("nonexisting/chain.crt")), false); + QCOMPARE(tlsConfig.sessionProtocol(), QSsl::UnknownProtocol); + QSslConfiguration nullConfig; + QVERIFY(nullConfig.isNull()); +#ifndef QT_NO_OPENSSL + nullConfig.setEllipticCurves(tlsConfig.ellipticCurves()); + QCOMPARE(nullConfig.ellipticCurves(), tlsConfig.ellipticCurves()); +#endif + QMap<QByteArray, QVariant> backendConfig; + backendConfig["DTLSMTU"] = QVariant::fromValue(1024); + backendConfig["DTLSTIMEOUTMS"] = QVariant::fromValue(1000); + nullConfig.setBackendConfiguration(backendConfig); + QCOMPARE(nullConfig.backendConfiguration(), backendConfig); + QTest::ignoreMessage(QtWarningMsg, "QSslConfiguration::setPeerVerifyDepth: cannot set negative depth of -1000"); + nullConfig.setPeerVerifyDepth(-1000); + QVERIFY(nullConfig.peerVerifyDepth() != -1000); + nullConfig.setPeerVerifyDepth(100); + QCOMPARE(nullConfig.peerVerifyDepth(), 100); } void tst_QSslSocket::setSocketDescriptor() |