1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
// Copyright (C) 2016 Intel Corporation.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#include "qcsvbenchmarklogger_p.h"
#include "qtestresult_p.h"
#include "qbenchmark_p.h"
/*! \internal
\class QCsvBenchmarkLogger
\inmodule QtTest
QCsvBenchmarkLogger implements a comma-separated value format for benchmarks.
This is intended to be suitable for import into spreadsheets.
It does not print test failures, debug messages, warnings or any other details.
*/
QCsvBenchmarkLogger::QCsvBenchmarkLogger(const char *filename)
: QAbstractTestLogger(filename)
{
}
QCsvBenchmarkLogger::~QCsvBenchmarkLogger() = default;
void QCsvBenchmarkLogger::startLogging()
{
// don't print anything
}
void QCsvBenchmarkLogger::stopLogging()
{
// don't print anything
}
void QCsvBenchmarkLogger::enterTestFunction(const char *)
{
// don't print anything
}
void QCsvBenchmarkLogger::leaveTestFunction()
{
// don't print anything
}
void QCsvBenchmarkLogger::addIncident(QAbstractTestLogger::IncidentTypes, const char *, const char *, int)
{
// don't print anything
}
void QCsvBenchmarkLogger::addBenchmarkResult(const QBenchmarkResult &result)
{
const char *fn = QTestResult::currentTestFunction() ? QTestResult::currentTestFunction()
: "UnknownTestFunc";
const char *tag = QTestResult::currentDataTag() ? QTestResult::currentDataTag() : "";
const char *gtag = QTestResult::currentGlobalDataTag()
? QTestResult::currentGlobalDataTag()
: "";
const char *filler = (tag[0] && gtag[0]) ? ":" : "";
const char *metric = QTest::benchmarkMetricName(result.measurement.metric);
char buf[1024];
// "function","[globaltag:]tag","metric",value_per_iteration,total,iterations
qsnprintf(buf, sizeof(buf), "\"%s\",\"%s%s%s\",\"%s\",%.13g,%.13g,%u\n",
fn, gtag, filler, tag, metric,
result.measurement.value / result.iterations,
result.measurement.value, result.iterations);
outputString(buf);
}
void QCsvBenchmarkLogger::addMessage(QAbstractTestLogger::MessageTypes, const QString &, const char *, int)
{
// don't print anything
}
|