diff options
author | Mirko Boehm (AWS) <mirko@agile-workers.com> | 2013-03-03 13:28:19 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-03-22 12:59:01 +0100 |
commit | 4824c74b34eff1603ece275f6dfa22c89919488f (patch) | |
tree | 1b631acaced6dc38c230f89ff8aa61174581a33d | |
parent | 04770e5824cbde365e935b47bd287a9a81fff6f9 (diff) |
Fix error in XML and Xunit formatted benchmark output.
The number of iterations was not respected for XML output, unlike for
plain text output. With this fix, benchmarks report the same result
for plain text and XML formatted output.
Compare the change to qplaintextlogger.cpp:274.
Change-Id: Ieb3e5812e18d93c36847bef0417f779efd300f86
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Daniel Molkentin <daniel@molkentin.de>
Reviewed-by: Jason McDonald <macadder1@gmail.com>
-rw-r--r-- | src/testlib/qxmltestlogger.cpp | 3 | ||||
-rw-r--r-- | src/testlib/qxunittestlogger.cpp | 4 |
2 files changed, 5 insertions, 2 deletions
diff --git a/src/testlib/qxmltestlogger.cpp b/src/testlib/qxmltestlogger.cpp index 9bc5255bf6..3f77f152b5 100644 --- a/src/testlib/qxmltestlogger.cpp +++ b/src/testlib/qxmltestlogger.cpp @@ -246,12 +246,13 @@ void QXmlTestLogger::addBenchmarkResult(const QBenchmarkResult &result) benchmarkMetricName(result.metric)); xmlQuote("edTag, result.context.tag.toUtf8().constData()); + const qreal valuePerIteration = qreal(result.value) / qreal(result.iterations); QTest::qt_asprintf( &buf, QTest::benchmarkResultFormatString(), quotedMetric.constData(), quotedTag.constData(), - QByteArray::number(result.value).constData(), //no 64-bit qsnprintf support + QByteArray::number(valuePerIteration).constData(), //no 64-bit qsnprintf support result.iterations); outputString(buf.constData()); } diff --git a/src/testlib/qxunittestlogger.cpp b/src/testlib/qxunittestlogger.cpp index bfe9de2158..0a1a5fb6f9 100644 --- a/src/testlib/qxunittestlogger.cpp +++ b/src/testlib/qxunittestlogger.cpp @@ -232,7 +232,9 @@ void QXunitTestLogger::addBenchmarkResult(const QBenchmarkResult &result) QTest::AI_Metric, QTest::benchmarkMetricName(QBenchmarkTestMethodData::current->result.metric)); benchmarkElement->addAttribute(QTest::AI_Tag, result.context.tag.toUtf8().data()); - benchmarkElement->addAttribute(QTest::AI_Value, QByteArray::number(result.value).constData()); + + const qreal valuePerIteration = qreal(result.value) / qreal(result.iterations); + benchmarkElement->addAttribute(QTest::AI_Value, QByteArray::number(valuePerIteration).constData()); char buf[100]; qsnprintf(buf, sizeof(buf), "%i", result.iterations); |