summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMirko Boehm (AWS) <mirko@agile-workers.com>2013-03-03 13:28:19 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-03-22 12:59:01 +0100
commit4824c74b34eff1603ece275f6dfa22c89919488f (patch)
tree1b631acaced6dc38c230f89ff8aa61174581a33d
parent04770e5824cbde365e935b47bd287a9a81fff6f9 (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.cpp3
-rw-r--r--src/testlib/qxunittestlogger.cpp4
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(&quotedTag, 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);