GCC Code Coverage Report


Directory: cvmfs/
File: cvmfs/catalog_counters.cc
Date: 2026-10-11 02:40:02
Exec Total Coverage
Lines: 48 53 90.6%
Branches: 12 14 85.7%

Line Branch Exec Source
1 /**
2 * This file is part of the CernVM File System.
3 */
4
5 #include "catalog_counters.h"
6
7 #include "directory_entry.h"
8 #include "util/exception.h"
9
10 namespace catalog {
11
12 20413 void DeltaCounters::ApplyDelta(const DirectoryEntry &dirent, const int delta) {
13
2/2
✓ Branch 1 taken 12740 times.
✓ Branch 2 taken 7673 times.
20413 if (dirent.IsRegular()) {
14 12740 self.regular_files += delta;
15 12740 self.file_size += delta * dirent.size();
16
2/2
✓ Branch 1 taken 542 times.
✓ Branch 2 taken 12198 times.
12740 if (dirent.IsChunkedFile()) {
17 542 self.chunked_files += delta;
18 542 self.chunked_file_size += delta * dirent.size();
19 }
20
2/2
✓ Branch 1 taken 3 times.
✓ Branch 2 taken 12737 times.
12740 if (dirent.IsExternalFile()) {
21 3 self.externals += delta;
22 3 self.external_file_size += delta * dirent.size();
23 }
24
2/2
✓ Branch 1 taken 560 times.
✓ Branch 2 taken 7113 times.
7673 } else if (dirent.IsLink()) {
25 560 self.symlinks += delta;
26
2/2
✓ Branch 1 taken 4 times.
✓ Branch 2 taken 7109 times.
7113 } else if (dirent.IsSpecial()) {
27 4 self.specials += delta;
28
1/2
✓ Branch 1 taken 7109 times.
✗ Branch 2 not taken.
7109 } else if (dirent.IsDirectory()) {
29 7109 self.directories += delta;
30 } else {
31 ✗ PANIC(NULL);
32 }
33
1/2
✗ Branch 1 not taken.
✓ Branch 2 taken 20413 times.
20413 if (dirent.HasXattrs()) {
34 ✗ self.xattrs += delta;
35 }
36 20413 }
37
38
39 1239 void DeltaCounters::PopulateToParent(DeltaCounters *parent) const {
40 1239 parent->subtree.Add(self);
41 1239 parent->subtree.Add(subtree);
42 1239 }
43
44 ✗ void DeltaCounters::RemoveFromSubtree(const DeltaCounters &child) {
45 ✗ subtree.Subtract(child.self);
46 ✗ subtree.Subtract(child.subtree);
47 }
48
49
50 140 void Counters::ApplyDelta(const DeltaCounters &delta) {
51 140 self.Add(delta.self);
52 140 subtree.Add(delta.subtree);
53 140 }
54
55
56 1 void Counters::AddAsSubtree(DeltaCounters *delta) const {
57 1 delta->subtree.Add(self);
58 1 delta->subtree.Add(subtree);
59 1 }
60
61 140 void Counters::MergeIntoParent(DeltaCounters *parent_delta) const {
62 140 parent_delta->self.Add(self);
63 140 parent_delta->subtree.Subtract(self);
64 140 }
65
66
67 1210 Counters_t Counters::GetSelfEntries() const {
68 1210 return self.regular_files + self.symlinks + self.specials + self.directories;
69 }
70
71
72 600 Counters_t Counters::GetSubtreeEntries() const {
73 600 return subtree.regular_files + subtree.symlinks + subtree.specials
74 600 + subtree.directories;
75 }
76
77
78 598 Counters_t Counters::GetAllEntries() const {
79 598 return GetSelfEntries() + GetSubtreeEntries();
80 }
81
82
83 178 DeltaCounters Counters::Diff(const Counters &from, const Counters &to) {
84 178 DeltaCounters result;
85 178 result.self.Add(to.self);
86 178 result.subtree.Add(to.subtree);
87 178 result.self.Subtract(from.self);
88 178 result.subtree.Subtract(from.subtree);
89 178 return result;
90 }
91
92 } // namespace catalog
93