37QBenchmarkMeasurerBase * QBenchmarkGlobalData::createMeasurer()
39 QBenchmarkMeasurerBase *measurer =
nullptr;
41#if QT_CONFIG(valgrind)
42 }
else if (mode_ == CallgrindChildProcess || mode_ == CallgrindParentProcess) {
43 measurer =
new QBenchmarkCallgrindMeasurer;
45#ifdef QTESTLIB_USE_PERF_EVENTS
46 }
else if (mode_ == PerfCounter) {
47 measurer =
new QBenchmarkPerfEventsMeasurer;
49#ifdef HAVE_TICK_COUNTER
50 }
else if (mode_ == TickCounter) {
51 measurer =
new QBenchmarkTickMeasurer;
53 }
else if (mode_ == EventCounter) {
54 measurer =
new QBenchmarkEvent;
56 measurer =
new QBenchmarkTimeMeasurer;
106void QBenchmarkTestMethodData::setResults(
const QList<QBenchmarkMeasurerBase::Measurement> &list,
109 bool accepted =
false;
110 QBenchmarkMeasurerBase::Measurement firstMeasurement = {};
112 firstMeasurement = list.constFirst();
116 if (QBenchmarkGlobalData::current->iterationCount != -1)
119 else if (QBenchmarkTestMethodData::current->runOnce || !setByMacro) {
126 else if (QBenchmarkGlobalData::current->walltimeMinimum != -1)
127 accepted = (firstMeasurement.value > QBenchmarkGlobalData::current->walltimeMinimum);
129 accepted = QBenchmarkGlobalData::current->measurer->isMeasurementAccepted(firstMeasurement);
131 QBenchmarkGlobalData::current->measurer->resetMetricsResults();
134 resultAccepted =
true;
139 results.reserve(list.size());
141 results.emplaceBack(QBenchmarkGlobalData::current->context, m, iterationCount, setByMacro);