qt5base-lts/tests/auto/network/ssl/shared/tlshelpers.h
Timur Pocheptsov 810e755c18 Fix auto-tests that are fooled by the presence of more than one plugin
It's possible that Qt is built with OpenSSL and some other backend.
The ifdefs generated are not mutually exclusive anymore, as it was
in the past. So tests should rely on the actual backend they have
working at runtime.

In the process of fixing the auto-tests, modernized feature #if-ery and
some associated compilation issues.

Fixes: QTBUG-92875
Change-Id: I2be1b924d506fd36dc4e2c6c9158b5023ff87f32
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2021-05-27 06:41:26 +02:00

66 lines
2.1 KiB
C++

/****************************************************************************
**
** Copyright (C) 2021 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the test suite of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:GPL-EXCEPT$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3 as published by the Free Software
** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
** included in the packaging of this file. Please review the following
** information to ensure the GNU General Public License requirements will
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
**
** $QT_END_LICENSE$
**
****************************************************************************/
#include <QtNetwork/qtnetworkglobal.h>
#if QT_CONFIG(ssl)
#include <QtNetwork/qsslsocket.h>
#endif // QT_CONFIG(ssl)
#include <QtCore/qstring.h>
#include <QtCore/qglobal.h>
// TODO: these 'helpers' later to include OpenSSL resolver/sumbols
// required by some auto-tests.
QT_BEGIN_NAMESPACE
#if QT_CONFIG(ssl)
namespace TlsAux {
inline bool activeBackendSupportsDtls()
{
// In case Qt was built with OpenSSL (the only DTLS-capable backend
// at the moment) and some other backend, and later when running
// the test OpenSSL library is not available, skip the whole
// test.
// IMPORTANT: extend this definition, if a new backend supporting
// DTLS is introduced or if one of the already-supported backends
// adds DTLS support.
return QSslSocket::activeBackend() == QStringLiteral("openssl");
}
} // namespace TlsAux
#endif // QT_CONFIG(ssl)
QT_END_NAMESPACE