Line | Branch | Decision | Exec | Source |
---|---|---|---|---|
1 | #include "pch.h" | |||
2 | ||||
3 | #include "unit_test_framework.h" | |||
4 | #include "init.h" | |||
5 | #include "functional_sensor.h" | |||
6 | ||||
7 | 22 | static void postToFuncSensor(Sensor* s, float value) { | ||
8 | 22 | static_cast<FunctionalSensor*>(s)->postRawValue(value, getTimeNowNt()); | ||
9 | 22 | } | ||
10 | ||||
11 | #define EXPECT_POINT_VALID(s, raw, expect) \ | |||
12 | {\ | |||
13 | postToFuncSensor(s, raw); \ | |||
14 | auto res = s->get(); \ | |||
15 | EXPECT_TRUE(res.Valid); \ | |||
16 | EXPECT_NEAR(res.Value, expect, EPS2D); \ | |||
17 | } | |||
18 | ||||
19 | #define EXPECT_POINT_INVALID(s, raw) \ | |||
20 | {\ | |||
21 | postToFuncSensor(s, raw); \ | |||
22 | auto res = s->get(); \ | |||
23 | EXPECT_FALSE(res.Valid); \ | |||
24 | } | |||
25 | ||||
26 | 4 | TEST(SensorInit, Tps) { | ||
27 |
1/1✓ Branch 2 taken 1 time.
|
1 | EngineTestHelper eth(engine_type_e::TEST_ENGINE); | |
28 | ||||
29 | 1 | engineConfiguration->tpsMin = 200; // 1 volt | ||
30 | 1 | engineConfiguration->tpsMax = 800; // 4 volts | ||
31 | ||||
32 |
1/1✓ Branch 1 taken 1 time.
|
1 | initTps(); | |
33 | ||||
34 | // Ensure the sensors were registered | |||
35 |
1/1✓ Branch 2 taken 1 time.
|
1 | auto s = const_cast<Sensor*>(Sensor::getSensorOfType(SensorType::Tps1Primary)); | |
36 |
3/8✓ Branch 3 taken 1 time.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 time.
✗ Branch 11 not taken.
✗ Branch 16 not taken.
✗ Branch 19 not taken.
✓ Branch 26 taken 1 time.
✗ Branch 27 not taken.
|
1 | ASSERT_NE(nullptr, s); | |
37 | ||||
38 | // Test in range | |||
39 |
5/14✓ Branch 1 taken 1 time.
✓ Branch 5 taken 1 time.
✗ Branch 10 not taken.
✓ Branch 11 taken 1 time.
✗ Branch 14 not taken.
✗ Branch 19 not taken.
✗ Branch 23 not taken.
✗ Branch 26 not taken.
✓ Branch 37 taken 1 time.
✗ Branch 40 not taken.
✓ Branch 41 taken 1 time.
✗ Branch 44 not taken.
✗ Branch 49 not taken.
✗ Branch 52 not taken.
|
2 | EXPECT_POINT_VALID(s, 1.0f, 0.0f); // closed throttle | |
40 |
5/14✓ Branch 1 taken 1 time.
✓ Branch 5 taken 1 time.
✗ Branch 10 not taken.
✓ Branch 11 taken 1 time.
✗ Branch 14 not taken.
✗ Branch 19 not taken.
✗ Branch 23 not taken.
✗ Branch 26 not taken.
✓ Branch 37 taken 1 time.
✗ Branch 40 not taken.
✓ Branch 41 taken 1 time.
✗ Branch 44 not taken.
✗ Branch 49 not taken.
✗ Branch 52 not taken.
|
2 | EXPECT_POINT_VALID(s, 2.5f, 50.0f); // half throttle | |
41 |
5/14✓ Branch 1 taken 1 time.
✓ Branch 5 taken 1 time.
✗ Branch 10 not taken.
✓ Branch 11 taken 1 time.
✗ Branch 14 not taken.
✗ Branch 19 not taken.
✗ Branch 23 not taken.
✗ Branch 26 not taken.
✓ Branch 37 taken 1 time.
✗ Branch 40 not taken.
✓ Branch 41 taken 1 time.
✗ Branch 44 not taken.
✗ Branch 49 not taken.
✗ Branch 52 not taken.
|
2 | EXPECT_POINT_VALID(s, 4.0f, 100.0f) // full throttle | |
42 | ||||
43 | // Test out of range | |||
44 |
3/8✓ Branch 1 taken 1 time.
✓ Branch 4 taken 1 time.
✗ Branch 11 not taken.
✓ Branch 12 taken 1 time.
✗ Branch 15 not taken.
✗ Branch 20 not taken.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
|
1 | EXPECT_POINT_INVALID(s, 0.0f); | |
45 |
3/8✓ Branch 1 taken 1 time.
✓ Branch 4 taken 1 time.
✗ Branch 11 not taken.
✓ Branch 12 taken 1 time.
✗ Branch 15 not taken.
✗ Branch 20 not taken.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
|
1 | EXPECT_POINT_INVALID(s, 5.0f); | |
46 | ||||
47 | // Test that the passthru (redundant sensor) is working | |||
48 |
5/14✓ Branch 1 taken 1 time.
✓ Branch 5 taken 1 time.
✗ Branch 10 not taken.
✓ Branch 11 taken 1 time.
✗ Branch 14 not taken.
✗ Branch 19 not taken.
✗ Branch 23 not taken.
✗ Branch 26 not taken.
✓ Branch 37 taken 1 time.
✗ Branch 40 not taken.
✓ Branch 41 taken 1 time.
✗ Branch 44 not taken.
✗ Branch 49 not taken.
✗ Branch 52 not taken.
|
2 | EXPECT_POINT_VALID(s, 2.5f, 50.0f); | |
49 |
3/7✓ Branch 3 taken 1 time.
✓ Branch 7 taken 1 time.
✗ Branch 11 not taken.
✓ Branch 12 taken 1 time.
✗ Branch 15 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_NEAR(50.0f, Sensor::get(SensorType::Tps1).value_or(-1), EPS2D); | |
50 | 1 | } | ||
51 | ||||
52 | 4 | TEST(SensorInit, TpsValuesTooClose) { | ||
53 |
1/1✓ Branch 2 taken 1 time.
|
1 | EngineTestHelper eth(engine_type_e::TEST_ENGINE); | |
54 | ||||
55 | // Should fail, 0.49 volts apart | |||
56 | 1 | engineConfiguration->tpsMin = 200; // 1.00 volt | ||
57 | 1 | engineConfiguration->tpsMax = 298; // 1.49 volts | ||
58 |
5/23✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
✓ Branch 6 taken 1 time.
✓ Branch 8 taken 1 time.
✗ Branch 9 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✓ Branch 14 taken 1 time.
✗ Branch 16 not taken.
✗ Branch 22 not taken.
✗ Branch 27 not taken.
✗ Branch 30 not taken.
✓ Branch 37 taken 1 time.
✗ Branch 38 not taken.
✗ Branch 39 not taken.
✗ Branch 44 not taken.
✗ Branch 49 not taken.
✗ Branch 52 not taken.
✗ Branch 58 not taken.
✗ Branch 62 not taken.
✗ Branch 65 not taken.
✗ Branch 70 not taken.
✗ Branch 73 not taken.
|
1 | EXPECT_FATAL_ERROR(initTps()); | |
59 |
1/1✓ Branch 1 taken 1 time.
|
1 | Sensor::resetRegistry(); | |
60 | ||||
61 | // Should fail, -0.49 volts apart | |||
62 | 1 | engineConfiguration->tpsMin = 298; // 1.49 volt | ||
63 | 1 | engineConfiguration->tpsMax = 200; // 1.00 volts | ||
64 |
5/23✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
✓ Branch 6 taken 1 time.
✓ Branch 8 taken 1 time.
✗ Branch 9 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✓ Branch 14 taken 1 time.
✗ Branch 16 not taken.
✗ Branch 22 not taken.
✗ Branch 27 not taken.
✗ Branch 30 not taken.
✓ Branch 37 taken 1 time.
✗ Branch 38 not taken.
✗ Branch 39 not taken.
✗ Branch 44 not taken.
✗ Branch 49 not taken.
✗ Branch 52 not taken.
✗ Branch 58 not taken.
✗ Branch 62 not taken.
✗ Branch 65 not taken.
✗ Branch 70 not taken.
✗ Branch 73 not taken.
|
1 | EXPECT_FATAL_ERROR(initTps()); | |
65 |
1/1✓ Branch 1 taken 1 time.
|
1 | Sensor::resetRegistry(); | |
66 | ||||
67 | // Should succeed, 0.51 volts apart | |||
68 | 1 | engineConfiguration->tpsMin = 200; // 1.00 volt | ||
69 | 1 | engineConfiguration->tpsMax = 302; // 1.51 volts | ||
70 |
4/20✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
✓ Branch 6 taken 1 time.
✓ Branch 8 taken 1 time.
✗ Branch 9 not taken.
✓ Branch 11 taken 1 time.
✗ Branch 17 not taken.
✗ Branch 22 not taken.
✗ Branch 26 not taken.
✗ Branch 29 not taken.
✗ Branch 38 not taken.
✗ Branch 39 not taken.
✗ Branch 42 not taken.
✗ Branch 47 not taken.
✗ Branch 50 not taken.
✗ Branch 56 not taken.
✗ Branch 60 not taken.
✗ Branch 63 not taken.
✗ Branch 68 not taken.
✗ Branch 71 not taken.
|
1 | EXPECT_NO_FATAL_ERROR(initTps()); | |
71 |
1/1✓ Branch 1 taken 1 time.
|
1 | Sensor::resetRegistry(); | |
72 | ||||
73 | // Should succeed, -0.51 volts apart | |||
74 | 1 | engineConfiguration->tpsMin = 302; // 1.51 volt | ||
75 | 1 | engineConfiguration->tpsMax = 200; // 1.00 volts | ||
76 |
4/20✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
✓ Branch 6 taken 1 time.
✓ Branch 8 taken 1 time.
✗ Branch 9 not taken.
✓ Branch 11 taken 1 time.
✗ Branch 17 not taken.
✗ Branch 22 not taken.
✗ Branch 26 not taken.
✗ Branch 29 not taken.
✗ Branch 38 not taken.
✗ Branch 39 not taken.
✗ Branch 42 not taken.
✗ Branch 47 not taken.
✗ Branch 50 not taken.
✗ Branch 56 not taken.
✗ Branch 60 not taken.
✗ Branch 63 not taken.
✗ Branch 68 not taken.
✗ Branch 71 not taken.
|
1 | EXPECT_NO_FATAL_ERROR(initTps()); | |
77 |
1/1✓ Branch 1 taken 1 time.
|
1 | Sensor::resetRegistry(); | |
78 | ||||
79 | // With no pin, it should be ok that they are the same | |||
80 | // Should succeed, -0.51 volts apart | |||
81 | 1 | engineConfiguration->tps1_1AdcChannel = EFI_ADC_NONE; | ||
82 | 1 | engineConfiguration->tpsMin = 200; // 1.00 volt | ||
83 | 1 | engineConfiguration->tpsMax = 200; // 1.00 volts | ||
84 |
4/20✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
✓ Branch 6 taken 1 time.
✓ Branch 8 taken 1 time.
✗ Branch 9 not taken.
✓ Branch 11 taken 1 time.
✗ Branch 17 not taken.
✗ Branch 22 not taken.
✗ Branch 26 not taken.
✗ Branch 29 not taken.
✗ Branch 38 not taken.
✗ Branch 39 not taken.
✗ Branch 42 not taken.
✗ Branch 47 not taken.
✗ Branch 50 not taken.
✗ Branch 56 not taken.
✗ Branch 60 not taken.
✗ Branch 63 not taken.
✗ Branch 68 not taken.
✗ Branch 71 not taken.
|
1 | EXPECT_NO_FATAL_ERROR(initTps()); | |
85 |
1/1✓ Branch 1 taken 1 time.
|
1 | Sensor::resetRegistry(); | |
86 | ||||
87 | // Test a random bogus pin index, shouldn't fail | |||
88 | 1 | engineConfiguration->tps1_1AdcChannel = static_cast<adc_channel_e>(EFI_ADC_ERROR); | ||
89 | 1 | engineConfiguration->tpsMin = 200; // 1.00 volt | ||
90 | 1 | engineConfiguration->tpsMax = 200; // 1.00 volt | ||
91 |
4/20✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
✓ Branch 6 taken 1 time.
✓ Branch 8 taken 1 time.
✗ Branch 9 not taken.
✓ Branch 11 taken 1 time.
✗ Branch 17 not taken.
✗ Branch 22 not taken.
✗ Branch 26 not taken.
✗ Branch 29 not taken.
✗ Branch 38 not taken.
✗ Branch 39 not taken.
✗ Branch 42 not taken.
✗ Branch 47 not taken.
✗ Branch 50 not taken.
✗ Branch 56 not taken.
✗ Branch 60 not taken.
✗ Branch 63 not taken.
✗ Branch 68 not taken.
✗ Branch 71 not taken.
|
1 | EXPECT_NO_FATAL_ERROR(initTps()); | |
92 |
1/1✓ Branch 1 taken 1 time.
|
1 | Sensor::resetRegistry(); | |
93 | ||||
94 | // de-init and re-init should also work without error | |||
95 |
4/20✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
✓ Branch 6 taken 1 time.
✓ Branch 8 taken 1 time.
✗ Branch 9 not taken.
✓ Branch 11 taken 1 time.
✗ Branch 17 not taken.
✗ Branch 22 not taken.
✗ Branch 26 not taken.
✗ Branch 29 not taken.
✗ Branch 38 not taken.
✗ Branch 39 not taken.
✗ Branch 42 not taken.
✗ Branch 47 not taken.
✗ Branch 50 not taken.
✗ Branch 56 not taken.
✗ Branch 60 not taken.
✗ Branch 63 not taken.
✗ Branch 68 not taken.
✗ Branch 71 not taken.
|
1 | EXPECT_NO_FATAL_ERROR(deinitTps()); | |
96 |
4/20✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
✓ Branch 6 taken 1 time.
✓ Branch 8 taken 1 time.
✗ Branch 9 not taken.
✓ Branch 11 taken 1 time.
✗ Branch 17 not taken.
✗ Branch 22 not taken.
✗ Branch 26 not taken.
✗ Branch 29 not taken.
✗ Branch 38 not taken.
✗ Branch 39 not taken.
✗ Branch 42 not taken.
✗ Branch 47 not taken.
✗ Branch 50 not taken.
✗ Branch 56 not taken.
✗ Branch 60 not taken.
✗ Branch 63 not taken.
✗ Branch 68 not taken.
✗ Branch 71 not taken.
|
1 | EXPECT_NO_FATAL_ERROR(initTps()); | |
97 | 2 | } | ||
98 | ||||
99 | 4 | TEST(SensorInit, Pedal) { | ||
100 |
1/1✓ Branch 2 taken 1 time.
|
1 | EngineTestHelper eth(engine_type_e::TEST_ENGINE); | |
101 | ||||
102 | 1 | engineConfiguration->throttlePedalPositionAdcChannel = EFI_ADC_0; | ||
103 | 1 | engineConfiguration->throttlePedalUpVoltage = 1; | ||
104 | 1 | engineConfiguration->throttlePedalWOTVoltage = 4; | ||
105 | ||||
106 |
1/1✓ Branch 1 taken 1 time.
|
1 | initTps(); | |
107 | ||||
108 | // Ensure the sensors were registered | |||
109 |
1/1✓ Branch 2 taken 1 time.
|
1 | auto s = const_cast<Sensor*>(Sensor::getSensorOfType(SensorType::AcceleratorPedalPrimary)); | |
110 |
3/8✓ Branch 3 taken 1 time.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 time.
✗ Branch 11 not taken.
✗ Branch 16 not taken.
✗ Branch 19 not taken.
✓ Branch 26 taken 1 time.
✗ Branch 27 not taken.
|
1 | ASSERT_NE(nullptr, s); | |
111 | ||||
112 | // Test in range | |||
113 |
5/14✓ Branch 1 taken 1 time.
✓ Branch 5 taken 1 time.
✗ Branch 10 not taken.
✓ Branch 11 taken 1 time.
✗ Branch 14 not taken.
✗ Branch 19 not taken.
✗ Branch 23 not taken.
✗ Branch 26 not taken.
✓ Branch 37 taken 1 time.
✗ Branch 40 not taken.
✓ Branch 41 taken 1 time.
✗ Branch 44 not taken.
✗ Branch 49 not taken.
✗ Branch 52 not taken.
|
2 | EXPECT_POINT_VALID(s, 1.0f, 0.0f); // closed throttle | |
114 |
5/14✓ Branch 1 taken 1 time.
✓ Branch 5 taken 1 time.
✗ Branch 10 not taken.
✓ Branch 11 taken 1 time.
✗ Branch 14 not taken.
✗ Branch 19 not taken.
✗ Branch 23 not taken.
✗ Branch 26 not taken.
✓ Branch 37 taken 1 time.
✗ Branch 40 not taken.
✓ Branch 41 taken 1 time.
✗ Branch 44 not taken.
✗ Branch 49 not taken.
✗ Branch 52 not taken.
|
2 | EXPECT_POINT_VALID(s, 2.5f, 50.0f); // half throttle | |
115 |
5/14✓ Branch 1 taken 1 time.
✓ Branch 5 taken 1 time.
✗ Branch 10 not taken.
✓ Branch 11 taken 1 time.
✗ Branch 14 not taken.
✗ Branch 19 not taken.
✗ Branch 23 not taken.
✗ Branch 26 not taken.
✓ Branch 37 taken 1 time.
✗ Branch 40 not taken.
✓ Branch 41 taken 1 time.
✗ Branch 44 not taken.
✗ Branch 49 not taken.
✗ Branch 52 not taken.
|
2 | EXPECT_POINT_VALID(s, 4.0f, 100.0f) // full throttle | |
116 | ||||
117 | // Test out of range | |||
118 |
3/8✓ Branch 1 taken 1 time.
✓ Branch 4 taken 1 time.
✗ Branch 11 not taken.
✓ Branch 12 taken 1 time.
✗ Branch 15 not taken.
✗ Branch 20 not taken.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
|
1 | EXPECT_POINT_INVALID(s, 0.0f); | |
119 |
3/8✓ Branch 1 taken 1 time.
✓ Branch 4 taken 1 time.
✗ Branch 11 not taken.
✓ Branch 12 taken 1 time.
✗ Branch 15 not taken.
✗ Branch 20 not taken.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
|
1 | EXPECT_POINT_INVALID(s, 5.0f); | |
120 | ||||
121 | // Test that the passthru (redundant sensor) is working | |||
122 |
5/14✓ Branch 1 taken 1 time.
✓ Branch 5 taken 1 time.
✗ Branch 10 not taken.
✓ Branch 11 taken 1 time.
✗ Branch 14 not taken.
✗ Branch 19 not taken.
✗ Branch 23 not taken.
✗ Branch 26 not taken.
✓ Branch 37 taken 1 time.
✗ Branch 40 not taken.
✓ Branch 41 taken 1 time.
✗ Branch 44 not taken.
✗ Branch 49 not taken.
✗ Branch 52 not taken.
|
2 | EXPECT_POINT_VALID(s, 2.5f, 50.0f); | |
123 |
3/7✓ Branch 3 taken 1 time.
✓ Branch 7 taken 1 time.
✗ Branch 11 not taken.
✓ Branch 12 taken 1 time.
✗ Branch 15 not taken.
✗ Branch 20 not taken.
✗ Branch 23 not taken.
|
1 | EXPECT_NEAR(50.0f, Sensor::get(SensorType::AcceleratorPedal).value_or(-1), EPS2D); | |
124 | 1 | } | ||
125 | ||||
126 | 4 | TEST(SensorInit, DriverIntentNoPedal) { | ||
127 |
1/1✓ Branch 2 taken 1 time.
|
1 | EngineTestHelper eth(engine_type_e::TEST_ENGINE); | |
128 | ||||
129 | // We have no pedal - so we should get the TPS | |||
130 | 1 | engineConfiguration->throttlePedalPositionAdcChannel = EFI_ADC_NONE; | ||
131 | ||||
132 |
1/1✓ Branch 1 taken 1 time.
|
1 | initTps(); | |
133 | ||||
134 |
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(Sensor::hasSensor(SensorType::Tps1)); | |
135 | // Ensure a sensor got set | |||
136 |
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(Sensor::hasSensor(SensorType::DriverThrottleIntent)); | |
137 | ||||
138 | // Set values so we can identify which one got proxied | |||
139 |
1/1✓ Branch 1 taken 1 time.
|
1 | Sensor::setMockValue(SensorType::Tps1, 25); | |
140 |
1/1✓ Branch 1 taken 1 time.
|
1 | Sensor::setMockValue(SensorType::AcceleratorPedal, 75); | |
141 | ||||
142 | // Should get the TPS | |||
143 |
3/7✓ Branch 4 taken 1 time.
✓ Branch 7 taken 1 time.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 time.
✗ Branch 16 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
|
1 | EXPECT_EQ(Sensor::get(SensorType::DriverThrottleIntent).Value, 25); | |
144 | 1 | } | ||
145 | ||||
146 | ||||
147 | 4 | TEST(SensorInit, DriverIntentWithPedal) { | ||
148 |
1/1✓ Branch 2 taken 1 time.
|
1 | EngineTestHelper eth(engine_type_e::TEST_ENGINE); | |
149 | ||||
150 | // We have a pedal, so we should get it | |||
151 | 1 | engineConfiguration->throttlePedalPositionAdcChannel = EFI_ADC_0; | ||
152 | ||||
153 |
1/1✓ Branch 1 taken 1 time.
|
1 | initTps(); | |
154 | ||||
155 | // Ensure a sensor got set | |||
156 |
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(Sensor::hasSensor(SensorType::DriverThrottleIntent)); | |
157 | ||||
158 | // Set values so we can identify which one got proxied | |||
159 |
1/1✓ Branch 1 taken 1 time.
|
1 | Sensor::setMockValue(SensorType::Tps1, 25); | |
160 |
1/1✓ Branch 1 taken 1 time.
|
1 | Sensor::setMockValue(SensorType::AcceleratorPedal, 75); | |
161 | ||||
162 | // Should get the pedal | |||
163 |
3/7✓ Branch 4 taken 1 time.
✓ Branch 7 taken 1 time.
✗ Branch 12 not taken.
✓ Branch 13 taken 1 time.
✗ Branch 16 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
|
1 | EXPECT_EQ(Sensor::get(SensorType::DriverThrottleIntent).Value, 75); | |
164 | 1 | } | ||
165 | ||||
166 | 4 | TEST(SensorInit, FordTps) { | ||
167 |
1/1✓ Branch 2 taken 1 time.
|
1 | EngineTestHelper eth(engine_type_e::TEST_ENGINE); | |
168 | ||||
169 | // pedal | |||
170 | 1 | engineConfiguration->throttlePedalPositionAdcChannel = EFI_ADC_0; | ||
171 | 1 | engineConfiguration->throttlePedalPositionSecondAdcChannel = EFI_ADC_1; | ||
172 | ||||
173 | // tps: | |||
174 | 1 | engineConfiguration->tps1_1AdcChannel = EFI_ADC_2; | ||
175 | 1 | engineConfiguration->tps1_2AdcChannel = EFI_ADC_3; | ||
176 | ||||
177 | 1 | engineConfiguration->useFordRedundantTps = true; | ||
178 | 1 | engineConfiguration->useFordRedundantPps = true; | ||
179 | ||||
180 | // Should succeed, 0.51 volts apart | |||
181 | 1 | engineConfiguration->tpsMin = 200; // 1.00 volt | ||
182 | 1 | engineConfiguration->tpsMax = 302; // 1.51 volts | ||
183 |
4/20✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
✓ Branch 6 taken 1 time.
✓ Branch 8 taken 1 time.
✗ Branch 9 not taken.
✓ Branch 11 taken 1 time.
✗ Branch 17 not taken.
✗ Branch 22 not taken.
✗ Branch 26 not taken.
✗ Branch 29 not taken.
✗ Branch 38 not taken.
✗ Branch 39 not taken.
✗ Branch 42 not taken.
✗ Branch 47 not taken.
✗ Branch 50 not taken.
✗ Branch 56 not taken.
✗ Branch 60 not taken.
✗ Branch 63 not taken.
✗ Branch 68 not taken.
✗ Branch 71 not taken.
|
1 | EXPECT_NO_FATAL_ERROR(initTps()); | |
184 |
1/1✓ Branch 1 taken 1 time.
|
1 | Sensor::resetRegistry(); | |
185 | ||||
186 | // de-init and re-init should also work without error | |||
187 |
4/20✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
✓ Branch 6 taken 1 time.
✓ Branch 8 taken 1 time.
✗ Branch 9 not taken.
✓ Branch 11 taken 1 time.
✗ Branch 17 not taken.
✗ Branch 22 not taken.
✗ Branch 26 not taken.
✗ Branch 29 not taken.
✗ Branch 38 not taken.
✗ Branch 39 not taken.
✗ Branch 42 not taken.
✗ Branch 47 not taken.
✗ Branch 50 not taken.
✗ Branch 56 not taken.
✗ Branch 60 not taken.
✗ Branch 63 not taken.
✗ Branch 68 not taken.
✗ Branch 71 not taken.
|
1 | EXPECT_NO_FATAL_ERROR(deinitTps()); | |
188 |
4/20✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
✓ Branch 6 taken 1 time.
✓ Branch 8 taken 1 time.
✗ Branch 9 not taken.
✓ Branch 11 taken 1 time.
✗ Branch 17 not taken.
✗ Branch 22 not taken.
✗ Branch 26 not taken.
✗ Branch 29 not taken.
✗ Branch 38 not taken.
✗ Branch 39 not taken.
✗ Branch 42 not taken.
✗ Branch 47 not taken.
✗ Branch 50 not taken.
✗ Branch 56 not taken.
✗ Branch 60 not taken.
✗ Branch 63 not taken.
✗ Branch 68 not taken.
✗ Branch 71 not taken.
|
1 | EXPECT_NO_FATAL_ERROR(initTps()); | |
189 | 2 | } | ||
190 | ||||
191 | 4 | TEST(SensorInit, OilPressure) { | ||
192 |
1/1✓ Branch 2 taken 1 time.
|
1 | EngineTestHelper eth(engine_type_e::TEST_ENGINE); | |
193 | ||||
194 | 1 | engineConfiguration->oilPressure.hwChannel = EFI_ADC_0; | ||
195 | 1 | engineConfiguration->oilPressure.v1 = 1; | ||
196 | 1 | engineConfiguration->oilPressure.v2 = 4; | ||
197 | 1 | engineConfiguration->oilPressure.value1 = 0; | ||
198 | 1 | engineConfiguration->oilPressure.value2 = 1000; | ||
199 | ||||
200 |
1/1✓ Branch 1 taken 1 time.
|
1 | initFluidPressure(); | |
201 | ||||
202 | // Ensure the sensors were registered | |||
203 |
1/1✓ Branch 2 taken 1 time.
|
1 | auto s = const_cast<Sensor*>(Sensor::getSensorOfType(SensorType::OilPressure)); | |
204 |
3/8✓ Branch 3 taken 1 time.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 time.
✗ Branch 11 not taken.
✗ Branch 16 not taken.
✗ Branch 19 not taken.
✓ Branch 26 taken 1 time.
✗ Branch 27 not taken.
|
1 | ASSERT_NE(nullptr, s); | |
205 | ||||
206 | // Test in range | |||
207 |
5/14✓ Branch 1 taken 1 time.
✓ Branch 5 taken 1 time.
✗ Branch 10 not taken.
✓ Branch 11 taken 1 time.
✗ Branch 14 not taken.
✗ Branch 19 not taken.
✗ Branch 23 not taken.
✗ Branch 26 not taken.
✓ Branch 37 taken 1 time.
✗ Branch 40 not taken.
✓ Branch 41 taken 1 time.
✗ Branch 44 not taken.
✗ Branch 49 not taken.
✗ Branch 52 not taken.
|
2 | EXPECT_POINT_VALID(s, 1.0f, 0.0f); // minimum | |
208 |
5/14✓ Branch 1 taken 1 time.
✓ Branch 5 taken 1 time.
✗ Branch 10 not taken.
✓ Branch 11 taken 1 time.
✗ Branch 14 not taken.
✗ Branch 19 not taken.
✗ Branch 23 not taken.
✗ Branch 26 not taken.
✓ Branch 37 taken 1 time.
✗ Branch 40 not taken.
✓ Branch 41 taken 1 time.
✗ Branch 44 not taken.
✗ Branch 49 not taken.
✗ Branch 52 not taken.
|
2 | EXPECT_POINT_VALID(s, 2.5f, 500.0f); // mid | |
209 |
5/14✓ Branch 1 taken 1 time.
✓ Branch 5 taken 1 time.
✗ Branch 10 not taken.
✓ Branch 11 taken 1 time.
✗ Branch 14 not taken.
✗ Branch 19 not taken.
✗ Branch 23 not taken.
✗ Branch 26 not taken.
✓ Branch 37 taken 1 time.
✗ Branch 40 not taken.
✓ Branch 41 taken 1 time.
✗ Branch 44 not taken.
✗ Branch 49 not taken.
✗ Branch 52 not taken.
|
2 | EXPECT_POINT_VALID(s, 4.0f, 1000.0f) // maximium | |
210 | ||||
211 | // Test out of range | |||
212 |
3/8✓ Branch 1 taken 1 time.
✓ Branch 4 taken 1 time.
✗ Branch 11 not taken.
✓ Branch 12 taken 1 time.
✗ Branch 15 not taken.
✗ Branch 20 not taken.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
|
1 | EXPECT_POINT_INVALID(s, 0.0f); | |
213 |
3/8✓ Branch 1 taken 1 time.
✓ Branch 4 taken 1 time.
✗ Branch 11 not taken.
✓ Branch 12 taken 1 time.
✗ Branch 15 not taken.
✗ Branch 20 not taken.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
|
1 | EXPECT_POINT_INVALID(s, 5.0f); | |
214 | 1 | } | ||
215 | ||||
216 | 4 | TEST(SensorInit, Clt) { | ||
217 |
1/1✓ Branch 2 taken 1 time.
|
1 | EngineTestHelper eth(engine_type_e::TEST_ENGINE); | |
218 | ||||
219 | // 2003 neon sensor | |||
220 | 1 | engineConfiguration->clt.config = {0, 30, 100, 32500, 7550, 700, 2700}; | ||
221 | 1 | engineConfiguration->clt.adcChannel = EFI_ADC_6; | ||
222 | ||||
223 |
1/1✓ Branch 1 taken 1 time.
|
1 | initThermistors(); | |
224 | ||||
225 | // Ensure the sensors were registered | |||
226 |
1/1✓ Branch 2 taken 1 time.
|
1 | auto s = const_cast<Sensor*>(Sensor::getSensorOfType(SensorType::Clt)); | |
227 |
3/8✓ Branch 3 taken 1 time.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 time.
✗ Branch 11 not taken.
✗ Branch 16 not taken.
✗ Branch 19 not taken.
✓ Branch 26 taken 1 time.
✗ Branch 27 not taken.
|
1 | ASSERT_NE(nullptr, s); | |
228 | ||||
229 | // Test in range | |||
230 |
5/14✓ Branch 1 taken 1 time.
✓ Branch 5 taken 1 time.
✗ Branch 10 not taken.
✓ Branch 11 taken 1 time.
✗ Branch 14 not taken.
✗ Branch 19 not taken.
✗ Branch 23 not taken.
✗ Branch 26 not taken.
✓ Branch 37 taken 1 time.
✗ Branch 40 not taken.
✓ Branch 41 taken 1 time.
✗ Branch 44 not taken.
✗ Branch 49 not taken.
✗ Branch 52 not taken.
|
2 | EXPECT_POINT_VALID(s, 4.61648f, 0.0f); // minimum - 0C | |
231 |
5/14✓ Branch 1 taken 1 time.
✓ Branch 5 taken 1 time.
✗ Branch 10 not taken.
✓ Branch 11 taken 1 time.
✗ Branch 14 not taken.
✗ Branch 19 not taken.
✗ Branch 23 not taken.
✗ Branch 26 not taken.
✓ Branch 37 taken 1 time.
✗ Branch 40 not taken.
✓ Branch 41 taken 1 time.
✗ Branch 44 not taken.
✗ Branch 49 not taken.
✗ Branch 52 not taken.
|
2 | EXPECT_POINT_VALID(s, 3.6829f, 30.0f); // mid - 30C | |
232 |
5/14✓ Branch 1 taken 1 time.
✓ Branch 5 taken 1 time.
✗ Branch 10 not taken.
✓ Branch 11 taken 1 time.
✗ Branch 14 not taken.
✗ Branch 19 not taken.
✗ Branch 23 not taken.
✗ Branch 26 not taken.
✓ Branch 37 taken 1 time.
✗ Branch 40 not taken.
✓ Branch 41 taken 1 time.
✗ Branch 44 not taken.
✗ Branch 49 not taken.
✗ Branch 52 not taken.
|
2 | EXPECT_POINT_VALID(s, 1.0294f, 100.0f) // maximium - 100C | |
233 | ||||
234 | // Test out of range | |||
235 |
3/8✓ Branch 1 taken 1 time.
✓ Branch 4 taken 1 time.
✗ Branch 11 not taken.
✓ Branch 12 taken 1 time.
✗ Branch 15 not taken.
✗ Branch 20 not taken.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
|
1 | EXPECT_POINT_INVALID(s, 0.0f); | |
236 |
3/8✓ Branch 1 taken 1 time.
✓ Branch 4 taken 1 time.
✗ Branch 11 not taken.
✓ Branch 12 taken 1 time.
✗ Branch 15 not taken.
✗ Branch 20 not taken.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
|
1 | EXPECT_POINT_INVALID(s, 5.0f); | |
237 | 1 | } | ||
238 | ||||
239 | 4 | TEST(SensorInit, Lambda) { | ||
240 |
1/1✓ Branch 2 taken 1 time.
|
1 | EngineTestHelper eth(engine_type_e::TEST_ENGINE); | |
241 | ||||
242 |
1/1✓ Branch 1 taken 1 time.
|
1 | initLambda(); | |
243 | ||||
244 |
1/1✓ Branch 2 taken 1 time.
|
1 | auto s = Sensor::getSensorOfType(SensorType::Lambda1); | |
245 |
3/8✓ Branch 3 taken 1 time.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 time.
✗ Branch 11 not taken.
✗ Branch 16 not taken.
✗ Branch 19 not taken.
✓ Branch 26 taken 1 time.
✗ Branch 27 not taken.
|
1 | ASSERT_NE(nullptr, s); | |
246 | 1 | } | ||
247 | ||||
248 | 4 | TEST(SensorInit, Map) { | ||
249 |
1/1✓ Branch 2 taken 1 time.
|
1 | EngineTestHelper eth(engine_type_e::TEST_ENGINE); | |
250 | 1 | engineConfiguration->map.sensor.hwChannel = EFI_ADC_4; | ||
251 | ||||
252 |
1/1✓ Branch 1 taken 1 time.
|
1 | initMap(); | |
253 | ||||
254 |
1/1✓ Branch 2 taken 1 time.
|
1 | auto s = Sensor::getSensorOfType(SensorType::Map); | |
255 |
3/8✓ Branch 3 taken 1 time.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 time.
✗ Branch 11 not taken.
✗ Branch 16 not taken.
✗ Branch 19 not taken.
✓ Branch 26 taken 1 time.
✗ Branch 27 not taken.
|
1 | ASSERT_NE(nullptr, s); | |
256 | ||||
257 |
1/1✓ Branch 1 taken 1 time.
|
1 | Sensor::setMockValue(SensorType::MapFast, 25); | |
258 |
1/1✓ Branch 1 taken 1 time.
|
1 | Sensor::setMockValue(SensorType::MapSlow, 75); | |
259 | ||||
260 | // Should prefer fast MAP | |||
261 |
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(25, Sensor::getOrZero(SensorType::Map)); | |
262 | ||||
263 | // But when that fails, should return slow MAP | |||
264 |
1/1✓ Branch 1 taken 1 time.
|
1 | Sensor::resetMockValue(SensorType::MapFast); | |
265 |
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(75, Sensor::getOrZero(SensorType::Map)); | |
266 | 1 | } | ||
267 |