GCC Code Coverage Report


Directory: ./
File: unit_tests/tests/sensor/sensor_reader.cpp
Date: 2025-10-03 00:57:22
Coverage Exec Excl Total
Lines: 100.0% 37 0 37
Functions: 100.0% 8 0 8
Branches: 35.6% 26 0 73
Decisions: -% 0 - 0

Line Branch Decision Exec Source
1 #include "pch.h"
2
3 #include "sensor_reader.h"
4
5 class SensorBasicReader : public ::testing::Test {
6 protected:
7 2 void SetUp() override {
8 2 Sensor::resetRegistry();
9 2 }
10
11 2 void TearDown() override {
12 2 Sensor::resetRegistry();
13 2 }
14 };
15
16 4 TEST_F(SensorBasicReader, Value) {
17 // Create a sensor - but don't register it
18
1/1
✓ Branch 2 taken 1 time.
1 MockSensor dut(SensorType::Tps1);
19
20 // Create a reader for the same sensor type - fallback value = 123
21 1 SensorReader<SensorType::Tps1> dutReader(123.0f);
22
23 // Expect not to find it
24 {
25
1/1
✓ Branch 1 taken 1 time.
1 auto result = dutReader.get();
26
1/6
✗ Branch 5 not taken.
✓ Branch 6 taken 1 time.
✗ Branch 9 not taken.
✗ Branch 14 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
1 EXPECT_FALSE(result.Valid);
27 }
28
29 // Register the sensor now
30
2/7
✓ Branch 3 taken 1 time.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 time.
✗ Branch 12 not taken.
✗ Branch 17 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
1 EXPECT_TRUE(dut.Register());
31
32 // Still expect invalid - no value has been set yet
33 {
34
1/1
✓ Branch 1 taken 1 time.
1 auto result = dutReader.get();
35
1/6
✗ Branch 5 not taken.
✓ Branch 6 taken 1 time.
✗ Branch 9 not taken.
✗ Branch 14 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
1 EXPECT_FALSE(result.Valid);
36 }
37
38
1/1
✓ Branch 1 taken 1 time.
1 dut.set(47.0f);
39
40 // Expect valid - with the value 47 we just set
41 {
42
1/1
✓ Branch 2 taken 1 time.
1 auto result = dutReader.get();
43
1/6
✗ Branch 3 not taken.
✓ Branch 4 taken 1 time.
✗ Branch 7 not taken.
✗ Branch 12 not taken.
✗ Branch 16 not taken.
✗ Branch 19 not taken.
1 EXPECT_TRUE(result.Valid);
44
2/6
✓ Branch 2 taken 1 time.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 time.
✗ Branch 9 not taken.
✗ Branch 14 not taken.
✗ Branch 17 not taken.
1 EXPECT_FLOAT_EQ(result.Value, 47.0f);
45 }
46 1 }
47
48 4 TEST_F(SensorBasicReader, FallbackValue) {
49 // Create a sensor - but don't register it
50
1/1
✓ Branch 2 taken 1 time.
1 MockSensor dut(SensorType::Tps1);
51
52 // Create a reader for the same sensor type - fallback value = 123
53 1 SensorReader<SensorType::Tps1> dutReader(123.0f);
54
55 // Expect not to find it
56 {
57
1/1
✓ Branch 1 taken 1 time.
1 auto result = dutReader.get();
58
1/6
✗ Branch 5 not taken.
✓ Branch 6 taken 1 time.
✗ Branch 9 not taken.
✗ Branch 14 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
1 EXPECT_FALSE(result.Valid);
59 }
60
61 // Register the sensor now
62
2/7
✓ Branch 3 taken 1 time.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 time.
✗ Branch 12 not taken.
✗ Branch 17 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
1 EXPECT_TRUE(dut.Register());
63
64 // Still expect invalid - no value has been set yet
65 {
66
1/1
✓ Branch 1 taken 1 time.
1 auto result = dutReader.get();
67
1/6
✗ Branch 5 not taken.
✓ Branch 6 taken 1 time.
✗ Branch 9 not taken.
✗ Branch 14 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
1 EXPECT_FALSE(result.Valid);
68 }
69
70 // However - we should be able to get the fallback value
71 {
72
1/1
✓ Branch 1 taken 1 time.
1 auto result = dutReader.getOrDefault();
73
2/6
✓ Branch 2 taken 1 time.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 time.
✗ Branch 9 not taken.
✗ Branch 14 not taken.
✗ Branch 17 not taken.
1 EXPECT_FLOAT_EQ(result, 123.0f);
74 }
75
76 // Now set the value for real, and ensure we get that instead
77
1/1
✓ Branch 1 taken 1 time.
1 dut.set(63);
78
79 {
80
1/1
✓ Branch 1 taken 1 time.
1 auto result = dutReader.getOrDefault();
81
2/6
✓ Branch 2 taken 1 time.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 time.
✗ Branch 9 not taken.
✗ Branch 14 not taken.
✗ Branch 17 not taken.
1 EXPECT_FLOAT_EQ(result, 63.0f);
82 }
83 1 }
84