GCC Code Coverage Report


Directory: ./
File: unit_tests/tests/sensor/func_sensor.cpp
Date: 2025-10-03 00:57:22
Coverage Exec Excl Total
Lines: 100.0% 24 0 24
Functions: 100.0% 7 0 7
Branches: 36.8% 14 0 38
Decisions: 100.0% 2 - 2

Line Branch Decision Exec Source
1 #include "pch.h"
2
3 #include "functional_sensor.h"
4
5 struct DoublerFunc final : public SensorConverter {
6 2 SensorResult convert(float input) const {
7
2/2
✓ Branch 0 taken 1 time.
✓ Branch 1 taken 1 time.
2/2
✓ Decision 'true' taken 1 time.
✓ Decision 'false' taken 1 time.
2 if (input <= 0) {
8 1 return unexpected;
9 }
10
11 1 return input * 2;
12 }
13 };
14
15 class SensorConverted : public ::testing::Test {
16 protected:
17 2 SensorConverted()
18
1/1
✓ Branch 2 taken 2 times.
2 : dut(SensorType::Clt, MS2NT(50)) {}
19
20 2 void SetUp() override {
21 2 dut.setFunction(func);
22 2 Sensor::resetRegistry();
23 2 }
24
25 2 void TearDown() override {
26 2 Sensor::resetRegistry();
27 2 }
28
29 FunctionalSensor dut;
30 DoublerFunc func;
31 };
32
33 4 TEST_F(SensorConverted, TestValid) {
34
3/9
✓ 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.
✓ Branch 33 taken 1 time.
✗ Branch 34 not taken.
1 ASSERT_TRUE(dut.Register());
35
36 // Should be invalid - not set yet
37 {
38 1 auto s = Sensor::get(SensorType::Clt);
39
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(s.Valid);
40 }
41
42 1 dut.postRawValue(25, getTimeNowNt());
43
44 // Should be valid, with a value of 25*2 = 50
45 {
46
1/1
✓ Branch 2 taken 1 time.
1 auto s = Sensor::get(SensorType::Clt);
47
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(s.Valid);
48
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(s.Value, 50);
49
3/7
✓ Branch 2 taken 1 time.
✓ Branch 5 taken 1 time.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 time.
✗ Branch 12 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
1 EXPECT_FLOAT_EQ(Sensor::getRaw(SensorType::Clt), 25);
50 }
51 }
52
53 TEST_F(SensorConverted, TestInvalid) {
54 ASSERT_TRUE(dut.Register());
55
56 // Should be invalid - not set yet
57 {
58 auto s = Sensor::get(SensorType::Clt);
59 EXPECT_FALSE(s.Valid);
60 }
61
62 dut.postRawValue(-25, 0);
63
64 // Should be invalid, with a value of -25*2 = 0
65 {
66 auto s = Sensor::get(SensorType::Clt);
67 EXPECT_FALSE(s.Valid);
68 }
69
70 // Raw value works even when sensor is invalid
71 EXPECT_FLOAT_EQ(Sensor::getRaw(SensorType::Clt), -25);
72 }
73