src/testlib/qplaintestlogger.cpp
changeset 30 5dc02b23752f
parent 25 e24348a560a6
equal deleted inserted replaced
29:b72c6db6890b 30:5dc02b23752f
    42 #include "QtTest/private/qtestresult_p.h"
    42 #include "QtTest/private/qtestresult_p.h"
    43 #include "QtTest/qtestassert.h"
    43 #include "QtTest/qtestassert.h"
    44 #include "QtTest/private/qtestlog_p.h"
    44 #include "QtTest/private/qtestlog_p.h"
    45 #include "QtTest/private/qplaintestlogger_p.h"
    45 #include "QtTest/private/qplaintestlogger_p.h"
    46 #include "QtTest/private/qbenchmark_p.h"
    46 #include "QtTest/private/qbenchmark_p.h"
       
    47 #include "QtTest/private/qbenchmarkmetric_p.h"
    47 
    48 
    48 #include <stdarg.h>
    49 #include <stdarg.h>
    49 #include <stdio.h>
    50 #include <stdio.h>
    50 #include <stdlib.h>
    51 #include <stdlib.h>
    51 #include <string.h>
    52 #include <string.h>
   323             buf1, sizeof(buf1), "%s: %s::%s",
   324             buf1, sizeof(buf1), "%s: %s::%s",
   324             bmtag,
   325             bmtag,
   325             QTestResult::currentTestObjectName(),
   326             QTestResult::currentTestObjectName(),
   326             result.context.slotName.toAscii().data());
   327             result.context.slotName.toAscii().data());
   327 
   328 
   328 
       
   329         char bufTag[1024];
   329         char bufTag[1024];
   330         bufTag[0] = 0;
   330         bufTag[0] = 0;
   331         QByteArray tag = result.context.tag.toAscii();
   331         QByteArray tag = result.context.tag.toAscii();
   332         if (tag.isEmpty() == false) {
   332         if (tag.isEmpty() == false) {
   333             QTest::qt_snprintf(bufTag, sizeof(bufTag), ":\"%s\"", tag.data());
   333             QTest::qt_snprintf(bufTag, sizeof(bufTag), ":\"%s\"", tag.data());
   339         QTest::qt_snprintf(
   339         QTest::qt_snprintf(
   340             fillFormat, sizeof(fillFormat), ":\n%%%ds", fillLength);
   340             fillFormat, sizeof(fillFormat), ":\n%%%ds", fillLength);
   341         char fill[1024];
   341         char fill[1024];
   342         QTest::qt_snprintf(fill, sizeof(fill), fillFormat, "");
   342         QTest::qt_snprintf(fill, sizeof(fill), fillFormat, "");
   343 
   343 
   344 
   344         const char * unitText = QTest::benchmarkMetricUnit(result.metric);
   345         QByteArray unitText = QBenchmarkGlobalData::current->measurer->unitText().toAscii();
       
   346 
   345 
   347         qreal valuePerIteration = qreal(result.value) / qreal(result.iterations);
   346         qreal valuePerIteration = qreal(result.value) / qreal(result.iterations);
   348         char resultBuffer[100] = "";
   347         char resultBuffer[100] = "";
   349         formatResult(resultBuffer, 100, valuePerIteration, countSignificantDigits(result.value));
   348         formatResult(resultBuffer, 100, valuePerIteration, countSignificantDigits(result.value));
   350 
   349 
   351         QByteArray iterationText = "per iteration";
       
   352 
       
   353         char buf2[1024];
   350         char buf2[1024];
       
   351         QTest::qt_snprintf(
       
   352             buf2, sizeof(buf2), "%s %s",
       
   353             resultBuffer,
       
   354             unitText);
       
   355 
       
   356         char buf2_[1024];
       
   357         QByteArray iterationText = " per iteration";
   354         Q_ASSERT(result.iterations > 0);
   358         Q_ASSERT(result.iterations > 0);
   355         QTest::qt_snprintf(
   359         QTest::qt_snprintf(
   356             buf2, sizeof(buf2), "%s %s %s",
   360             buf2_,
   357             resultBuffer,
   361             sizeof(buf2_), "%s",
   358             unitText.data(),
       
   359             iterationText.data());
   362             iterationText.data());
   360 
   363 
   361         char buf3[1024];
   364         char buf3[1024];
   362         Q_ASSERT(result.iterations > 0);
   365         Q_ASSERT(result.iterations > 0);
       
   366         formatResult(resultBuffer, 100, result.value, countSignificantDigits(result.value));
   363         QTest::qt_snprintf(
   367         QTest::qt_snprintf(
   364             buf3, sizeof(buf3), " (total: %s, iterations: %d)\n",
   368             buf3, sizeof(buf3), " (total: %s, iterations: %d)",
   365             QByteArray::number(result.value).constData(), // no 64-bit qt_snprintf support
   369             resultBuffer,
   366             result.iterations);
   370             result.iterations);
   367 
   371 
   368         char buf[1024];
   372         char buf[1024];
   369         QTest::qt_snprintf(buf, sizeof(buf), "%s%s%s%s%s", buf1, bufTag, fill, buf2, buf3);
   373 
       
   374         if (result.setByMacro) {
       
   375             QTest::qt_snprintf(
       
   376                 buf, sizeof(buf), "%s%s%s%s%s%s\n", buf1, bufTag, fill, buf2, buf2_, buf3);
       
   377         } else {
       
   378             QTest::qt_snprintf(buf, sizeof(buf), "%s%s%s%s\n", buf1, bufTag, fill, buf2);
       
   379         }
       
   380 
   370         memcpy(buf, bmtag, strlen(bmtag));
   381         memcpy(buf, bmtag, strlen(bmtag));
   371         outputMessage(buf);
   382         outputMessage(buf);
   372     }
   383     }
   373 }
   384 }
   374 
   385