Line | Branch | Decision | Exec | Source |
---|---|---|---|---|
1 | #include "pch.h" | |||
2 | ||||
3 | #include "can_msg_tx.h" | |||
4 | #include "can.h" | |||
5 | #include "can_listener.h" | |||
6 | #include "obd2.h" | |||
7 | ||||
8 | ||||
9 | 4 | TEST(CanObd2, obdSendPacket) | ||
10 | { | |||
11 |
1/1✓ Branch 2 taken 1 time.
|
1 | EngineTestHelper eth(engine_type_e::TEST_ENGINE); | |
12 | ||||
13 |
1/1✓ Branch 1 taken 1 time.
|
1 | obdSendPacket(0, PID_RPM, 1, 0xff, 0); | |
14 |
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(txCanBuffer.getCount()); | |
15 | ||||
16 |
1/1✓ Branch 2 taken 1 time.
|
1 | CANTxFrame frame = txCanBuffer.get(); | |
17 | ||||
18 |
2/6✓ 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.
|
1 | EXPECT_EQ(frame.data8[0], 3); // correct data size | |
19 |
2/6✓ 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.
|
1 | EXPECT_EQ(frame.data8[1], 0X40); // correct header | |
20 |
2/6✓ 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.
|
1 | EXPECT_EQ(frame.data8[2], PID_RPM); // correct PID | |
21 | ||||
22 | // clear shared buffer | |||
23 |
1/1✓ Branch 1 taken 1 time.
|
1 | txCanBuffer.clear(); | |
24 |
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_FALSE(txCanBuffer.getCount()); | |
25 | 2 | } | ||
26 | ||||
27 | 4 | TEST(CanObd2, handleGetDataRequest_SUPPORTED_PIDS_01_20) | ||
28 | { | |||
29 |
1/1✓ Branch 2 taken 1 time.
|
1 | EngineTestHelper eth(engine_type_e::TEST_ENGINE); | |
30 | ||||
31 | 1 | CANRxFrame frame; | ||
32 | 1 | frame.data8[2] = PID_SUPPORTED_PIDS_REQUEST_01_20; | ||
33 | ||||
34 |
1/1✓ Branch 1 taken 1 time.
|
1 | handleGetDataRequest(frame, 0); | |
35 |
1/1✓ Branch 2 taken 1 time.
|
1 | CANTxFrame rxFrame = txCanBuffer.get(); | |
36 | ||||
37 |
2/6✓ 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.
|
1 | EXPECT_EQ(rxFrame.data8[0], 6); // correct data size | |
38 |
2/6✓ 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.
|
1 | EXPECT_EQ(rxFrame.data8[1], 0X41); // correct header | |
39 |
2/6✓ 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.
|
1 | EXPECT_EQ(rxFrame.data8[2], PID_SUPPORTED_PIDS_REQUEST_01_20); // correct PID | |
40 | ||||
41 | // clear shared buffer | |||
42 |
1/1✓ Branch 1 taken 1 time.
|
1 | txCanBuffer.clear(); | |
43 |
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_FALSE(txCanBuffer.getCount()); | |
44 | 2 | } | ||
45 | ||||
46 | 4 | TEST(CanObd2, handleGetDataRequest_SUPPORTED_PIDS_21_40) | ||
47 | { | |||
48 |
1/1✓ Branch 2 taken 1 time.
|
1 | EngineTestHelper eth(engine_type_e::TEST_ENGINE); | |
49 | ||||
50 | 1 | CANRxFrame frame; | ||
51 | 1 | frame.data8[2] = PID_SUPPORTED_PIDS_REQUEST_21_40; | ||
52 | ||||
53 |
1/1✓ Branch 1 taken 1 time.
|
1 | handleGetDataRequest(frame, 0); | |
54 |
1/1✓ Branch 2 taken 1 time.
|
1 | CANTxFrame rxFrame = txCanBuffer.get(); | |
55 | ||||
56 |
2/6✓ 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.
|
1 | EXPECT_EQ(rxFrame.data8[0], 6); // correct data size | |
57 |
2/6✓ 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.
|
1 | EXPECT_EQ(rxFrame.data8[1], 0x41); // correct header | |
58 |
2/6✓ 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.
|
1 | EXPECT_EQ(rxFrame.data8[2], PID_SUPPORTED_PIDS_REQUEST_21_40); // correct PID | |
59 | ||||
60 | // clear shared buffer | |||
61 |
1/1✓ Branch 1 taken 1 time.
|
1 | txCanBuffer.clear(); | |
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_FALSE(txCanBuffer.getCount()); | |
63 | 2 | } | ||
64 | ||||
65 | 4 | TEST(CanObd2, handleGetDataRequest_SUPPORTED_PIDS_41_60) | ||
66 | { | |||
67 |
1/1✓ Branch 2 taken 1 time.
|
1 | EngineTestHelper eth(engine_type_e::TEST_ENGINE); | |
68 | ||||
69 | 1 | CANRxFrame frame; | ||
70 | 1 | frame.data8[2] = PID_SUPPORTED_PIDS_REQUEST_41_60; | ||
71 | ||||
72 |
1/1✓ Branch 1 taken 1 time.
|
1 | handleGetDataRequest(frame, 0); | |
73 |
1/1✓ Branch 2 taken 1 time.
|
1 | CANTxFrame rxFrame = txCanBuffer.get(); | |
74 | ||||
75 |
2/6✓ 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.
|
1 | EXPECT_EQ(rxFrame.data8[0], 6); // correct data size | |
76 |
2/6✓ 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.
|
1 | EXPECT_EQ(rxFrame.data8[1], 0x41); // correct header | |
77 |
2/6✓ 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.
|
1 | EXPECT_EQ(rxFrame.data8[2], PID_SUPPORTED_PIDS_REQUEST_41_60); // correct PID | |
78 | ||||
79 | // clear shared buffer | |||
80 |
1/1✓ Branch 1 taken 1 time.
|
1 | txCanBuffer.clear(); | |
81 |
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_FALSE(txCanBuffer.getCount()); | |
82 | 2 | } | ||
83 | ||||
84 | ||||
85 | 4 | TEST(CanObd2, handleGetDataRequest_SUPPORTED_PID_ENGINE_LOAD) | ||
86 | { | |||
87 |
1/1✓ Branch 2 taken 1 time.
|
1 | EngineTestHelper eth(engine_type_e::TEST_ENGINE); | |
88 | ||||
89 | 1 | CANRxFrame frame; | ||
90 | 1 | frame.data8[2] = PID_ENGINE_LOAD; | ||
91 | ||||
92 |
1/1✓ Branch 1 taken 1 time.
|
1 | handleGetDataRequest(frame, 0); | |
93 |
1/1✓ Branch 2 taken 1 time.
|
1 | CANTxFrame rxFrame = txCanBuffer.get(); | |
94 | ||||
95 |
2/6✓ 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.
|
1 | EXPECT_EQ(rxFrame.data8[0], 3); // correct data size | |
96 |
2/6✓ 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.
|
1 | EXPECT_EQ(rxFrame.data8[1], 0x41); // correct header | |
97 |
2/6✓ 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.
|
1 | EXPECT_EQ(rxFrame.data8[2], PID_ENGINE_LOAD); // correct PID | |
98 |
3/7✓ Branch 3 taken 1 time.
✓ Branch 6 taken 1 time.
✗ Branch 10 not taken.
✓ Branch 11 taken 1 time.
✗ Branch 14 not taken.
✗ Branch 19 not taken.
✗ Branch 22 not taken.
|
1 | EXPECT_EQ(rxFrame.data8[3], getFuelingLoad() * ODB_TPS_BYTE_PERCENT); // correct value | |
99 | ||||
100 | // clear shared buffer | |||
101 |
1/1✓ Branch 1 taken 1 time.
|
1 | txCanBuffer.clear(); | |
102 |
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_FALSE(txCanBuffer.getCount()); | |
103 | 2 | } | ||
104 | ||||
105 | ||||
106 | 4 | TEST(CanObd2, handleGetDataRequest_PID_COOLANT_TEMP) | ||
107 | { | |||
108 |
1/1✓ Branch 2 taken 1 time.
|
1 | EngineTestHelper eth(engine_type_e::TEST_ENGINE); | |
109 | ||||
110 | 1 | CANRxFrame frame; | ||
111 | 1 | frame.data8[2] = PID_COOLANT_TEMP; | ||
112 | ||||
113 |
1/1✓ Branch 1 taken 1 time.
|
1 | handleGetDataRequest(frame, 0); | |
114 |
1/1✓ Branch 2 taken 1 time.
|
1 | CANTxFrame rxFrame = txCanBuffer.get(); | |
115 | ||||
116 |
2/6✓ 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.
|
1 | EXPECT_EQ(rxFrame.data8[0], 3); // correct data size | |
117 |
2/6✓ 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.
|
1 | EXPECT_EQ(rxFrame.data8[1], 0x41); // correct header | |
118 |
2/6✓ 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.
|
1 | EXPECT_EQ(rxFrame.data8[2], PID_COOLANT_TEMP); // correct PID | |
119 |
3/7✓ Branch 3 taken 1 time.
✓ Branch 6 taken 1 time.
✗ Branch 10 not taken.
✓ Branch 11 taken 1 time.
✗ Branch 14 not taken.
✗ Branch 19 not taken.
✗ Branch 22 not taken.
|
1 | EXPECT_EQ(rxFrame.data8[3], Sensor::getOrZero(SensorType::Clt) + ODB_TEMP_EXTRA); // correct value | |
120 | ||||
121 | // clear shared buffer | |||
122 |
1/1✓ Branch 1 taken 1 time.
|
1 | txCanBuffer.clear(); | |
123 |
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_FALSE(txCanBuffer.getCount()); | |
124 | 2 | } | ||
125 | ||||
126 | 4 | TEST(CanObd2, handleGetDataRequest_PID_STFT_BANK1_2) | ||
127 | { | |||
128 |
1/1✓ Branch 2 taken 1 time.
|
1 | EngineTestHelper eth(engine_type_e::TEST_ENGINE); | |
129 | ||||
130 | 1 | CANRxFrame frame; | ||
131 | 1 | frame.data8[2] = PID_STFT_BANK1; | ||
132 | ||||
133 |
1/1✓ Branch 1 taken 1 time.
|
1 | handleGetDataRequest(frame, 0); | |
134 |
1/1✓ Branch 2 taken 1 time.
|
1 | CANTxFrame rxFrame = txCanBuffer.get(); | |
135 | ||||
136 |
2/6✓ 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.
|
1 | EXPECT_EQ(rxFrame.data8[0], 3); // correct data size | |
137 |
2/6✓ 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.
|
1 | EXPECT_EQ(rxFrame.data8[1], 0x41); // correct header | |
138 |
2/6✓ 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.
|
1 | EXPECT_EQ(rxFrame.data8[2], PID_STFT_BANK1); // correct PID | |
139 |
2/6✓ 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.
|
1 | EXPECT_EQ(rxFrame.data8[3], 128 * engine->engineState.stftCorrection[0]); // correct value | |
140 | ||||
141 | 1 | frame.data8[2] = PID_STFT_BANK2; | ||
142 | ||||
143 |
1/1✓ Branch 1 taken 1 time.
|
1 | handleGetDataRequest(frame, 0); | |
144 |
1/1✓ Branch 1 taken 1 time.
|
1 | rxFrame = txCanBuffer.get(); | |
145 | ||||
146 |
2/6✓ 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.
|
1 | EXPECT_EQ(rxFrame.data8[0], 3); // correct data size | |
147 |
2/6✓ 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.
|
1 | EXPECT_EQ(rxFrame.data8[1], 0x41); // correct header | |
148 |
2/6✓ 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.
|
1 | EXPECT_EQ(rxFrame.data8[2], PID_STFT_BANK2); // correct PID | |
149 |
2/6✓ 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.
|
1 | EXPECT_EQ(rxFrame.data8[3], 128 * engine->engineState.stftCorrection[0]); // correct value | |
150 | ||||
151 | // clear shared buffer | |||
152 |
1/1✓ Branch 1 taken 1 time.
|
1 | txCanBuffer.clear(); | |
153 |
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_FALSE(txCanBuffer.getCount()); | |
154 | 2 | } | ||
155 | ||||
156 | 4 | TEST(CanObd2, handleGetDataRequest_PID_INTAKE_MAP) | ||
157 | { | |||
158 |
1/1✓ Branch 2 taken 1 time.
|
1 | EngineTestHelper eth(engine_type_e::TEST_ENGINE); | |
159 | ||||
160 | 1 | CANRxFrame frame; | ||
161 | 1 | frame.data8[2] = PID_INTAKE_MAP; | ||
162 | ||||
163 |
1/1✓ Branch 1 taken 1 time.
|
1 | handleGetDataRequest(frame, 0); | |
164 |
1/1✓ Branch 2 taken 1 time.
|
1 | CANTxFrame rxFrame = txCanBuffer.get(); | |
165 | ||||
166 |
2/6✓ 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.
|
1 | EXPECT_EQ(rxFrame.data8[0], 3); // correct data size | |
167 |
2/6✓ 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.
|
1 | EXPECT_EQ(rxFrame.data8[1], 0x41); // correct header | |
168 |
2/6✓ 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.
|
1 | EXPECT_EQ(rxFrame.data8[2], PID_INTAKE_MAP); // correct PID | |
169 |
3/7✓ Branch 3 taken 1 time.
✓ Branch 6 taken 1 time.
✗ Branch 10 not taken.
✓ Branch 11 taken 1 time.
✗ Branch 14 not taken.
✗ Branch 19 not taken.
✗ Branch 22 not taken.
|
1 | EXPECT_EQ(rxFrame.data8[3], Sensor::getOrZero(SensorType::Map)); // correct value | |
170 | ||||
171 | // clear shared buffer | |||
172 |
1/1✓ Branch 1 taken 1 time.
|
1 | txCanBuffer.clear(); | |
173 |
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_FALSE(txCanBuffer.getCount()); | |
174 | 2 | } | ||
175 | ||||
176 | 4 | TEST(CanObd2, handleGetDataRequest_PID_RPM) | ||
177 | { | |||
178 |
1/1✓ Branch 2 taken 1 time.
|
1 | EngineTestHelper eth(engine_type_e::TEST_ENGINE); | |
179 | ||||
180 | 1 | CANRxFrame frame; | ||
181 | 1 | frame.data8[2] = PID_RPM; | ||
182 | ||||
183 |
1/1✓ Branch 1 taken 1 time.
|
1 | handleGetDataRequest(frame, 0); | |
184 |
1/1✓ Branch 2 taken 1 time.
|
1 | CANTxFrame rxFrame = txCanBuffer.get(); | |
185 | ||||
186 |
2/6✓ 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.
|
1 | EXPECT_EQ(rxFrame.data8[0], 4); // correct data size | |
187 |
2/6✓ 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.
|
1 | EXPECT_EQ(rxFrame.data8[1], 0x41); // correct header | |
188 |
2/6✓ 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.
|
1 | EXPECT_EQ(rxFrame.data8[2], PID_RPM); // correct PID | |
189 | ||||
190 |
1/1✓ Branch 1 taken 1 time.
|
1 | int rpm = Sensor::getOrZero(SensorType::Rpm) * ODB_RPM_MULT; | |
191 | ||||
192 |
2/6✓ 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.
|
1 | EXPECT_EQ(rxFrame.data8[3], (rpm >> 0) & 0xff); // correct value | |
193 |
2/6✓ 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.
|
1 | EXPECT_EQ(rxFrame.data8[4], (rpm >> 8) & 0xff); // correct value | |
194 | ||||
195 | // clear shared buffer | |||
196 |
1/1✓ Branch 1 taken 1 time.
|
1 | txCanBuffer.clear(); | |
197 |
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_FALSE(txCanBuffer.getCount()); | |
198 | 2 | } | ||
199 | ||||
200 | 4 | TEST(CanObd2, handleGetDataRequest_PID_SPEED) | ||
201 | { | |||
202 |
1/1✓ Branch 2 taken 1 time.
|
1 | EngineTestHelper eth(engine_type_e::TEST_ENGINE); | |
203 | ||||
204 | 1 | CANRxFrame frame; | ||
205 | 1 | frame.data8[2] = PID_SPEED; | ||
206 | ||||
207 |
1/1✓ Branch 1 taken 1 time.
|
1 | handleGetDataRequest(frame, 0); | |
208 |
1/1✓ Branch 2 taken 1 time.
|
1 | CANTxFrame rxFrame = txCanBuffer.get(); | |
209 | ||||
210 |
2/6✓ 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.
|
1 | EXPECT_EQ(rxFrame.data8[0], 3); // correct data size | |
211 |
2/6✓ 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.
|
1 | EXPECT_EQ(rxFrame.data8[1], 0x41); // correct header | |
212 |
2/6✓ 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.
|
1 | EXPECT_EQ(rxFrame.data8[2], PID_SPEED); // correct PID | |
213 |
3/7✓ Branch 3 taken 1 time.
✓ Branch 6 taken 1 time.
✗ Branch 10 not taken.
✓ Branch 11 taken 1 time.
✗ Branch 14 not taken.
✗ Branch 19 not taken.
✗ Branch 22 not taken.
|
1 | EXPECT_EQ(rxFrame.data8[3], Sensor::getOrZero(SensorType::VehicleSpeed)); // correct value | |
214 | ||||
215 | // clear shared buffer | |||
216 |
1/1✓ Branch 1 taken 1 time.
|
1 | txCanBuffer.clear(); | |
217 |
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_FALSE(txCanBuffer.getCount()); | |
218 | 2 | } | ||
219 | ||||
220 | ||||
221 | 4 | TEST(CanObd2, handleGetDataRequest_PID_INTAKE_TEMP) | ||
222 | { | |||
223 |
1/1✓ Branch 2 taken 1 time.
|
1 | EngineTestHelper eth(engine_type_e::TEST_ENGINE); | |
224 | ||||
225 | 1 | CANRxFrame frame; | ||
226 | 1 | frame.data8[2] = PID_INTAKE_TEMP; | ||
227 | ||||
228 |
1/1✓ Branch 1 taken 1 time.
|
1 | handleGetDataRequest(frame, 0); | |
229 |
1/1✓ Branch 2 taken 1 time.
|
1 | CANTxFrame rxFrame = txCanBuffer.get(); | |
230 | ||||
231 |
2/6✓ 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.
|
1 | EXPECT_EQ(rxFrame.data8[0], 3); // correct data size | |
232 |
2/6✓ 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.
|
1 | EXPECT_EQ(rxFrame.data8[1], 0x41); // correct header | |
233 |
2/6✓ 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.
|
1 | EXPECT_EQ(rxFrame.data8[2], PID_INTAKE_TEMP); // correct PID | |
234 |
3/7✓ Branch 3 taken 1 time.
✓ Branch 6 taken 1 time.
✗ Branch 10 not taken.
✓ Branch 11 taken 1 time.
✗ Branch 14 not taken.
✗ Branch 19 not taken.
✗ Branch 22 not taken.
|
1 | EXPECT_EQ(rxFrame.data8[3], Sensor::getOrZero(SensorType::Iat) + ODB_TEMP_EXTRA); // correct value | |
235 | ||||
236 | // clear shared buffer | |||
237 |
1/1✓ Branch 1 taken 1 time.
|
1 | txCanBuffer.clear(); | |
238 |
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_FALSE(txCanBuffer.getCount()); | |
239 | 2 | } | ||
240 | ||||
241 | 4 | TEST(CanObd2, handleGetDataRequest_PID_INTAKE_MAF) | ||
242 | { | |||
243 |
1/1✓ Branch 2 taken 1 time.
|
1 | EngineTestHelper eth(engine_type_e::TEST_ENGINE); | |
244 | ||||
245 | 1 | CANRxFrame frame; | ||
246 | 1 | frame.data8[2] = PID_INTAKE_MAF; | ||
247 | ||||
248 |
1/1✓ Branch 1 taken 1 time.
|
1 | handleGetDataRequest(frame, 0); | |
249 |
1/1✓ Branch 2 taken 1 time.
|
1 | CANTxFrame rxFrame = txCanBuffer.get(); | |
250 | ||||
251 |
2/6✓ 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.
|
1 | EXPECT_EQ(rxFrame.data8[0], 4); // correct data size | |
252 |
2/6✓ 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.
|
1 | EXPECT_EQ(rxFrame.data8[1], 0x41); // correct header | |
253 |
2/6✓ 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.
|
1 | EXPECT_EQ(rxFrame.data8[2], PID_INTAKE_MAF); // correct PID | |
254 | ||||
255 |
1/1✓ Branch 1 taken 1 time.
|
1 | int maf = Sensor::getOrZero(SensorType::Maf) * 100.0f; | |
256 | ||||
257 |
2/6✓ 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.
|
1 | EXPECT_EQ(rxFrame.data8[3], (maf >> 0) & 0xff); // correct value | |
258 |
2/6✓ 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.
|
1 | EXPECT_EQ(rxFrame.data8[4], (maf >> 8) & 0xff); // correct value | |
259 | ||||
260 | // clear shared buffer | |||
261 |
1/1✓ Branch 1 taken 1 time.
|
1 | txCanBuffer.clear(); | |
262 |
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_FALSE(txCanBuffer.getCount()); | |
263 | 2 | } | ||
264 | ||||
265 | 4 | TEST(CanObd2, handleGetDataRequest_PID_THROTTLE) | ||
266 | { | |||
267 |
1/1✓ Branch 2 taken 1 time.
|
1 | EngineTestHelper eth(engine_type_e::TEST_ENGINE); | |
268 | ||||
269 | 1 | CANRxFrame frame; | ||
270 | 1 | frame.data8[2] = PID_THROTTLE; | ||
271 | ||||
272 |
1/1✓ Branch 1 taken 1 time.
|
1 | handleGetDataRequest(frame, 0); | |
273 |
1/1✓ Branch 2 taken 1 time.
|
1 | CANTxFrame rxFrame = txCanBuffer.get(); | |
274 | ||||
275 |
2/6✓ 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.
|
1 | EXPECT_EQ(rxFrame.data8[0], 3); // correct data size | |
276 |
2/6✓ 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.
|
1 | EXPECT_EQ(rxFrame.data8[1], 0x41); // correct header | |
277 |
2/6✓ 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.
|
1 | EXPECT_EQ(rxFrame.data8[2], PID_THROTTLE); // correct PID | |
278 |
3/7✓ Branch 3 taken 1 time.
✓ Branch 6 taken 1 time.
✗ Branch 10 not taken.
✓ Branch 11 taken 1 time.
✗ Branch 14 not taken.
✗ Branch 19 not taken.
✗ Branch 22 not taken.
|
1 | EXPECT_EQ(rxFrame.data8[3], Sensor::getOrZero(SensorType::Tps1) * ODB_TPS_BYTE_PERCENT); // correct value | |
279 | ||||
280 | // clear shared buffer | |||
281 |
1/1✓ Branch 1 taken 1 time.
|
1 | txCanBuffer.clear(); | |
282 |
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_FALSE(txCanBuffer.getCount()); | |
283 | 2 | } | ||
284 | ||||
285 | ||||
286 | 4 | TEST(CanObd2, handleGetDataRequest_PID_FUEL_AIR_RATIO_1) | ||
287 | { | |||
288 |
1/1✓ Branch 2 taken 1 time.
|
1 | EngineTestHelper eth(engine_type_e::TEST_ENGINE); | |
289 | ||||
290 | 1 | CANRxFrame frame; | ||
291 | 1 | frame.data8[2] = PID_FUEL_AIR_RATIO_1; | ||
292 | ||||
293 |
1/1✓ Branch 1 taken 1 time.
|
1 | handleGetDataRequest(frame, 0); | |
294 |
1/1✓ Branch 2 taken 1 time.
|
1 | CANTxFrame rxFrame = txCanBuffer.get(); | |
295 | ||||
296 |
2/6✓ 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.
|
1 | EXPECT_EQ(rxFrame.data8[0], 6); // correct data size | |
297 |
2/6✓ 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.
|
1 | EXPECT_EQ(rxFrame.data8[1], 0x41); // correct header | |
298 |
2/6✓ 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.
|
1 | EXPECT_EQ(rxFrame.data8[2], PID_FUEL_AIR_RATIO_1); // correct PID | |
299 | ||||
300 |
2/2✓ Branch 1 taken 1 time.
✓ Branch 4 taken 1 time.
|
1 | float lambda = clampF(0, Sensor::getOrZero(SensorType::Lambda1), 1.99f); | |
301 | 1 | uint16_t scaled = (lambda * 32768); | ||
302 | ||||
303 |
2/6✓ 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.
|
1 | EXPECT_EQ(rxFrame.data8[3], ((scaled << 16) >> 0) & 0xff); // correct value | |
304 |
2/6✓ 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.
|
1 | EXPECT_EQ(rxFrame.data8[4], ((scaled << 16) >> 8) & 0xff); // correct value | |
305 | ||||
306 | ||||
307 | // clear shared buffer | |||
308 |
1/1✓ Branch 1 taken 1 time.
|
1 | txCanBuffer.clear(); | |
309 |
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_FALSE(txCanBuffer.getCount()); | |
310 | 2 | } | ||
311 |