GCC Code Coverage Report


Directory: .
File: main.cpp
Date: 2025-09-27 21:24:05+00:00
Coverage Exec Excl Total
Lines: 95.8% 23 4 28
Functions: 100.0% 7 0 7
Branches: 50.0% 18 10 46

Line Branch Exec Source
1 #include <iostream>
2
3 namespace ns1
4 {
5 class Bar1
6 {
7 public:
8 3 Bar1() : m_bar_1(1)
9 3 { ++m_counter_bar1; }
10 3 virtual ~Bar1()
11 3 { --m_counter_bar1; } // possible compiler-generated destruction code - auto-detected and excluded
12
13 int m_bar_1;
14 static int m_counter_bar1;
15 };
16 int Bar1::m_counter_bar1 = 0;
17 }
18
19 namespace ns2
20 {
21 class Bar2 : public ns1::Bar1
22 {
23 public:
24 2 Bar2() : m_bar_2(2)
25 2 { ++m_counter_bar2; }
26 2 virtual ~Bar2()
27 2 { --m_counter_bar2; } // possible compiler-generated destruction code - auto-detected and excluded
28
29 int m_bar_2;
30 static int m_counter_bar2;
31 };
32 int Bar2::m_counter_bar2 = 0;
33 }
34
35 namespace ns3
36 {
37 class Bar3 : public ns2::Bar2
38 {
39 public:
40 1 Bar3() : m_bar_3(3)
41 1 { ++m_counter_bar3; }
42 1 virtual ~Bar3()
43 1 { --m_counter_bar3; } // possible compiler-generated destruction code - auto-detected and excluded
44
45 int m_bar_3;
46 static int m_counter_bar3;
47 };
48 int Bar3::m_counter_bar3 = 0;
49 }
50
51 1 int main(int argc, char* argv[]) {
52 try {
53 1 ns1::Bar1 bar1;
54
3/6
✓ Branch 1 taken 1 time.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 time.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 time.
✗ Branch 8 not taken.
1 std::cout << "bar1.m_bar_1: " << bar1.m_bar_1 << std::endl;
55 1 ns2::Bar2 bar2;
56
3/6
✓ Branch 1 taken 1 time.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 time.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 time.
✗ Branch 8 not taken.
1 std::cout << "bar2.m_bar_1: " << bar2.m_bar_1 << std::endl;
57
3/6
✓ Branch 1 taken 1 time.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 time.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 time.
✗ Branch 8 not taken.
1 std::cout << "bar2.m_bar_2: " << bar2.m_bar_2 << std::endl;
58 1 ns3::Bar3 bar3;
59
3/6
✓ Branch 1 taken 1 time.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 time.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 time.
✗ Branch 8 not taken.
1 std::cout << "bar3.m_bar_1: " << bar3.m_bar_1 << std::endl;
60
3/6
✓ Branch 1 taken 1 time.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 time.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 time.
✗ Branch 8 not taken.
1 std::cout << "bar3.m_bar_2: " << bar3.m_bar_2 << std::endl;
61
3/6
✓ Branch 1 taken 1 time.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 time.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 time.
✗ Branch 8 not taken.
1 std::cout << "bar3.m_bar_3: " << bar3.m_bar_3 << std::endl;
62 } catch (const std::exception &e) { // LCOV_EXCL_START
63 std::cout << "caught exception";
64 std::cout << ": " << e.what();
65 std::cout << std::endl;
66 } // LCOV_EXCL_STOP
67
68 1 return 0;
69 } // compiler-generated destruction code - auto-detected and excluded
70