MailJDTourDownloadDocsQualityTestsCoverage

Which source lines and branches the tests execute. Lines 91.5 %, branches 75.0 % (minimum 85 % and 72 %). main @ 399ffe3d · 21 October 2026 · pipeline 7238.

GCC Code Coverage Report


Directory: src/
Coverage: low: ≥ 0% medium: ≥ 75.0% high: ≥ 90.0%
Coverage Exec / Excl / Total
Lines: 100.0% 25 / 0 / 25
Functions: 100.0% 2 / 0 / 2
Branches: 90.5% 38 / 0 / 42

data/MailRuleCandidates.cpp
Line Branch Exec Source
1 #include "MailRuleCandidates.h"
2
3 #include <QLoggingCategory>
4 #include <QSqlError>
5 #include <QSqlQuery>
6
7
3/7
✓ Branch 2 → 3 taken 1 time.
✗ Branch 2 → 8 not taken.
✓ Branch 4 → 5 taken 1 time.
✗ Branch 4 → 8 not taken.
✓ Branch 5 → 6 taken 1 time.
✗ Branch 10 → 11 not taken.
✗ Branch 10 → 12 not taken.
1 Q_LOGGING_CATEGORY(lcRuleCandidates, "mailjd.sieve.candidates")
8
9 namespace MailRuleCandidates {
10
11 27 QList<MailHeader> read(QSqlDatabase &db, qint64 folderId) {
12 27 QList<MailHeader> result;
13
1/1
✓ Branch 2 → 3 taken 27 times.
27 QSqlQuery query(db);
14
1/1
✓ Branch 3 → 4 taken 27 times.
27 query.setForwardOnly(true);
15
1/1
✓ Branch 7 → 8 taken 27 times.
27 query.prepare(QStringLiteral("SELECT uid, subject, from_addr, to_addr, size, cc_addr, list_id FROM headers WHERE folder_id = :fid"));
16
1/1
✓ Branch 15 → 16 taken 27 times.
54 query.bindValue(QStringLiteral(":fid"), folderId);
17
3/3
✓ Branch 19 → 20 taken 27 times.
✓ Branch 20 → 21 taken 1 time.
✓ Branch 20 → 37 taken 26 times.
27 if (!query.exec()) {
18
8/8
✓ Branch 21 → 22 taken 1 time.
✓ Branch 25 → 26 taken 1 time.
✓ Branch 26 → 27 taken 1 time.
✓ Branch 27 → 28 taken 1 time.
✓ Branch 28 → 29 taken 1 time.
✓ Branch 29 → 30 taken 1 time.
✓ Branch 35 → 23 taken 1 time.
✓ Branch 35 → 36 taken 1 time.
2 qCWarning(lcRuleCandidates) << "Cannot read rule candidates:" << query.lastError().text();
19 1 return result;
20 }
21
3/3
✓ Branch 76 → 77 taken 278 times.
✓ Branch 77 → 38 taken 252 times.
✓ Branch 77 → 78 taken 26 times.
278 while (query.next()) {
22 252 MailHeader header;
23 252 header.folderId = folderId;
24
2/2
✓ Branch 39 → 40 taken 252 times.
✓ Branch 40 → 41 taken 252 times.
252 header.uid = query.value(0).toLongLong();
25
2/2
✓ Branch 42 → 43 taken 252 times.
✓ Branch 43 → 44 taken 252 times.
252 header.subject = query.value(1).toString();
26
2/2
✓ Branch 47 → 48 taken 252 times.
✓ Branch 48 → 49 taken 252 times.
252 header.from = query.value(2).toString();
27
2/2
✓ Branch 52 → 53 taken 252 times.
✓ Branch 53 → 54 taken 252 times.
252 header.to = query.value(3).toString();
28
2/2
✓ Branch 57 → 58 taken 252 times.
✓ Branch 58 → 59 taken 252 times.
252 header.size = query.value(4).toLongLong();
29
2/2
✓ Branch 60 → 61 taken 252 times.
✓ Branch 61 → 62 taken 252 times.
252 header.recipientsKnown = !query.value(5).isNull(); // synced since schema v24
30
2/2
✓ Branch 63 → 64 taken 252 times.
✓ Branch 64 → 65 taken 252 times.
252 header.cc = query.value(5).toString();
31
2/2
✓ Branch 68 → 69 taken 252 times.
✓ Branch 69 → 70 taken 252 times.
252 header.listId = query.value(6).toString();
32
1/1
✓ Branch 73 → 74 taken 252 times.
252 result.append(header);
33 252 }
34 26 return result;
35 27 }
36
37 } // namespace MailRuleCandidates
38