58 #include "Mockcan_cfg.h"
59 #include "Mockdatabase.h"
61 #include "Mockftask.h"
64 #include "Mockmpu_prototypes.h"
74 TEST_INCLUDE_PATH(
"../../src/app/driver/can")
75 TEST_INCLUDE_PATH("../../src/app/driver/can/cbs")
76 TEST_INCLUDE_PATH("../../src/app/driver/config")
77 TEST_INCLUDE_PATH("../../src/app/driver/imd")
78 TEST_INCLUDE_PATH("../../src/app/driver/imd/bender/iso165c")
79 TEST_INCLUDE_PATH("../../src/app/driver/imd/bender/iso165c/config")
80 TEST_INCLUDE_PATH("../../src/app/driver/io")
81 TEST_INCLUDE_PATH("../../src/app/driver/rtc")
82 TEST_INCLUDE_PATH("../../src/app/engine/
diag")
83 TEST_INCLUDE_PATH("../../src/app/task/config")
84 TEST_INCLUDE_PATH("../../src/app/task/ftask")
125 OS_GetNumberOfStoredMessagesInQueue_IgnoreAndReturn(1u);
126 MPU_xQueueReceive_IgnoreAndReturn(1u);
127 OS_ReceiveFromQueue_IgnoreAndReturn(
OS_SUCCESS);
129 canMessage.
id = 0x22u;
130 for (uint8_t i = 1u; i <= 8u; i++) {
131 canMessage.
data[i] = i;
136 for (uint8_t i = 0u; i < 8u; i++) {
137 TEST_ASSERT_EQUAL(0u, canMessage.
data[i]);
145 TEST_ASSERT_EQUAL(0x9Au, canMessage.
data[1u]);
146 TEST_ASSERT_EQUAL(0x02u, canMessage.
data[2u]);
149 TEST_ASSERT_EQUAL(0x9Au, canMessage.
data[3u]);
150 TEST_ASSERT_EQUAL(0x02u, canMessage.
data[4u]);
152 for (uint8_t i = 1u; i <= 4u; i++) {
153 canMessage.
data[i] = i;
160 TEST_ASSERT_EQUAL(0x201u, data16);
164 TEST_ASSERT_EQUAL(0x403u, data16);
166 for (uint8_t i = 0u; i <= 5u; i++) {
167 canMessage.
data[i] = i + 1u;
174 TEST_ASSERT_EQUAL(0x201u, data16);
178 TEST_ASSERT_EQUAL(0x403u, data16);
182 TEST_ASSERT_EQUAL(0x605u, data16);
184 for (uint8_t i = 1u; i <= 4u; i++) {
185 canMessage.
data[i] = i;
192 TEST_ASSERT_EQUAL(0x1u, data8);
196 TEST_ASSERT_EQUAL(0x2u, data8);
200 TEST_ASSERT_EQUAL(0x3u, data8);
204 TEST_ASSERT_EQUAL(0x4u, data8);
211 TEST_ASSERT_EQUAL(0xAu, canMessage.
id);
213 TEST_ASSERT_EQUAL(0xBu, canMessage.
data[0u]);
216 canMessage.
data[0u] = 0xA;
222 canMessage.
data[0u] = 0xA;
228 canMessage.
data[0u] = 0xA;
234 canMessage.
data[0u] = 0xA;
240 canMessage.
data[0u] = 0xA;
252 for (uint8_t i = 0u; i < 8u; i++) {
253 canMessage.
data[i] = 0u;
258 for (uint8_t i = 0u; i < 8u; i++) {
259 canMessage.
data[i] = 0x00u;
271 canMessage.
data[5u] |=
273 canMessage.
data[5u] |=
289 canMessage.
data[0] = 0xA;
290 bool ackReceived =
false;
293 TEST_ASSERT_EQUAL(
true, ackReceived);
294 TEST_ASSERT_EQUAL(0u, tries);
300 canMessage.
data[0] = 0xB;
303 TEST_ASSERT_EQUAL(1u, tries);
304 TEST_ASSERT_EQUAL(
false, ackReceived);
310 canMessage.
data[0] = 0xB;
314 TEST_ASSERT_EQUAL(
false, ackReceived);
void TEST_I165C_WriteCmd(uint8_t id, uint8_t command, CAN_BUFFER_ELEMENT_s *canMessage)
void TEST_I165C_ReadDataByte(uint8_t dataByte, uint8_t *data, CAN_BUFFER_ELEMENT_s canMessage)
bool TEST_I165C_GetImdInfo(CAN_BUFFER_ELEMENT_s *canMessage)
bool TEST_I165C_IsSelfTestFinished(CAN_BUFFER_ELEMENT_s canMessage)
void TEST_I165C_ResetCanData(CAN_BUFFER_ELEMENT_s *canMessage)
void TEST_I165C_ReadDataWordImdInfo(uint8_t dataWord, uint16_t *data, CAN_BUFFER_ELEMENT_s canMessage)
bool TEST_I165C_CheckAcknowledgeArrived(uint8_t command, uint8_t *tries, CAN_BUFFER_ELEMENT_s *canMessage)
void TEST_I165C_ReadDataWord(uint8_t dataWord, uint16_t *data, CAN_BUFFER_ELEMENT_s canMessage)
bool TEST_I165C_CheckResponse(uint8_t command, CAN_BUFFER_ELEMENT_s *canMessage)
void TEST_I165C_WriteDataWord(uint8_t dataWord, uint16_t data, CAN_BUFFER_ELEMENT_s *canMessage)
Headers for the driver for the insulation monitoring.
#define I165C_IMC_SELFTEST_PARAMETERCONFIG_SCENARIO_SHIFT
#define I165C_INSULATION_MEASUREMENT_STATUS_SHIFT
#define I165C_TRANSMISSION_ATTEMPTS
#define I165C_RX_MESSAGE_IDENTIFIER_TYPE
#define I165C_MESSAGETYPE_IMD_INFO
#define I165C_SELFTEST_RUNNING_SHIFT
#define I165C_IMC_SELFTEST_OVERALL_SCENARIO_SHIFT
Header for the driver for the CAN module.
#define CANRX_IMD_INFO_ID
#define CANRX_IMD_RESPONSE_ID
static DIAG_DIAGNOSIS_STATE_s diag
#define NULL_PTR
Null pointer.
uint8_t data[CAN_MAX_DLC]
CAN_IDENTIFIER_TYPE_e idType
canBASE_t * canNodeRegister
#define TEST_ASSERT_FAIL_ASSERT(_code_under_test)
assert whether assert macro has failed
OS_QUEUE ftsk_imdCanDataQueue
volatile bool ftsk_allQueuesCreated
void testMessageComposition(void)
Test function to compose/use CAN messages.
const CAN_NODE_s can_node1
const CAN_NODE_s can_node2Isolated