From 1a2e2921d268f09b6cb5ca91c85614192b8e2e0e Mon Sep 17 00:00:00 2001 From: Timur Pocheptsov Date: Thu, 19 Nov 2020 17:01:37 +0100 Subject: [PATCH] QSslCipher - improve its code coverage and auto-tests tst_qsslcipher was quite useless - now we test that default constructed QSslCipher reports expected values. Test the non-default from the different auto-test, where we are sure we have really useful ciphersuites (with different parameters obtained from a TLS backend, where it's possible). Pick-to: 6.0 Pick-to: 5.15 Change-Id: Iff14a0580fed889cf9e0873bee01d968773626db Reviewed-by: Timur Pocheptsov --- .../network/ssl/qsslcipher/tst_qsslcipher.cpp | 12 ++++-- .../network/ssl/qsslsocket/tst_qsslsocket.cpp | 38 +++++++++---------- 2 files changed, 26 insertions(+), 24 deletions(-) diff --git a/tests/auto/network/ssl/qsslcipher/tst_qsslcipher.cpp b/tests/auto/network/ssl/qsslcipher/tst_qsslcipher.cpp index 9ffba1ec943..8114d1a064a 100644 --- a/tests/auto/network/ssl/qsslcipher/tst_qsslcipher.cpp +++ b/tests/auto/network/ssl/qsslcipher/tst_qsslcipher.cpp @@ -30,9 +30,6 @@ #include #include -#include -#include - class tst_QSslCipher : public QObject { Q_OBJECT @@ -50,6 +47,15 @@ private slots: void tst_QSslCipher::constructing() { QSslCipher cipher; + + QVERIFY(cipher.isNull()); + QCOMPARE(cipher.name(), QString()); + QCOMPARE(cipher.supportedBits(), 0); + QCOMPARE(cipher.usedBits(), 0); + QCOMPARE(cipher.keyExchangeMethod(), QString()); + QCOMPARE(cipher.authenticationMethod(), QString()); + QCOMPARE(cipher.protocolString(), QString()); + QCOMPARE(cipher.protocol(), QSsl::UnknownProtocol); } #endif // QT_NO_SSL diff --git a/tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp b/tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp index d5035c52662..1e09f0e8896 100644 --- a/tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp +++ b/tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp @@ -164,9 +164,6 @@ private slots: // API tests void sslErrors_data(); void sslErrors(); - void addCaCertificate(); - void addCaCertificates(); - void addCaCertificates2(); void ciphers(); void connectToHostEncrypted(); void connectToHostEncryptedWithVerificationPeerName(); @@ -796,29 +793,18 @@ void tst_QSslSocket::sslErrors() QCOMPARE(sslErrors, peerErrors); } -void tst_QSslSocket::addCaCertificate() -{ - if (!QSslSocket::supportsSsl()) - return; -} - -void tst_QSslSocket::addCaCertificates() -{ - if (!QSslSocket::supportsSsl()) - return; -} - -void tst_QSslSocket::addCaCertificates2() -{ - if (!QSslSocket::supportsSsl()) - return; -} - void tst_QSslSocket::ciphers() { if (!QSslSocket::supportsSsl()) return; + QFETCH_GLOBAL(const bool, setProxy); + if (setProxy) { + // KISS(mart), we don't connect, no need to test the same thing + // many times! + return; + } + QSslSocket socket; QCOMPARE(socket.sslConfiguration().ciphers(), QSslConfiguration::defaultConfiguration().ciphers()); @@ -863,6 +849,16 @@ void tst_QSslSocket::ciphers() sslConfig.setCiphers(ciphers); socket.setSslConfiguration(sslConfig); QCOMPARE(ciphers, socket.sslConfiguration().ciphers()); + +#ifndef QT_NO_OPENSSL + for (const auto &cipher : ciphers) { + if (cipher.name().size() && cipher.protocol() != QSsl::UnknownProtocol) { + const QSslCipher aCopy(cipher.name(), cipher.protocol()); + QCOMPARE(aCopy, cipher); + break; + } + } +#endif // QT_NO_OPENSSL } void tst_QSslSocket::connectToHostEncrypted()