From b6bce68a64ac25489b5cca825ab6840e3fca21ee Mon Sep 17 00:00:00 2001 From: Olivier Goffart Date: Thu, 10 Jul 2014 21:26:20 +0200 Subject: [PATCH] Logging: fix support for %{time format} in QT_MESSAGE_PATTERN This revert commit de1d5815c15ba1f944752cf7d441442efeb0accb which wrongly fixed a typo. There is no typo because we use startsWith with that constant. Also added a test because the %{time} support was added in commit 93563952d00f865b73136f6a316ca2b8732db85f but the test was missing Change-Id: Ic96e6f21f989ca3a2905ec6c89b93d2627b77b40 Reviewed-by: Shawn Rutledge --- src/corelib/global/qlogging.cpp | 2 +- tests/auto/corelib/global/qlogging/tst_qlogging.cpp | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/corelib/global/qlogging.cpp b/src/corelib/global/qlogging.cpp index 63dd4c1387..8174d125a3 100644 --- a/src/corelib/global/qlogging.cpp +++ b/src/corelib/global/qlogging.cpp @@ -762,7 +762,7 @@ static const char functionTokenC[] = "%{function}"; static const char pidTokenC[] = "%{pid}"; static const char appnameTokenC[] = "%{appname}"; static const char threadidTokenC[] = "%{threadid}"; -static const char timeTokenC[] = "%{time}"; +static const char timeTokenC[] = "%{time"; //not a typo: this command has arguments static const char ifCategoryTokenC[] = "%{if-category}"; static const char ifDebugTokenC[] = "%{if-debug}"; static const char ifWarningTokenC[] = "%{if-warning}"; diff --git a/tests/auto/corelib/global/qlogging/tst_qlogging.cpp b/tests/auto/corelib/global/qlogging/tst_qlogging.cpp index 462d56908a..3c1a26c629 100644 --- a/tests/auto/corelib/global/qlogging/tst_qlogging.cpp +++ b/tests/auto/corelib/global/qlogging/tst_qlogging.cpp @@ -688,6 +688,19 @@ void tst_qmessagehandler::qMessagePattern_data() << "QT_MESSAGE_PATTERN: %{if-*} cannot be nested" << "A DEBUG qDebug " << "A qWarning "); + + // This test won't work when midnight is too close... wait a bit + while (QTime::currentTime() > QTime(23, 59, 30)) + QTest::qWait(10000); + QTest::newRow("time") << "/%{time yyyy - MM - d}/%{message}" + << true << (QList() + << ('/' + QDateTime::currentDateTime().toString("yyyy - MM - d").toUtf8() + "/qDebug")); + + // %{time} should have a padding of 6 so if it takes less than 10 seconds to show + // the first message, there should be 5 spaces + QTest::newRow("time") << "<%{time}>%{message}" << true << (QList() + << "< "); + }