diff -r 93b982ccede2 -r 5daf16870df6 src/testlib/qplaintestlogger.cpp --- a/src/testlib/qplaintestlogger.cpp Mon Jun 21 22:38:13 2010 +0100 +++ b/src/testlib/qplaintestlogger.cpp Thu Jul 22 16:41:55 2010 +0100 @@ -44,6 +44,7 @@ #include "QtTest/private/qtestlog_p.h" #include "QtTest/private/qplaintestlogger_p.h" #include "QtTest/private/qbenchmark_p.h" +#include "QtTest/private/qbenchmarkmetric_p.h" #include #include @@ -181,6 +182,7 @@ hbuffer->Des().Copy(ptr.Mid(i, size)); RDebug::Print(format, hbuffer); } + delete hbuffer; } else { // fast, no allocations, but truncates silently @@ -324,7 +326,6 @@ QTestResult::currentTestObjectName(), result.context.slotName.toAscii().data()); - char bufTag[1024]; bufTag[0] = 0; QByteArray tag = result.context.tag.toAscii(); @@ -340,32 +341,43 @@ char fill[1024]; QTest::qt_snprintf(fill, sizeof(fill), fillFormat, ""); - - QByteArray unitText = QBenchmarkGlobalData::current->measurer->unitText().toAscii(); + const char * unitText = QTest::benchmarkMetricUnit(result.metric); qreal valuePerIteration = qreal(result.value) / qreal(result.iterations); char resultBuffer[100] = ""; formatResult(resultBuffer, 100, valuePerIteration, countSignificantDigits(result.value)); - QByteArray iterationText = "per iteration"; + char buf2[1024]; + QTest::qt_snprintf( + buf2, sizeof(buf2), "%s %s", + resultBuffer, + unitText); - char buf2[1024]; + char buf2_[1024]; + QByteArray iterationText = " per iteration"; Q_ASSERT(result.iterations > 0); QTest::qt_snprintf( - buf2, sizeof(buf2), "%s %s %s", - resultBuffer, - unitText.data(), + buf2_, + sizeof(buf2_), "%s", iterationText.data()); char buf3[1024]; Q_ASSERT(result.iterations > 0); + formatResult(resultBuffer, 100, result.value, countSignificantDigits(result.value)); QTest::qt_snprintf( - buf3, sizeof(buf3), " (total: %s, iterations: %d)\n", - QByteArray::number(result.value).constData(), // no 64-bit qt_snprintf support + buf3, sizeof(buf3), " (total: %s, iterations: %d)", + resultBuffer, result.iterations); char buf[1024]; - QTest::qt_snprintf(buf, sizeof(buf), "%s%s%s%s%s", buf1, bufTag, fill, buf2, buf3); + + if (result.setByMacro) { + QTest::qt_snprintf( + buf, sizeof(buf), "%s%s%s%s%s%s\n", buf1, bufTag, fill, buf2, buf2_, buf3); + } else { + QTest::qt_snprintf(buf, sizeof(buf), "%s%s%s%s\n", buf1, bufTag, fill, buf2); + } + memcpy(buf, bmtag, strlen(bmtag)); outputMessage(buf); }