summaryrefslogtreecommitdiffstats
path: root/tests/auto/network
diff options
context:
space:
mode:
authorTimur Pocheptsov <timur.pocheptsov@qt.io>2021-06-24 19:26:44 +0200
committerTimur Pocheptsov <timur.pocheptsov@qt.io>2021-06-25 08:01:55 +0200
commitf7f2582c6092a37c2ace38a1261e6d1312f12aa9 (patch)
tree426c2bffef4c35f9cd51db9bfce7fe1a4d878a27 /tests/auto/network
parent43a36dfd81ca5c01b6afe66c1ad3ddf505acae99 (diff)
tst_qsslsocket: detect ALPN support (on server) using supportedFeatures()
Pick-to: 6.2 Change-Id: I30409667395bbe568823b8697dded41067a8346c Reviewed-by: MÃ¥rten Nordheim <marten.nordheim@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Diffstat (limited to 'tests/auto/network')
-rw-r--r--tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp21
1 files changed, 4 insertions, 17 deletions
diff --git a/tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp b/tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp
index 4669d10fa3..142c018323 100644
--- a/tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp
+++ b/tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp
@@ -75,19 +75,6 @@ Q_DECLARE_METATYPE(QSsl::SslProtocol)
Q_DECLARE_METATYPE(QSslSocket::PeerVerifyMode);
typedef QSharedPointer<QSslSocket> QSslSocketPtr;
-// Detect ALPN (Application-Layer Protocol Negotiation) support
-// AUTOTESTTODO: fix the way we identify ALPN support, it now depends on
-// what TLS backend we managed to load, not compile time macros.
-#undef ALPN_SUPPORTED // Undef the variable first to be safe
-#if defined(OPENSSL_VERSION_NUMBER) && !defined(OPENSSL_NO_TLSEXT)
-#define ALPN_SUPPORTED 1
-#endif
-
-#if QT_CONFIG(schannel) && !defined(Q_CC_MINGW)
-// TLSTODO: move this check into Schannel plugin.
-#define ALPN_SUPPORTED 1
-#endif
-
#if defined Q_OS_HPUX && defined Q_CC_GNU
// This error is delivered every time we try to use the fluke CA
// certificate. For now we work around this bug. Task 202317.
@@ -315,6 +302,7 @@ private:
bool isTestingSecureTransport = false;
bool isTestingSchannel = false;
QSslError::SslError flukeCertificateError = QSslError::CertificateUntrusted;
+ bool hasServerAlpn = false;
#endif // QT_CONFIG(ssl)
private:
static int loopLevel;
@@ -419,6 +407,7 @@ void tst_QSslSocket::initTestCase()
if (!testDataDir.endsWith(QLatin1String("/")))
testDataDir += QLatin1String("/");
+ hasServerAlpn = QSslSocket::supportedFeatures().contains(QSsl::SupportedFeature::ServerSideAlpn);
// Several plugins (TLS-backends) can co-exist. QSslSocket would implicitly
// select 'openssl' if available, and if not: 'securetransport' (Darwin) or
// 'schannel' (Windows). Check what we actually have:
@@ -3818,10 +3807,8 @@ void tst_QSslSocket::setEmptyDefaultConfiguration() // this test should be last,
void tst_QSslSocket::allowedProtocolNegotiation()
{
- // TLSTODO: check feature Cleint/ServerSideAlpn supported insted!
-#ifndef ALPN_SUPPORTED
- QSKIP("ALPN is unsupported, skipping test");
-#endif
+ if (!hasServerAlpn)
+ QSKIP("Server-side ALPN is unsupported, skipping test");
if (isTestingSchannel) {
// TODO: move this check into the plugin (not to report ALPN as supported).