Merge remote-tracking branch 'origin/5.13.2' into 5.13
Change-Id: Ieb5afc87086758119bcfc8efbe355f5c0a93fc04
This commit is contained in:
commit
c51ca1d1b2
@ -4,4 +4,4 @@ CONFIG += warning_clean
|
|||||||
QT_SOURCE_TREE = $$PWD
|
QT_SOURCE_TREE = $$PWD
|
||||||
QT_BUILD_TREE = $$shadowed($$PWD)
|
QT_BUILD_TREE = $$shadowed($$PWD)
|
||||||
|
|
||||||
MODULE_VERSION = 5.13.1
|
MODULE_VERSION = 5.13.2
|
||||||
|
69
dist/changes-5.13.2
vendored
Normal file
69
dist/changes-5.13.2
vendored
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
Qt 5.13.2 is a bug-fix release. It maintains both forward and backward
|
||||||
|
compatibility (source and binary) with Qt 5.13.0 through 5.13.1.
|
||||||
|
|
||||||
|
For more details, refer to the online documentation included in this
|
||||||
|
distribution. The documentation is also available online:
|
||||||
|
|
||||||
|
https://doc.qt.io/qt-5/index.html
|
||||||
|
|
||||||
|
The Qt version 5.13 series is binary compatible with the 5.12.x series.
|
||||||
|
Applications compiled for 5.12 will continue to run with 5.13.
|
||||||
|
|
||||||
|
Some of the changes listed in this file include issue tracking numbers
|
||||||
|
corresponding to tasks in the Qt Bug Tracker:
|
||||||
|
|
||||||
|
https://bugreports.qt.io/
|
||||||
|
|
||||||
|
Each of these identifiers can be entered in the bug tracker to obtain more
|
||||||
|
information about a particular change.
|
||||||
|
|
||||||
|
****************************************************************************
|
||||||
|
* QtCore *
|
||||||
|
****************************************************************************
|
||||||
|
|
||||||
|
- Fixed a bug that made qErrnoWarning() say there was no error when
|
||||||
|
generating the error message.
|
||||||
|
|
||||||
|
- QBitArray:
|
||||||
|
* Fixed two bugs that caused QBitArrays created using fromBits() not to
|
||||||
|
compare equal to the equivalent QBitArray created using other methods
|
||||||
|
if the size was zero or not a multiple of 4. If the size modulus 8 was
|
||||||
|
5, 6, or 7, the data was actually incorrect.
|
||||||
|
|
||||||
|
- QCryptographicHash:
|
||||||
|
* Fixed a bug that caused the SHA-3 and Keccak algorithms to crash if
|
||||||
|
passed 256 MB of data or more.
|
||||||
|
|
||||||
|
- QObject:
|
||||||
|
* Fixed a resource leak caused by a race condition if multiple QObjects
|
||||||
|
were created at the same time, for the first time in an application,
|
||||||
|
from multiple threads (implies threads not started with QThread).
|
||||||
|
|
||||||
|
****************************************************************************
|
||||||
|
* QtGui *
|
||||||
|
****************************************************************************
|
||||||
|
|
||||||
|
- Text:
|
||||||
|
* [QTBUG-69546] Fixed a crash bug in
|
||||||
|
QTextDocument::clearUndoRedoStacks(QTextDocument::UndoStack).
|
||||||
|
|
||||||
|
****************************************************************************
|
||||||
|
* QtSQL *
|
||||||
|
****************************************************************************
|
||||||
|
|
||||||
|
- sqlite:
|
||||||
|
* Updated to v3.29.0
|
||||||
|
|
||||||
|
****************************************************************************
|
||||||
|
* Platform-Specific Changes *
|
||||||
|
****************************************************************************
|
||||||
|
|
||||||
|
- Linux:
|
||||||
|
* [QTBUG-61916] Added an environment variable
|
||||||
|
QT_QPA_PRESERVE_CONSOLE_STATE that can be used to prevent Qt from
|
||||||
|
altering the tty screen and cursor settings when running with
|
||||||
|
platforms like linuxfb and eglfs.
|
||||||
|
|
||||||
|
- Android:
|
||||||
|
* [QTBUG-76036] Fixed an issue where menus would not work on 64 bit
|
||||||
|
builds.
|
@ -97,21 +97,22 @@ macx-xcode {
|
|||||||
qmake_pkginfo_typeinfo.value = "????"
|
qmake_pkginfo_typeinfo.value = "????"
|
||||||
QMAKE_MAC_XCODE_SETTINGS += qmake_pkginfo_typeinfo
|
QMAKE_MAC_XCODE_SETTINGS += qmake_pkginfo_typeinfo
|
||||||
|
|
||||||
!isEmpty(VERSION) {
|
bundle_version = $$VERSION
|
||||||
l = $$split(VERSION, '.') 0 0 # make sure there are at least three
|
isEmpty(bundle_version): bundle_version = 1.0.0
|
||||||
VER_MAJ = $$member(l, 0, 0)
|
|
||||||
VER_MIN = $$member(l, 1, 1)
|
|
||||||
VER_PAT = $$member(l, 2, 2)
|
|
||||||
unset(l)
|
|
||||||
|
|
||||||
qmake_full_version.name = QMAKE_FULL_VERSION
|
l = $$split(bundle_version, '.') 0 0 # make sure there are at least three
|
||||||
qmake_full_version.value = $${VER_MAJ}.$${VER_MIN}.$${VER_PAT}
|
VER_MAJ = $$member(l, 0, 0)
|
||||||
QMAKE_MAC_XCODE_SETTINGS += qmake_full_version
|
VER_MIN = $$member(l, 1, 1)
|
||||||
|
VER_PAT = $$member(l, 2, 2)
|
||||||
|
unset(l)
|
||||||
|
|
||||||
qmake_short_version.name = QMAKE_SHORT_VERSION
|
qmake_full_version.name = QMAKE_FULL_VERSION
|
||||||
qmake_short_version.value = $${VER_MAJ}.$${VER_MIN}
|
qmake_full_version.value = $${VER_MAJ}.$${VER_MIN}.$${VER_PAT}
|
||||||
QMAKE_MAC_XCODE_SETTINGS += qmake_short_version
|
QMAKE_MAC_XCODE_SETTINGS += qmake_full_version
|
||||||
}
|
|
||||||
|
qmake_short_version.name = QMAKE_SHORT_VERSION
|
||||||
|
qmake_short_version.value = $${VER_MAJ}.$${VER_MIN}
|
||||||
|
QMAKE_MAC_XCODE_SETTINGS += qmake_short_version
|
||||||
|
|
||||||
!isEmpty(QMAKE_XCODE_DEBUG_INFORMATION_FORMAT) {
|
!isEmpty(QMAKE_XCODE_DEBUG_INFORMATION_FORMAT) {
|
||||||
debug_information_format.name = DEBUG_INFORMATION_FORMAT
|
debug_information_format.name = DEBUG_INFORMATION_FORMAT
|
||||||
|
@ -22,7 +22,7 @@ QMAKE_CFLAGS_WARN_OFF = -W0
|
|||||||
QMAKE_CFLAGS_DEBUG = $$QMAKE_CFLAGS_OPTIMIZE_DEBUG -Zi -MDd
|
QMAKE_CFLAGS_DEBUG = $$QMAKE_CFLAGS_OPTIMIZE_DEBUG -Zi -MDd
|
||||||
QMAKE_CFLAGS_UTF8_SOURCE = -Qoption,cpp,--unicode_source_kind,UTF-8
|
QMAKE_CFLAGS_UTF8_SOURCE = -Qoption,cpp,--unicode_source_kind,UTF-8
|
||||||
QMAKE_CFLAGS_LTCG = -Qipo
|
QMAKE_CFLAGS_LTCG = -Qipo
|
||||||
QMAKE_CFLAGS_DISABLE_LTCG = -Qno-ipo
|
QMAKE_CFLAGS_DISABLE_LTCG = -Qipo-
|
||||||
|
|
||||||
QMAKE_CFLAGS_SSE2 = -QxSSE2
|
QMAKE_CFLAGS_SSE2 = -QxSSE2
|
||||||
QMAKE_CFLAGS_SSE3 = -QxSSE3
|
QMAKE_CFLAGS_SSE3 = -QxSSE3
|
||||||
|
@ -1569,12 +1569,14 @@ void VcprojGenerator::initExtraCompilerOutputs()
|
|||||||
if (!outputVar.isEmpty() && otherFilters.contains(outputVar))
|
if (!outputVar.isEmpty() && otherFilters.contains(outputVar))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
QString tmp_out = project->first(outputs.first().toKey()).toQString();
|
QString tmp_out;
|
||||||
|
if (!outputs.isEmpty())
|
||||||
|
tmp_out = project->first(outputs.first().toKey()).toQString();
|
||||||
if (project->values(ProKey(*it + ".CONFIG")).indexOf("combine") != -1) {
|
if (project->values(ProKey(*it + ".CONFIG")).indexOf("combine") != -1) {
|
||||||
// Combined output, only one file result
|
// Combined output, only one file result
|
||||||
extraCompile.addFile(Option::fixPathToTargetOS(
|
extraCompile.addFile(Option::fixPathToTargetOS(
|
||||||
replaceExtraCompilerVariables(tmp_out, QString(), QString(), NoShell), false));
|
replaceExtraCompilerVariables(tmp_out, QString(), QString(), NoShell), false));
|
||||||
} else {
|
} else if (!inputVars.isEmpty()) {
|
||||||
// One output file per input
|
// One output file per input
|
||||||
const ProStringList &tmp_in = project->values(inputVars.first().toKey());
|
const ProStringList &tmp_in = project->values(inputVars.first().toKey());
|
||||||
for (int i = 0; i < tmp_in.count(); ++i) {
|
for (int i = 0; i < tmp_in.count(); ++i) {
|
||||||
|
@ -346,7 +346,7 @@ extern Q_CORE_EXPORT QBasicAtomicInteger<unsigned> qt_cpu_features[2];
|
|||||||
#endif
|
#endif
|
||||||
Q_CORE_EXPORT quint64 qDetectCpuFeatures();
|
Q_CORE_EXPORT quint64 qDetectCpuFeatures();
|
||||||
|
|
||||||
#if defined(Q_PROCESSOR_X86) && QT_COMPILER_SUPPORTS_HERE(RDRND)
|
#if defined(Q_PROCESSOR_X86) && QT_COMPILER_SUPPORTS_HERE(RDRND) && !defined(QT_BOOTSTRAPPED)
|
||||||
Q_CORE_EXPORT qsizetype qRandomCpu(void *, qsizetype) Q_DECL_NOTHROW;
|
Q_CORE_EXPORT qsizetype qRandomCpu(void *, qsizetype) Q_DECL_NOTHROW;
|
||||||
#else
|
#else
|
||||||
static inline qsizetype qRandomCpu(void *, qsizetype) Q_DECL_NOTHROW
|
static inline qsizetype qRandomCpu(void *, qsizetype) Q_DECL_NOTHROW
|
||||||
|
@ -974,6 +974,7 @@ bool QSslSocketBackendPrivate::performHandshake()
|
|||||||
bool QSslSocketBackendPrivate::verifyHandshake()
|
bool QSslSocketBackendPrivate::verifyHandshake()
|
||||||
{
|
{
|
||||||
Q_Q(QSslSocket);
|
Q_Q(QSslSocket);
|
||||||
|
sslErrors.clear();
|
||||||
|
|
||||||
const bool isClient = mode == QSslSocket::SslClientMode;
|
const bool isClient = mode == QSslSocket::SslClientMode;
|
||||||
#define CHECK_STATUS(status) \
|
#define CHECK_STATUS(status) \
|
||||||
@ -1062,7 +1063,7 @@ bool QSslSocketBackendPrivate::verifyHandshake()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// verifyCertContext returns false if the user disconnected while it was checking errors.
|
// verifyCertContext returns false if the user disconnected while it was checking errors.
|
||||||
if (certificateContext && sslErrors.isEmpty() && !verifyCertContext(certificateContext))
|
if (certificateContext && !verifyCertContext(certificateContext))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (!checkSslErrors() || state != QAbstractSocket::ConnectedState) {
|
if (!checkSslErrors() || state != QAbstractSocket::ConnectedState) {
|
||||||
|
@ -70,6 +70,10 @@ QT_BEGIN_NAMESPACE
|
|||||||
#ifdef VTH_ENABLED
|
#ifdef VTH_ENABLED
|
||||||
static void setTTYCursor(bool enable)
|
static void setTTYCursor(bool enable)
|
||||||
{
|
{
|
||||||
|
static bool ignore = qEnvironmentVariableIntValue("QT_QPA_PRESERVE_CONSOLE_STATE");
|
||||||
|
if (ignore)
|
||||||
|
return;
|
||||||
|
|
||||||
const char * const devs[] = { "/dev/tty0", "/dev/tty", "/dev/console", 0 };
|
const char * const devs[] = { "/dev/tty0", "/dev/tty", "/dev/console", 0 };
|
||||||
int fd = -1;
|
int fd = -1;
|
||||||
for (const char * const *dev = devs; *dev; ++dev) {
|
for (const char * const *dev = devs; *dev; ++dev) {
|
||||||
|
@ -478,31 +478,43 @@ QStringList QCoreTextFontDatabase::fallbacksForFamily(const QString &family, QFo
|
|||||||
if (cascadeList) {
|
if (cascadeList) {
|
||||||
QStringList fallbackList;
|
QStringList fallbackList;
|
||||||
const int numCascades = CFArrayGetCount(cascadeList);
|
const int numCascades = CFArrayGetCount(cascadeList);
|
||||||
|
|
||||||
|
int symbolIndex = -1;
|
||||||
|
int notoSansUniversalIndex = -1;
|
||||||
for (int i = 0; i < numCascades; ++i) {
|
for (int i = 0; i < numCascades; ++i) {
|
||||||
CTFontDescriptorRef fontFallback = (CTFontDescriptorRef) CFArrayGetValueAtIndex(cascadeList, i);
|
CTFontDescriptorRef fontFallback = (CTFontDescriptorRef) CFArrayGetValueAtIndex(cascadeList, i);
|
||||||
QCFString fallbackFamilyName = (CFStringRef) CTFontDescriptorCopyAttribute(fontFallback, kCTFontFamilyNameAttribute);
|
QCFString fallbackFamilyName = (CFStringRef) CTFontDescriptorCopyAttribute(fontFallback, kCTFontFamilyNameAttribute);
|
||||||
fallbackList.append(QString::fromCFString(fallbackFamilyName));
|
|
||||||
|
QString fallbackName = QString::fromCFString(fallbackFamilyName);
|
||||||
|
fallbackList.append(fallbackName);
|
||||||
|
|
||||||
|
if (!qt_isFontFamilyPopulated(fallbackName))
|
||||||
|
const_cast<QCoreTextFontDatabase *>(this)->populateFromDescriptor(fontFallback, fallbackName);
|
||||||
|
|
||||||
|
if (fallbackName == QLatin1String(".Apple Symbols Fallback"))
|
||||||
|
symbolIndex = fallbackList.size() - 1;
|
||||||
|
else if (fallbackName == QLatin1String(".Noto Sans Universal"))
|
||||||
|
notoSansUniversalIndex = fallbackList.size() - 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
// .Apple Symbols Fallback will be at the beginning of the list and we will
|
// .Apple Symbols Fallback will be at the beginning of the list and we will
|
||||||
// detect that this has glyphs for Arabic and other writing systems.
|
// detect that this has glyphs for Arabic and other writing systems.
|
||||||
// Since it is a symbol font, it should be the last resort, so that
|
// Since it is a symbol font, it should be the last resort, so that
|
||||||
// the proper fonts for these writing systems are preferred.
|
// the proper fonts for these writing systems are preferred.
|
||||||
int symbolIndex = fallbackList.indexOf(QLatin1String(".Apple Symbols Fallback"));
|
if (symbolIndex >= 0) {
|
||||||
if (symbolIndex >= 0)
|
|
||||||
fallbackList.move(symbolIndex, fallbackList.size() - 1);
|
fallbackList.move(symbolIndex, fallbackList.size() - 1);
|
||||||
|
if (notoSansUniversalIndex > symbolIndex)
|
||||||
|
--notoSansUniversalIndex;
|
||||||
|
}
|
||||||
|
|
||||||
|
// .Noto Sans Universal appears to have a bug when the application
|
||||||
|
// does not have a valid Info.plist, which causes it to return glyph #4
|
||||||
|
// (a question mark) for any character.
|
||||||
|
if (notoSansUniversalIndex >= 0)
|
||||||
|
fallbackList.move(notoSansUniversalIndex, fallbackList.size() - 1);
|
||||||
|
|
||||||
addExtraFallbacks(&fallbackList);
|
addExtraFallbacks(&fallbackList);
|
||||||
|
|
||||||
// Since iOS 13, the cascade list may contain meta-fonts which have not been
|
|
||||||
// populated to the database, such as ".AppleJapaneseFont". It is important that we
|
|
||||||
// include this in the fallback list, in order to get fallback support for all
|
|
||||||
// languages
|
|
||||||
for (const QString &fallback : fallbackList) {
|
|
||||||
if (!qt_isFontFamilyPopulated(fallback))
|
|
||||||
const_cast<QCoreTextFontDatabase *>(this)->populateFamily(fallback);
|
|
||||||
}
|
|
||||||
|
|
||||||
extern QStringList qt_sort_families_by_writing_system(QChar::Script, const QStringList &);
|
extern QStringList qt_sort_families_by_writing_system(QChar::Script, const QStringList &);
|
||||||
fallbackList = qt_sort_families_by_writing_system(script, fallbackList);
|
fallbackList = qt_sort_families_by_writing_system(script, fallbackList);
|
||||||
|
|
||||||
|
@ -471,7 +471,7 @@ void QCoreTextFontEngine::draw(CGContextRef ctx, qreal x, qreal y, const QTextIt
|
|||||||
const qreal firstY = positions[0].y.toReal();
|
const qreal firstY = positions[0].y.toReal();
|
||||||
for (int i = 0; i < glyphs.size(); ++i) {
|
for (int i = 0; i < glyphs.size(); ++i) {
|
||||||
cgPositions[i].x = positions[i].x.toReal() - firstX;
|
cgPositions[i].x = positions[i].x.toReal() - firstX;
|
||||||
cgPositions[i].y = positions[i].y.toReal() - firstY;
|
cgPositions[i].y = firstY - positions[i].y.toReal();
|
||||||
cgGlyphs[i] = glyphs[i];
|
cgGlyphs[i] = glyphs[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -332,11 +332,8 @@ bool QIOSContext::verifyGraphicsHardwareAvailability()
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
if (applicationBackgrounded) {
|
if (applicationBackgrounded)
|
||||||
static const char warning[] = "OpenGL ES calls are not allowed while an application is backgrounded";
|
qCWarning(lcQpaGLContext, "OpenGL ES calls are not allowed while an application is backgrounded");
|
||||||
Q_ASSERT_X(!applicationBackgrounded, "QIOSContext", warning);
|
|
||||||
qCWarning(lcQpaGLContext, warning);
|
|
||||||
}
|
|
||||||
|
|
||||||
return !applicationBackgrounded;
|
return !applicationBackgrounded;
|
||||||
}
|
}
|
||||||
|
@ -628,6 +628,18 @@ Q_LOGGING_CATEGORY(lcQpaTablet, "qt.qpa.input.tablet")
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if QT_IOS_PLATFORM_SDK_EQUAL_OR_ABOVE(130000)
|
||||||
|
- (void)addInteraction:(id<UIInteraction>)interaction
|
||||||
|
{
|
||||||
|
if (__builtin_available(iOS 13.0, *)) {
|
||||||
|
if ([interaction isKindOfClass:UITextInteraction.class])
|
||||||
|
return; // Prevent iOS from adding UITextInteraction
|
||||||
|
}
|
||||||
|
|
||||||
|
[super addInteraction:interaction];
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
||||||
@implementation UIView (QtHelpers)
|
@implementation UIView (QtHelpers)
|
||||||
|
@ -79,7 +79,7 @@ qint32 main(qint32 argc, char **argv)
|
|||||||
fid.write("#include <QtCore/qfloat16.h>\n\n");
|
fid.write("#include <QtCore/qfloat16.h>\n\n");
|
||||||
|
|
||||||
fid.write("QT_BEGIN_NAMESPACE\n\n");
|
fid.write("QT_BEGIN_NAMESPACE\n\n");
|
||||||
fid.write("#if !defined(__F16C__) && !defined(__ARM_FP16_FORMAT_IEEE)\n\n");
|
fid.write("#if !defined(__ARM_FP16_FORMAT_IEEE)\n\n");
|
||||||
|
|
||||||
fid.write("const quint32 qfloat16::mantissatable[2048] = {\n");
|
fid.write("const quint32 qfloat16::mantissatable[2048] = {\n");
|
||||||
fid.write("0,\n");
|
fid.write("0,\n");
|
||||||
@ -156,7 +156,7 @@ qint32 main(qint32 argc, char **argv)
|
|||||||
|
|
||||||
fid.write("};\n\n");
|
fid.write("};\n\n");
|
||||||
|
|
||||||
fid.write("#endif // !__F16C__ && !__ARM_FP16_FORMAT_IEEE\n\n");
|
fid.write("#endif // !__ARM_FP16_FORMAT_IEEE\n\n");
|
||||||
fid.write("QT_END_NAMESPACE\n");
|
fid.write("QT_END_NAMESPACE\n");
|
||||||
fid.close();
|
fid.close();
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -259,6 +259,8 @@ private slots:
|
|||||||
void disabledProtocols_data();
|
void disabledProtocols_data();
|
||||||
void disabledProtocols();
|
void disabledProtocols();
|
||||||
|
|
||||||
|
void oldErrorsOnSocketReuse();
|
||||||
|
|
||||||
void setEmptyDefaultConfiguration(); // this test should be last
|
void setEmptyDefaultConfiguration(); // this test should be last
|
||||||
|
|
||||||
protected slots:
|
protected slots:
|
||||||
@ -4192,6 +4194,53 @@ void tst_QSslSocket::disabledProtocols()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void tst_QSslSocket::oldErrorsOnSocketReuse()
|
||||||
|
{
|
||||||
|
QFETCH_GLOBAL(bool, setProxy);
|
||||||
|
if (setProxy)
|
||||||
|
return; // not relevant
|
||||||
|
SslServer server;
|
||||||
|
server.protocol = QSsl::TlsV1_1;
|
||||||
|
server.m_certFile = testDataDir + "certs/fluke.cert";
|
||||||
|
server.m_keyFile = testDataDir + "certs/fluke.key";
|
||||||
|
QVERIFY(server.listen(QHostAddress::SpecialAddress::LocalHost));
|
||||||
|
|
||||||
|
QSslSocket socket;
|
||||||
|
socket.setProtocol(QSsl::TlsV1_1);
|
||||||
|
QList<QSslError> errorList;
|
||||||
|
auto connection = connect(&socket, QOverload<const QList<QSslError> &>::of(&QSslSocket::sslErrors),
|
||||||
|
[&socket, &errorList](const QList<QSslError> &errors) {
|
||||||
|
errorList += errors;
|
||||||
|
socket.ignoreSslErrors(errors);
|
||||||
|
socket.resume();
|
||||||
|
});
|
||||||
|
|
||||||
|
socket.connectToHostEncrypted(QString::fromLatin1("localhost"), server.serverPort());
|
||||||
|
QVERIFY(QTest::qWaitFor([&socket](){ return socket.isEncrypted(); }));
|
||||||
|
socket.disconnectFromHost();
|
||||||
|
if (socket.state() != QAbstractSocket::UnconnectedState) {
|
||||||
|
QVERIFY(QTest::qWaitFor(
|
||||||
|
[&socket](){
|
||||||
|
return socket.state() == QAbstractSocket::UnconnectedState;
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
|
||||||
|
auto oldList = errorList;
|
||||||
|
errorList.clear();
|
||||||
|
server.close();
|
||||||
|
server.m_certFile = testDataDir + "certs/bogus-client.crt";
|
||||||
|
server.m_keyFile = testDataDir + "certs/bogus-client.key";
|
||||||
|
QVERIFY(server.listen(QHostAddress::SpecialAddress::LocalHost));
|
||||||
|
|
||||||
|
socket.connectToHostEncrypted(QString::fromLatin1("localhost"), server.serverPort());
|
||||||
|
QVERIFY(QTest::qWaitFor([&socket](){ return socket.isEncrypted(); }));
|
||||||
|
|
||||||
|
for (const auto &error : oldList) {
|
||||||
|
QVERIFY2(!errorList.contains(error),
|
||||||
|
"The new errors should not contain any of the old ones");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#endif // QT_NO_SSL
|
#endif // QT_NO_SSL
|
||||||
|
|
||||||
QTEST_MAIN(tst_QSslSocket)
|
QTEST_MAIN(tst_QSslSocket)
|
||||||
|
Loading…
Reference in New Issue
Block a user