| 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 |