qplaintestlogger.cpp

Source codeSwitch to Preprocessed file
LineSource CodeCoverage
1/**************************************************************************** -
2** -
3** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). -
4** Contact: http://www.qt-project.org/legal -
5** -
6** This file is part of the QtTest module of the Qt Toolkit. -
7** -
8** $QT_BEGIN_LICENSE:LGPL$ -
9** Commercial License Usage -
10** Licensees holding valid commercial Qt licenses may use this file in -
11** accordance with the commercial license agreement provided with the -
12** Software or, alternatively, in accordance with the terms contained in -
13** a written agreement between you and Digia. For licensing terms and -
14** conditions see http://qt.digia.com/licensing. For further information -
15** use the contact form at http://qt.digia.com/contact-us. -
16** -
17** GNU Lesser General Public License Usage -
18** Alternatively, this file may be used under the terms of the GNU Lesser -
19** General Public License version 2.1 as published by the Free Software -
20** Foundation and appearing in the file LICENSE.LGPL included in the -
21** packaging of this file. Please review the following information to -
22** ensure the GNU Lesser General Public License version 2.1 requirements -
23** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -
24** -
25** In addition, as a special exception, Digia gives you certain additional -
26** rights. These rights are described in the Digia Qt LGPL Exception -
27** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -
28** -
29** GNU General Public License Usage -
30** Alternatively, this file may be used under the terms of the GNU -
31** General Public License version 3.0 as published by the Free Software -
32** Foundation and appearing in the file LICENSE.GPL included in the -
33** packaging of this file. Please review the following information to -
34** ensure the GNU General Public License version 3.0 requirements will be -
35** met: http://www.gnu.org/copyleft/gpl.html. -
36** -
37** -
38** $QT_END_LICENSE$ -
39** -
40****************************************************************************/ -
41 -
42#include <QtTest/private/qtestresult_p.h> -
43#include <QtTest/qtestassert.h> -
44#include <QtTest/private/qtestlog_p.h> -
45#include <QtTest/private/qplaintestlogger_p.h> -
46#include <QtTest/private/qbenchmark_p.h> -
47#include <QtTest/private/qbenchmarkmetric_p.h> -
48 -
49#include <stdarg.h> -
50#include <stdio.h> -
51#include <stdlib.h> -
52#include <string.h> -
53 -
54#ifdef Q_OS_WIN -
55#include <windows.h> -
56#endif -
57 -
58#ifdef Q_OS_WINCE -
59#include <QtCore/QString> -
60#endif -
61 -
62#include <QtCore/QByteArray> -
63#include <QtCore/qmath.h> -
64 -
65QT_BEGIN_NAMESPACE -
66 -
67namespace QTest { -
68 -
69 static const char *incidentType2String(QAbstractTestLogger::IncidentTypes type) -
70 { -
71 switch (type) { -
72 case QAbstractTestLogger::Pass: -
73 return "PASS ";
executed: return "PASS ";
Execution Count:66746
66746
74 case QAbstractTestLogger::XFail: -
75 return "XFAIL ";
executed: return "XFAIL ";
Execution Count:339
339
76 case QAbstractTestLogger::Fail: -
77 return "FAIL! ";
executed: return "FAIL! ";
Execution Count:237
237
78 case QAbstractTestLogger::XPass: -
79 return "XPASS ";
never executed: return "XPASS ";
0
80 } -
81 return "??????";
never executed: return "??????";
0
82 } -
83 -
84 static const char *benchmarkResult2String() -
85 { -
86 return "RESULT ";
executed: return "RESULT ";
Execution Count:8
8
87 } -
88 -
89 static const char *messageType2String(QAbstractTestLogger::MessageTypes type) -
90 { -
91 switch (type) { -
92 case QAbstractTestLogger::Skip: -
93 return "SKIP ";
executed: return "SKIP ";
Execution Count:315
315
94 case QAbstractTestLogger::Warn: -
95 return "WARNING";
executed: return "WARNING";
Execution Count:8
8
96 case QAbstractTestLogger::QWarning: -
97 return "QWARN ";
executed: return "QWARN ";
Execution Count:445
445
98 case QAbstractTestLogger::QDebug: -
99 return "QDEBUG ";
executed: return "QDEBUG ";
Execution Count:1076
1076
100 case QAbstractTestLogger::QSystem: -
101 return "QSYSTEM";
never executed: return "QSYSTEM";
0
102 case QAbstractTestLogger::QFatal: -
103 return "QFATAL ";
executed: return "QFATAL ";
Execution Count:5
5
104 case QAbstractTestLogger::Info: -
105 return "INFO ";
never executed: return "INFO ";
0
106 } -
107 return "??????";
never executed: return "??????";
0
108 } -
109 -
110 template <typename T> -
111 static int countSignificantDigits(T num) -
112 { -
113 if (num <= 0)
evaluated: num <= 0
TRUEFALSE
yes
Evaluation Count:10
yes
Evaluation Count:6
6-10
114 return 0;
executed: return 0;
Execution Count:10
10
115 -
116 int digits = 0;
executed (the execution status of this line is deduced): int digits = 0;
-
117 qreal divisor = 1;
executed (the execution status of this line is deduced): qreal divisor = 1;
-
118 -
119 while (num / divisor >= 1) {
evaluated: num / divisor >= 1
TRUEFALSE
yes
Evaluation Count:6
yes
Evaluation Count:6
6
120 divisor *= 10;
executed (the execution status of this line is deduced): divisor *= 10;
-
121 ++digits;
executed (the execution status of this line is deduced): ++digits;
-
122 }
executed: }
Execution Count:6
6
123 -
124 return digits;
executed: return digits;
Execution Count:6
6
125 } -
126 -
127 // Pretty-prints a benchmark result using the given number of digits. -
128 template <typename T> QString formatResult(T number, int significantDigits) -
129 { -
130 if (number < T(0))
partially evaluated: number < T(0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:16
0-16
131 return QLatin1String("NAN");
never executed: return QLatin1String("NAN");
0
132 if (number == T(0))
evaluated: number == T(0)
TRUEFALSE
yes
Evaluation Count:10
yes
Evaluation Count:6
6-10
133 return QLatin1String("0");
executed: return QLatin1String("0");
Execution Count:10
10
134 -
135 QString beforeDecimalPoint = QString::number(qint64(number), 'f', 0);
executed (the execution status of this line is deduced): QString beforeDecimalPoint = QString::number(qint64(number), 'f', 0);
-
136 QString afterDecimalPoint = QString::number(number, 'f', 20);
executed (the execution status of this line is deduced): QString afterDecimalPoint = QString::number(number, 'f', 20);
-
137 afterDecimalPoint.remove(0, beforeDecimalPoint.count() + 1);
executed (the execution status of this line is deduced): afterDecimalPoint.remove(0, beforeDecimalPoint.count() + 1);
-
138 -
139 int beforeUse = qMin(beforeDecimalPoint.count(), significantDigits);
executed (the execution status of this line is deduced): int beforeUse = qMin(beforeDecimalPoint.count(), significantDigits);
-
140 int beforeRemove = beforeDecimalPoint.count() - beforeUse;
executed (the execution status of this line is deduced): int beforeRemove = beforeDecimalPoint.count() - beforeUse;
-
141 -
142 // Replace insignificant digits before the decimal point with zeros. -
143 beforeDecimalPoint.chop(beforeRemove);
executed (the execution status of this line is deduced): beforeDecimalPoint.chop(beforeRemove);
-
144 for (int i = 0; i < beforeRemove; ++i) {
partially evaluated: i < beforeRemove
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:6
0-6
145 beforeDecimalPoint.append(QLatin1Char('0'));
never executed (the execution status of this line is deduced): beforeDecimalPoint.append(QLatin1Char('0'));
-
146 }
never executed: }
0
147 -
148 int afterUse = significantDigits - beforeUse;
executed (the execution status of this line is deduced): int afterUse = significantDigits - beforeUse;
-
149 -
150 // leading zeroes after the decimal point does not count towards the digit use. -
151 if (beforeDecimalPoint == QLatin1String("0") && afterDecimalPoint.isEmpty() == false) {
partially evaluated: beforeDecimalPoint == QLatin1String("0")
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:6
never evaluated: afterDecimalPoint.isEmpty() == false
0-6
152 ++afterUse;
never executed (the execution status of this line is deduced): ++afterUse;
-
153 -
154 int i = 0;
never executed (the execution status of this line is deduced): int i = 0;
-
155 while (i < afterDecimalPoint.count() && afterDecimalPoint.at(i) == QLatin1Char('0')) {
never evaluated: i < afterDecimalPoint.count()
never evaluated: afterDecimalPoint.at(i) == QLatin1Char('0')
0
156 ++i;
never executed (the execution status of this line is deduced): ++i;
-
157 }
never executed: }
0
158 -
159 afterUse += i;
never executed (the execution status of this line is deduced): afterUse += i;
-
160 }
never executed: }
0
161 -
162 int afterRemove = afterDecimalPoint.count() - afterUse;
executed (the execution status of this line is deduced): int afterRemove = afterDecimalPoint.count() - afterUse;
-
163 afterDecimalPoint.chop(afterRemove);
executed (the execution status of this line is deduced): afterDecimalPoint.chop(afterRemove);
-
164 -
165 QChar separator = QLatin1Char(',');
executed (the execution status of this line is deduced): QChar separator = QLatin1Char(',');
-
166 QChar decimalPoint = QLatin1Char('.');
executed (the execution status of this line is deduced): QChar decimalPoint = QLatin1Char('.');
-
167 -
168 // insert thousands separators -
169 int length = beforeDecimalPoint.length();
executed (the execution status of this line is deduced): int length = beforeDecimalPoint.length();
-
170 for (int i = beforeDecimalPoint.length() -1; i >= 1; --i) {
partially evaluated: i >= 1
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:6
0-6
171 if ((length - i) % 3 == 0)
never evaluated: (length - i) % 3 == 0
0
172 beforeDecimalPoint.insert(i, separator);
never executed: beforeDecimalPoint.insert(i, separator);
0
173 }
never executed: }
0
174 -
175 QString print;
executed (the execution status of this line is deduced): QString print;
-
176 print = beforeDecimalPoint;
executed (the execution status of this line is deduced): print = beforeDecimalPoint;
-
177 if (afterUse > 0)
partially evaluated: afterUse > 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:6
0-6
178 print.append(decimalPoint);
never executed: print.append(decimalPoint);
0
179 -
180 print += afterDecimalPoint;
executed (the execution status of this line is deduced): print += afterDecimalPoint;
-
181 -
182 -
183 return print;
executed: return print;
Execution Count:6
6
184 } -
185 -
186 template <typename T> -
187 int formatResult(char * buffer, int bufferSize, T number, int significantDigits) -
188 { -
189 QString result = formatResult(number, significantDigits);
executed (the execution status of this line is deduced): QString result = formatResult(number, significantDigits);
-
190 qstrncpy(buffer, result.toLatin1().constData(), bufferSize);
executed (the execution status of this line is deduced): qstrncpy(buffer, result.toLatin1().constData(), bufferSize);
-
191 int size = result.count();
executed (the execution status of this line is deduced): int size = result.count();
-
192 return size;
executed: return size;
Execution Count:16
16
193 } -
194} -
195 -
196void QPlainTestLogger::outputMessage(const char *str) -
197{ -
198#if defined(Q_OS_WINCE) -
199 QString strUtf16 = QString::fromLatin1(str); -
200 const int maxOutputLength = 255; -
201 do { -
202 QString tmp = strUtf16.left(maxOutputLength); -
203 OutputDebugString((wchar_t*)tmp.utf16()); -
204 strUtf16.remove(0, maxOutputLength); -
205 } while (!strUtf16.isEmpty()); -
206 if (stream != stdout) -
207#elif defined(Q_OS_WIN) -
208 OutputDebugStringA(str); -
209#endif -
210 outputString(str);
executed (the execution status of this line is deduced): outputString(str);
-
211}
executed: }
Execution Count:69974
69974
212 -
213void QPlainTestLogger::printMessage(const char *type, const char *msg, const char *file, int line) -
214{ -
215 QTEST_ASSERT(type);
never executed: qt_assert("type","qplaintestlogger.cpp",215);
executed: }
Execution Count:69171
partially evaluated: !(type)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:69171
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:69171
0-69171
216 QTEST_ASSERT(msg);
never executed: qt_assert("msg","qplaintestlogger.cpp",216);
executed: }
Execution Count:69171
partially evaluated: !(msg)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:69171
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:69171
0-69171
217 -
218 QTestCharBuffer buf;
executed (the execution status of this line is deduced): QTestCharBuffer buf;
-
219 -
220 const char *fn = QTestResult::currentTestFunction() ? QTestResult::currentTestFunction()
partially evaluated: QTestResult::currentTestFunction()
TRUEFALSE
yes
Evaluation Count:69171
no
Evaluation Count:0
0-69171
221 : "UnknownTestFunc";
executed (the execution status of this line is deduced): : "UnknownTestFunc";
-
222 const char *tag = QTestResult::currentDataTag() ? QTestResult::currentDataTag() : "";
evaluated: QTestResult::currentDataTag()
TRUEFALSE
yes
Evaluation Count:62195
yes
Evaluation Count:6976
6976-62195
223 const char *gtag = QTestResult::currentGlobalDataTag()
evaluated: QTestResult::currentGlobalDataTag()
TRUEFALSE
yes
Evaluation Count:804
yes
Evaluation Count:68367
804-68367
224 ? QTestResult::currentGlobalDataTag()
executed (the execution status of this line is deduced): ? QTestResult::currentGlobalDataTag()
-
225 : "";
executed (the execution status of this line is deduced): : "";
-
226 const char *filler = (tag[0] && gtag[0]) ? ":" : "";
evaluated: tag[0]
TRUEFALSE
yes
Evaluation Count:62180
yes
Evaluation Count:6991
evaluated: gtag[0]
TRUEFALSE
yes
Evaluation Count:700
yes
Evaluation Count:61480
700-62180
227 if (file) {
evaluated: file
TRUEFALSE
yes
Evaluation Count:895
yes
Evaluation Count:68276
895-68276
228 QTest::qt_asprintf(&buf, "%s: %s::%s(%s%s%s)%s%s\n"
executed (the execution status of this line is deduced): QTest::qt_asprintf(&buf, "%s: %s::%s(%s%s%s)%s%s\n"
-
229#ifdef Q_OS_WIN
executed (the execution status of this line is deduced):
-
230 "%s(%d) : failure location\n"
executed (the execution status of this line is deduced):
-
231#else
executed (the execution status of this line is deduced):
-
232 " Loc: [%s(%d)]\n"
executed (the execution status of this line is deduced): " Loc: [%s(%d)]\n"
-
233#endif
executed (the execution status of this line is deduced):
-
234 , type, QTestResult::currentTestObjectName(), fn, gtag, filler, tag,
executed (the execution status of this line is deduced): , type, QTestResult::currentTestObjectName(), fn, gtag, filler, tag,
-
235 msg[0] ? " " : "", msg, file, line);
executed (the execution status of this line is deduced): msg[0] ? " " : "", msg, file, line);
-
236 } else {
executed: }
Execution Count:895
895
237 QTest::qt_asprintf(&buf, "%s: %s::%s(%s%s%s)%s%s\n",
executed (the execution status of this line is deduced): QTest::qt_asprintf(&buf, "%s: %s::%s(%s%s%s)%s%s\n",
-
238 type, QTestResult::currentTestObjectName(), fn, gtag, filler, tag,
executed (the execution status of this line is deduced): type, QTestResult::currentTestObjectName(), fn, gtag, filler, tag,
-
239 msg[0] ? " " : "", msg);
executed (the execution status of this line is deduced): msg[0] ? " " : "", msg);
-
240 }
executed: }
Execution Count:68276
68276
241 // In colored mode, printf above stripped our nonprintable control characters. -
242 // Put them back. -
243 memcpy(buf.data(), type, strlen(type));
executed (the execution status of this line is deduced): memcpy(buf.data(), type, strlen(type));
-
244 outputMessage(buf.data());
executed (the execution status of this line is deduced): outputMessage(buf.data());
-
245}
executed: }
Execution Count:69171
69171
246 -
247void QPlainTestLogger::printBenchmarkResult(const QBenchmarkResult &result) -
248{ -
249 const char *bmtag = QTest::benchmarkResult2String();
executed (the execution status of this line is deduced): const char *bmtag = QTest::benchmarkResult2String();
-
250 -
251 char buf1[1024];
executed (the execution status of this line is deduced): char buf1[1024];
-
252 qsnprintf(
executed (the execution status of this line is deduced): qsnprintf(
-
253 buf1, sizeof(buf1), "%s: %s::%s",
executed (the execution status of this line is deduced): buf1, sizeof(buf1), "%s: %s::%s",
-
254 bmtag,
executed (the execution status of this line is deduced): bmtag,
-
255 QTestResult::currentTestObjectName(),
executed (the execution status of this line is deduced): QTestResult::currentTestObjectName(),
-
256 result.context.slotName.toLatin1().data());
executed (the execution status of this line is deduced): result.context.slotName.toLatin1().data());
-
257 -
258 char bufTag[1024];
executed (the execution status of this line is deduced): char bufTag[1024];
-
259 bufTag[0] = 0;
executed (the execution status of this line is deduced): bufTag[0] = 0;
-
260 QByteArray tag = result.context.tag.toLocal8Bit();
executed (the execution status of this line is deduced): QByteArray tag = result.context.tag.toLocal8Bit();
-
261 if (tag.isEmpty() == false) {
partially evaluated: tag.isEmpty() == false
TRUEFALSE
yes
Evaluation Count:8
no
Evaluation Count:0
0-8
262 qsnprintf(bufTag, sizeof(bufTag), ":\"%s\"", tag.data());
executed (the execution status of this line is deduced): qsnprintf(bufTag, sizeof(bufTag), ":\"%s\"", tag.data());
-
263 }
executed: }
Execution Count:8
8
264 -
265 -
266 char fillFormat[8];
executed (the execution status of this line is deduced): char fillFormat[8];
-
267 int fillLength = 5;
executed (the execution status of this line is deduced): int fillLength = 5;
-
268 qsnprintf(fillFormat, sizeof(fillFormat), ":\n%%%ds", fillLength);
executed (the execution status of this line is deduced): qsnprintf(fillFormat, sizeof(fillFormat), ":\n%%%ds", fillLength);
-
269 char fill[1024];
executed (the execution status of this line is deduced): char fill[1024];
-
270 qsnprintf(fill, sizeof(fill), fillFormat, "");
executed (the execution status of this line is deduced): qsnprintf(fill, sizeof(fill), fillFormat, "");
-
271 -
272 const char * unitText = QTest::benchmarkMetricUnit(result.metric);
executed (the execution status of this line is deduced): const char * unitText = QTest::benchmarkMetricUnit(result.metric);
-
273 -
274 qreal valuePerIteration = qreal(result.value) / qreal(result.iterations);
executed (the execution status of this line is deduced): qreal valuePerIteration = qreal(result.value) / qreal(result.iterations);
-
275 char resultBuffer[100] = "";
executed (the execution status of this line is deduced): char resultBuffer[100] = "";
-
276 QTest::formatResult(resultBuffer, 100, valuePerIteration, QTest::countSignificantDigits(result.value));
executed (the execution status of this line is deduced): QTest::formatResult(resultBuffer, 100, valuePerIteration, QTest::countSignificantDigits(result.value));
-
277 -
278 char buf2[1024];
executed (the execution status of this line is deduced): char buf2[1024];
-
279 qsnprintf(buf2, sizeof(buf2), "%s %s", resultBuffer, unitText);
executed (the execution status of this line is deduced): qsnprintf(buf2, sizeof(buf2), "%s %s", resultBuffer, unitText);
-
280 -
281 char buf2_[1024];
executed (the execution status of this line is deduced): char buf2_[1024];
-
282 QByteArray iterationText = " per iteration";
executed (the execution status of this line is deduced): QByteArray iterationText = " per iteration";
-
283 Q_ASSERT(result.iterations > 0);
executed (the execution status of this line is deduced): qt_noop();
-
284 qsnprintf(buf2_, sizeof(buf2_), "%s", iterationText.data());
executed (the execution status of this line is deduced): qsnprintf(buf2_, sizeof(buf2_), "%s", iterationText.data());
-
285 -
286 char buf3[1024];
executed (the execution status of this line is deduced): char buf3[1024];
-
287 Q_ASSERT(result.iterations > 0);
executed (the execution status of this line is deduced): qt_noop();
-
288 QTest::formatResult(resultBuffer, 100, result.value, QTest::countSignificantDigits(result.value));
executed (the execution status of this line is deduced): QTest::formatResult(resultBuffer, 100, result.value, QTest::countSignificantDigits(result.value));
-
289 qsnprintf(buf3, sizeof(buf3), " (total: %s, iterations: %d)", resultBuffer, result.iterations);
executed (the execution status of this line is deduced): qsnprintf(buf3, sizeof(buf3), " (total: %s, iterations: %d)", resultBuffer, result.iterations);
-
290 -
291 char buf[1024];
executed (the execution status of this line is deduced): char buf[1024];
-
292 -
293 if (result.setByMacro) {
partially evaluated: result.setByMacro
TRUEFALSE
yes
Evaluation Count:8
no
Evaluation Count:0
0-8
294 qsnprintf(buf, sizeof(buf), "%s%s%s%s%s%s\n", buf1, bufTag, fill, buf2, buf2_, buf3);
executed (the execution status of this line is deduced): qsnprintf(buf, sizeof(buf), "%s%s%s%s%s%s\n", buf1, bufTag, fill, buf2, buf2_, buf3);
-
295 } else {
executed: }
Execution Count:8
8
296 qsnprintf(buf, sizeof(buf), "%s%s%s%s\n", buf1, bufTag, fill, buf2);
never executed (the execution status of this line is deduced): qsnprintf(buf, sizeof(buf), "%s%s%s%s\n", buf1, bufTag, fill, buf2);
-
297 }
never executed: }
0
298 -
299 memcpy(buf, bmtag, strlen(bmtag));
executed (the execution status of this line is deduced): memcpy(buf, bmtag, strlen(bmtag));
-
300 outputMessage(buf);
executed (the execution status of this line is deduced): outputMessage(buf);
-
301}
executed: }
Execution Count:8
8
302 -
303QPlainTestLogger::QPlainTestLogger(const char *filename) -
304 : QAbstractTestLogger(filename) -
305{ -
306}
executed: }
Execution Count:399
399
307 -
308QPlainTestLogger::~QPlainTestLogger() -
309{ -
310} -
311 -
312void QPlainTestLogger::startLogging() -
313{ -
314 QAbstractTestLogger::startLogging();
executed (the execution status of this line is deduced): QAbstractTestLogger::startLogging();
-
315 -
316 char buf[1024];
executed (the execution status of this line is deduced): char buf[1024];
-
317 if (QTestLog::verboseLevel() < 0) {
partially evaluated: QTestLog::verboseLevel() < 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:399
0-399
318 qsnprintf(buf, sizeof(buf), "Testing %s\n", QTestResult::currentTestObjectName());
never executed (the execution status of this line is deduced): qsnprintf(buf, sizeof(buf), "Testing %s\n", QTestResult::currentTestObjectName());
-
319 } else {
never executed: }
0
320 qsnprintf(buf, sizeof(buf),
executed (the execution status of this line is deduced): qsnprintf(buf, sizeof(buf),
-
321 "********* Start testing of %s *********\n"
executed (the execution status of this line is deduced): "********* Start testing of %s *********\n"
-
322 "Config: Using QTest library " QTEST_VERSION_STR
executed (the execution status of this line is deduced): "Config: Using QTest library " "5.0.2"
-
323 ", Qt %s\n", QTestResult::currentTestObjectName(), qVersion());
executed (the execution status of this line is deduced): ", Qt %s\n", QTestResult::currentTestObjectName(), qVersion());
-
324 }
executed: }
Execution Count:399
399
325 outputMessage(buf);
executed (the execution status of this line is deduced): outputMessage(buf);
-
326}
executed: }
Execution Count:399
399
327 -
328void QPlainTestLogger::stopLogging() -
329{ -
330 char buf[1024];
executed (the execution status of this line is deduced): char buf[1024];
-
331 if (QTestLog::verboseLevel() < 0) {
partially evaluated: QTestLog::verboseLevel() < 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:396
0-396
332 qsnprintf(buf, sizeof(buf), "Totals: %d passed, %d failed, %d skipped\n",
never executed (the execution status of this line is deduced): qsnprintf(buf, sizeof(buf), "Totals: %d passed, %d failed, %d skipped\n",
-
333 QTestLog::passCount(), QTestLog::failCount(),
never executed (the execution status of this line is deduced): QTestLog::passCount(), QTestLog::failCount(),
-
334 QTestLog::skipCount());
never executed (the execution status of this line is deduced): QTestLog::skipCount());
-
335 } else {
never executed: }
0
336 qsnprintf(buf, sizeof(buf),
executed (the execution status of this line is deduced): qsnprintf(buf, sizeof(buf),
-
337 "Totals: %d passed, %d failed, %d skipped\n"
executed (the execution status of this line is deduced): "Totals: %d passed, %d failed, %d skipped\n"
-
338 "********* Finished testing of %s *********\n",
executed (the execution status of this line is deduced): "********* Finished testing of %s *********\n",
-
339 QTestLog::passCount(), QTestLog::failCount(),
executed (the execution status of this line is deduced): QTestLog::passCount(), QTestLog::failCount(),
-
340 QTestLog::skipCount(), QTestResult::currentTestObjectName());
executed (the execution status of this line is deduced): QTestLog::skipCount(), QTestResult::currentTestObjectName());
-
341 }
executed: }
Execution Count:396
396
342 outputMessage(buf);
executed (the execution status of this line is deduced): outputMessage(buf);
-
343 -
344 QAbstractTestLogger::stopLogging();
executed (the execution status of this line is deduced): QAbstractTestLogger::stopLogging();
-
345}
executed: }
Execution Count:396
396
346 -
347 -
348void QPlainTestLogger::enterTestFunction(const char * /*function*/) -
349{ -
350 if (QTestLog::verboseLevel() >= 1)
partially evaluated: QTestLog::verboseLevel() >= 1
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:7610
0-7610
351 printMessage(QTest::messageType2String(Info), "entering");
never executed: printMessage(QTest::messageType2String(Info), "entering");
0
352}
executed: }
Execution Count:7610
7610
353 -
354void QPlainTestLogger::leaveTestFunction() -
355{ -
356} -
357 -
358void QPlainTestLogger::addIncident(IncidentTypes type, const char *description, -
359 const char *file, int line) -
360{ -
361 // suppress PASS and XFAIL in silent mode -
362 if ((type == QAbstractTestLogger::Pass || type == QAbstractTestLogger::XFail)
evaluated: type == QAbstractTestLogger::Pass
TRUEFALSE
yes
Evaluation Count:66746
yes
Evaluation Count:576
evaluated: type == QAbstractTestLogger::XFail
TRUEFALSE
yes
Evaluation Count:339
yes
Evaluation Count:237
237-66746
363 && QTestLog::verboseLevel() < 0)
partially evaluated: QTestLog::verboseLevel() < 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:67085
0-67085
364 return;
never executed: return;
0
365 -
366 printMessage(QTest::incidentType2String(type), description, file, line);
executed (the execution status of this line is deduced): printMessage(QTest::incidentType2String(type), description, file, line);
-
367}
executed: }
Execution Count:67322
67322
368 -
369void QPlainTestLogger::addBenchmarkResult(const QBenchmarkResult &result) -
370{ -
371 // suppress benchmark results in silent mode -
372 if (QTestLog::verboseLevel() < 0)
partially evaluated: QTestLog::verboseLevel() < 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:8
0-8
373 return;
never executed: return;
0
374 -
375 printBenchmarkResult(result);
executed (the execution status of this line is deduced): printBenchmarkResult(result);
-
376}
executed: }
Execution Count:8
8
377 -
378void QPlainTestLogger::addMessage(MessageTypes type, const char *message, -
379 const char *file, int line) -
380{ -
381 // suppress non-fatal messages in silent mode -
382 if (type != QAbstractTestLogger::QFatal && QTestLog::verboseLevel() < 0)
evaluated: type != QAbstractTestLogger::QFatal
TRUEFALSE
yes
Evaluation Count:1844
yes
Evaluation Count:5
partially evaluated: QTestLog::verboseLevel() < 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1844
0-1844
383 return;
never executed: return;
0
384 -
385 printMessage(QTest::messageType2String(type), message, file, line);
executed (the execution status of this line is deduced): printMessage(QTest::messageType2String(type), message, file, line);
-
386}
executed: }
Execution Count:1849
1849
387 -
388QT_END_NAMESPACE -
389 -
Source codeSwitch to Preprocessed file

Generated by Squish Coco Non-Commercial