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: 97.1% 34 / 0 / 35
Functions: 100.0% 1 / 0 / 1
Branches: 72.0% 36 / 0 / 50

presentation/CalendarTaskLayer.cpp
Line Branch Exec Source
1 #include "CalendarTaskLayer.h"
2
3 #include "data/CalendarStore.h"
4
5 #include <QHash>
6
7 namespace CalendarTaskLayer {
8
9 6 QVector<CalendarOccurrence> occurrences(const CalendarStore &store, const QDate &start, const QDate &end,
10 const QDate &today, const QStringList &hiddenCalendars) {
11 6 QHash<QString, CalendarInfo> calendars;
12
5/5
✓ Branch 2 → 3 taken 6 times.
✓ Branch 3 → 4 taken 6 times.
✓ Branch 4 → 5 taken 6 times.
✓ Branch 12 → 6 taken 4 times.
✓ Branch 12 → 13 taken 6 times.
10 for (const CalendarInfo &calendar : store.allCalendars())
13
2/2
✓ Branch 7 → 8 taken 4 times.
✓ Branch 8 → 9 taken 4 times.
10 calendars.insert(calendarSelectionKey(calendar.accountId, calendar.path), calendar);
14 6 QVector<CalendarOccurrence> result;
15
5/5
✓ Branch 14 → 15 taken 6 times.
✓ Branch 15 → 16 taken 6 times.
✓ Branch 16 → 17 taken 6 times.
✓ Branch 90 → 18 taken 6 times.
✓ Branch 90 → 91 taken 6 times.
12 for (const CalendarTask &task : store.openTasks()) {
16
5/9
✓ Branch 19 → 20 taken 6 times.
✓ Branch 20 → 21 taken 6 times.
✗ Branch 20 → 27 not taken.
✓ Branch 23 → 24 taken 6 times.
✗ Branch 23 → 27 not taken.
✗ Branch 26 → 27 not taken.
✓ Branch 26 → 28 taken 6 times.
✗ Branch 29 → 30 not taken.
✓ Branch 29 → 31 taken 6 times.
6 if (!task.due.isValid() || task.status == QLatin1String("COMPLETED") || task.status == QLatin1String("CANCELLED"))
17 ✗ continue;
18
1/1
✓ Branch 31 → 32 taken 6 times.
6 const QString key = calendarSelectionKey(task.accountId, task.calendarPath);
19
1/2
✗ Branch 33 → 34 not taken.
✓ Branch 33 → 35 taken 6 times.
6 if (hiddenCalendars.contains(key)) continue;
20
3/9
✓ Branch 35 → 36 taken 6 times.
✗ Branch 35 → 37 not taken.
✓ Branch 36 → 39 taken 6 times.
✗ Branch 37 → 38 not taken.
✗ Branch 38 → 39 not taken.
✗ Branch 39 → 40 not taken.
✓ Branch 39 → 41 taken 6 times.
✗ Branch 103 → 104 not taken.
✗ Branch 103 → 105 not taken.
6 const QDate due = task.dueAllDay ? task.due.date() : task.due.toLocalTime().date();
21 6 const bool overdue = due < today;
22
2/2
✓ Branch 43 → 44 taken 4 times.
✓ Branch 43 → 45 taken 2 times.
6 const QDate day = overdue ? today : due;
23
3/6
✓ Branch 48 → 49 taken 6 times.
✗ Branch 48 → 52 not taken.
✗ Branch 51 → 52 not taken.
✓ Branch 51 → 53 taken 6 times.
✗ Branch 54 → 55 not taken.
✓ Branch 54 → 56 taken 6 times.
6 if (day < start || day > end) continue;
24 6 const CalendarInfo calendar = calendars.value(key);
25
1/1
✓ Branch 57 → 58 taken 6 times.
6 CalendarOccurrence occurrence;
26 6 occurrence.uid = task.uid;
27 6 occurrence.accountId = task.accountId;
28 6 occurrence.calendarPath = task.calendarPath;
29 6 occurrence.calendarName = calendar.displayName;
30 6 occurrence.color = calendar.color;
31 6 occurrence.summary = task.summary;
32 6 occurrence.description = task.description;
33 6 occurrence.readOnly = calendar.readOnly;
34 6 occurrence.allDay = true;
35 6 occurrence.task = true;
36 6 occurrence.overdue = overdue;
37
2/2
✓ Branch 65 → 66 taken 6 times.
✓ Branch 66 → 67 taken 6 times.
6 occurrence.start = QDateTime(day, QTime(0, 0));
38
3/3
✓ Branch 69 → 70 taken 6 times.
✓ Branch 70 → 71 taken 6 times.
✓ Branch 71 → 72 taken 6 times.
6 occurrence.end = QDateTime(day.addDays(1), QTime(0, 0));
39 6 occurrence.firstDay = occurrence.lastDay = day;
40
2/2
✓ Branch 74 → 75 taken 6 times.
✓ Branch 75 → 76 taken 6 times.
6 occurrence.startIso = task.due.toUTC().toString(Qt::ISODate);
41
1/1
✓ Branch 79 → 80 taken 6 times.
6 result.append(occurrence);
42 12 }
43 6 return result;
44 6 }
45
46 } // namespace CalendarTaskLayer
47