GCC Code Coverage Report


Directory: ./
File: unit_tests/tests/controllers/can/test_can_rx.cpp
Date: 2025-10-03 00:57:22
Coverage Exec Excl Total
Lines: 97.6% 41 0 42
Functions: 94.7% 18 0 19
Branches: 77.3% 34 0 44
Decisions: -% 0 - 0

Line Branch Decision Exec Source
1 #include "pch.h"
2
3 #include "can_listener.h"
4
5 using ::testing::StrictMock;
6 using ::testing::_;
7
8 class MockCanListener : public CanListener {
9 public:
10
1/1
✓ Branch 3 taken 2 times.
2 MockCanListener(uint32_t id) : CanListener(id) { }
11
12
3/3
✓ Branch 3 taken 1 time.
✓ Branch 7 taken 1 time.
✓ Branch 10 taken 1 time.
2 MOCK_METHOD(void, decodeFrame, (const CANRxFrame& frame, efitick_t nowNt), (override));
13
3/3
✓ Branch 3 taken 2 times.
✓ Branch 7 taken 2 times.
✓ Branch 10 taken 2 times.
4 MOCK_METHOD(bool, acceptFrame, (const size_t busIndex, const CANRxFrame& frame), (const, override));
14 };
15
16 4 TEST(CanListener, FrameAccepted) {
17
1/1
✓ Branch 3 taken 1 time.
1 StrictMock<MockCanListener> dut(0x123);
18
19 1 CANRxFrame frame;
20
21 // Accept should be called, returns true
22
8/8
✓ Branch 3 taken 1 time.
✓ Branch 7 taken 1 time.
✓ Branch 10 taken 1 time.
✓ Branch 14 taken 1 time.
✓ Branch 18 taken 1 time.
✓ Branch 23 taken 1 time.
✓ Branch 26 taken 1 time.
✓ Branch 29 taken 1 time.
1 EXPECT_CALL(dut, acceptFrame(0, _)).WillOnce(Return(true));
23
24 // Because accept returns true, decode is called
25
5/5
✓ Branch 3 taken 1 time.
✓ Branch 7 taken 1 time.
✓ Branch 10 taken 1 time.
✓ Branch 14 taken 1 time.
✓ Branch 18 taken 1 time.
1 EXPECT_CALL(dut, decodeFrame(_, 1234));
26
27
1/1
✓ Branch 1 taken 1 time.
1 dut.processFrame(0, frame, 1234);
28 2 }
29
30 4 TEST(CanListener, FrameNotAccepted) {
31
1/1
✓ Branch 3 taken 1 time.
1 StrictMock<MockCanListener> dut(0x123);
32
33 1 CANRxFrame frame;
34
35 // Accept should be called, returns false, so decode not called
36
8/8
✓ Branch 3 taken 1 time.
✓ Branch 7 taken 1 time.
✓ Branch 10 taken 1 time.
✓ Branch 14 taken 1 time.
✓ Branch 18 taken 1 time.
✓ Branch 23 taken 1 time.
✓ Branch 26 taken 1 time.
✓ Branch 29 taken 1 time.
1 EXPECT_CALL(dut, acceptFrame(0, _)).WillOnce(Return(false));
37
38
1/1
✓ Branch 1 taken 1 time.
1 dut.processFrame(0, frame, 1234);
39 2 }
40
41 struct CanListenerNoDecode : public CanListener {
42 2 CanListenerNoDecode(uint32_t id) : CanListener(id) { }
43
44 void decodeFrame(const CANRxFrame& frame, efitick_t nowNt) override { }
45 };
46
47 4 TEST(CanListener, FrameAcceptedChecksId) {
48 1 CanListenerNoDecode dut(0x123);
49
50 1 CANRxFrame frame;
51
52 1 frame.SID = 0x123;
53 1 frame.IDE = false;
54
55
1/6
✗ Branch 6 not taken.
✓ Branch 7 taken 1 time.
✗ Branch 10 not taken.
✗ Branch 15 not taken.
✗ Branch 19 not taken.
✗ Branch 22 not taken.
1 EXPECT_TRUE(dut.acceptFrame(0, frame));
56 1 }
57
58 4 TEST(CanListener, FrameNotAcceptedChecksId) {
59 1 CanListenerNoDecode dut(0x123);
60
61 1 CANRxFrame frame;
62
63 1 frame.SID = 0x456;
64 1 frame.IDE = false;
65
66
1/6
✗ Branch 6 not taken.
✓ Branch 7 taken 1 time.
✗ Branch 10 not taken.
✗ Branch 15 not taken.
✗ Branch 19 not taken.
✗ Branch 22 not taken.
1 EXPECT_FALSE(dut.acceptFrame(0, frame));
67 1 }
68