QTestLib: use QT_MESSAGE_PATTERN when showing debug output

This makes debugging much more convenient, being able to see e.g.
the method name where qDebug is used. Note that this doesn't break
ignored messages, since qMessageFormatString is only called after
the test for ignored messages.

Change-Id: I7fc96e3f19efe48ac3a30fdd63e5b495c0d86e02
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
Reviewed-by: Jason McDonald <macadder1@gmail.com>
This commit is contained in:
David Faure 2013-12-29 10:07:24 +01:00 committed by The Qt Project
parent bf32528f4b
commit e5bfb9719b

View File

@ -56,6 +56,8 @@
QT_BEGIN_NAMESPACE
Q_CORE_EXPORT QString qMessageFormatString(QtMsgType type, const QMessageLogContext &context, const QString& msg);
static void saveCoverageTool(const char * appname, bool testfailed, bool installedTestCoverage)
{
#ifdef __COVERAGESCANNER__
@ -230,7 +232,7 @@ namespace QTest {
return false;
}
static void messageHandler(QtMsgType type, const QMessageLogContext & /*context*/, const QString &message)
static void messageHandler(QtMsgType type, const QMessageLogContext & context, const QString &message)
{
static QBasicAtomicInt counter = Q_BASIC_ATOMIC_INITIALIZER(QTest::maxWarnings);
@ -245,6 +247,9 @@ namespace QTest {
// the message is expected, so just swallow it.
return;
msg = qMessageFormatString(type, context, message).toLocal8Bit();
msg.chop(1); // remove trailing newline
if (type != QtFatalMsg) {
if (counter.load() <= 0)
return;