QTest::ignoreMessage(): interpret the message in UTF-8
The message to ignore is given in source code, hence UTF-8; it was being ingested as local 8-bit, which lead to problems when a debug message wasn't 7-bit clean and the system's native encoding wasn't UTF-8. Modified QtTest's selftest to check encoding failure. Pick-to: 5.15 Change-Id: I898744a450115b6d2ee992f1d3b36d8efaeeff7e Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This commit is contained in:
parent
e325bd68fd
commit
2491ee98b1
@ -1,6 +1,6 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2016 The Qt Company Ltd.
|
||||
** Copyright (C) 2020 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the QtTest module of the Qt Toolkit.
|
||||
@ -521,7 +521,7 @@ void QTestLog::ignoreMessage(QtMsgType type, const char *msg)
|
||||
{
|
||||
QTEST_ASSERT(msg);
|
||||
|
||||
QTest::IgnoreResultList::append(QTest::ignoreResultList, type, QString::fromLocal8Bit(msg));
|
||||
QTest::IgnoreResultList::append(QTest::ignoreResultList, type, QString::fromUtf8(msg));
|
||||
}
|
||||
|
||||
#if QT_CONFIG(regularexpression)
|
||||
|
@ -1,6 +1,6 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2016 The Qt Company Ltd.
|
||||
** Copyright (C) 2020 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the test suite of the Qt Toolkit.
|
||||
@ -80,6 +80,14 @@ void tst_Warnings::testWarnings()
|
||||
// accept redundant space at end to keep compatibility with Qt < 5.2
|
||||
QTest::ignoreMessage(QtDebugMsg, "Bubu ");
|
||||
qDebug() << "Bubu";
|
||||
|
||||
// Cope with non-ASCII messages; should be understood as UTF-8 (it comes
|
||||
// from source code on both sides), even if the system encoding is
|
||||
// different:
|
||||
QTest::ignoreMessage(QtDebugMsg, "Hej v\xc3\xa4rlden");
|
||||
qDebug() << "Hej v\xc3\xa4rlden";
|
||||
QTest::ignoreMessage(QtInfoMsg, "Hej v\xc3\xa4rlden");
|
||||
qInfo() << "Hej v\xc3\xa4rlden";
|
||||
}
|
||||
|
||||
void tst_Warnings::testMissingWarnings()
|
||||
|
Loading…
x
Reference in New Issue
Block a user