foxBMS - Unit Tests  1.6.0
The foxBMS Unit Tests API Documentation
test_can_cbs_rx_debug.c
Go to the documentation of this file.
1 /**
2  *
3  * @copyright © 2010 - 2023, Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V.
4  * All rights reserved.
5  *
6  * SPDX-License-Identifier: BSD-3-Clause
7  *
8  * Redistribution and use in source and binary forms, with or without
9  * modification, are permitted provided that the following conditions are met:
10  *
11  * 1. Redistributions of source code must retain the above copyright notice, this
12  * list of conditions and the following disclaimer.
13  *
14  * 2. Redistributions in binary form must reproduce the above copyright notice,
15  * this list of conditions and the following disclaimer in the documentation
16  * and/or other materials provided with the distribution.
17  *
18  * 3. Neither the name of the copyright holder nor the names of its
19  * contributors may be used to endorse or promote products derived from
20  * this software without specific prior written permission.
21  *
22  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
23  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
24  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
25  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
26  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
27  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
28  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
29  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
30  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32  *
33  * We kindly request you to use one or more of the following phrases to refer to
34  * foxBMS in your hardware, software, documentation or advertising materials:
35  *
36  * - ″This product uses parts of foxBMS®″
37  * - ″This product includes parts of foxBMS®″
38  * - ″This product is derived from foxBMS®″
39  *
40  */
41 
42 /**
43  * @file test_can_cbs_rx_debug.c
44  * @author foxBMS Team
45  * @date 2021-04-22 (date of creation)
46  * @updated 2023-10-12 (date of last update)
47  * @version v1.6.0
48  * @ingroup UNIT_TEST_IMPLEMENTATION
49  * @prefix TEST
50  *
51  * @brief Tests for the CAN driver callbacks
52  *
53  */
54 
55 /*========== Includes =======================================================*/
56 #include "unity.h"
57 #include "Mockcan.h"
58 #include "Mockcan_cbs_tx_debug-response.h"
59 #include "Mockcan_cbs_tx_debug-unsupported-multiplexer-values.h"
60 #include "Mockdatabase.h"
61 #include "Mockdiag.h"
62 #include "Mockfoxmath.h"
63 #include "Mockfram.h"
64 #include "Mockimd.h"
65 #include "Mockos.h"
66 #include "Mockreset.h"
67 
68 #include "database_cfg.h"
69 
70 #include "can_cbs_rx.h"
72 #include "can_helper.h"
73 #include "test_assert_helper.h"
74 
75 #include <stdbool.h>
76 #include <stdint.h>
77 
78 /*========== Unit Testing Framework Directives ==============================*/
79 TEST_SOURCE_FILE("can_cbs_rx_debug.c")
80 
81 TEST_INCLUDE_PATH("../../src/app/driver/can")
82 TEST_INCLUDE_PATH("../../src/app/driver/can/cbs")
83 TEST_INCLUDE_PATH("../../src/app/driver/can/cbs/rx")
84 TEST_INCLUDE_PATH("../../src/app/driver/can/cbs/tx")
85 TEST_INCLUDE_PATH("../../src/app/driver/config")
86 TEST_INCLUDE_PATH("../../src/app/driver/foxmath")
87 TEST_INCLUDE_PATH("../../src/app/driver/fram")
88 TEST_INCLUDE_PATH("../../src/app/driver/imd")
89 TEST_INCLUDE_PATH("../../src/app/driver/rtc")
90 TEST_INCLUDE_PATH("../../src/app/engine/diag")
91 TEST_INCLUDE_PATH("../../src/app/engine/sys")
92 TEST_INCLUDE_PATH("../../src/app/task/config")
93 TEST_INCLUDE_PATH("../../src/app/task/ftask")
94 
95 /*========== Definitions and Implementations for Unit Test ==================*/
96 
97 #define MULTIPLEXER_VALUE_VERSION_INFORMATION (0u)
98 #define MULTIPLEXER_VALUE_RTC (1u)
99 #define MULTIPLEXER_VALUE_SOFTWARE_RESET (2u)
100 #define MULTIPLEXER_VALUE_FRAM_INITIALIZATION (3u)
101 #define MULTIPLEXER_VALUE_TIME_INFO (4u)
102 #define INVALID_MULTIPLEXER_VALUE (99u)
103 
105  .id = CANRX_DEBUG_ID,
106  .idType = CANRX_DEBUG_ID_TYPE,
107  .dlc = CAN_DEFAULT_DLC,
108  .endianness = CANRX_DEBUG_ENDIANNESS,
109 };
110 
111 /* dummy data array filled with zero */
112 const uint8_t testCanDataZeroArray[CAN_MAX_DLC] = {0};
113 const uint64_t testMessageDataZero = 0u;
116 
134 
137 
140  .pTableCellVoltage = &can_tableCellVoltages,
141  .pTableCellTemperature = &can_tableTemperatures,
142  .pTableMinMax = &can_tableMinimumMaximumValues,
143  .pTableCurrentSensor = &can_tableCurrentSensor,
144  .pTableOpenWire = &can_tableOpenWire,
145  .pTableStateRequest = &can_tableStateRequest,
146  .pTablePackValues = &can_tablePackValues,
147  .pTableSof = &can_tableSof,
148  .pTableSoc = &can_tableSoc,
149  .pTableSoe = &can_tableSoe,
150  .pTableErrorState = &can_tableErrorState,
151  .pTableInsulation = &can_tableInsulation,
152  .pTableMsl = &can_tableMslFlags,
153  .pTableRsl = &can_tableRslFlags,
154  .pTableMol = &can_tableMolFlags,
155  .pTableAerosolSensor = &can_tableAerosolSensor,
156 };
157 
158 /*========== Setup and Teardown =============================================*/
159 void setUp(void) {
160 }
161 
162 void tearDown(void) {
163 }
164 
165 /*========== Test Cases =====================================================*/
166 
167 /*********************************************************************************************************************/
168 /* Assertion tests of the public interface of the module, i.e., 'CANRX_Debug' */
170  /* testing assertions, therefore only dummy CAN data required in this test */
171  /* test assert for wrong message ID */
172  CAN_MESSAGE_PROPERTIES_s testMessage = {
173  .id = CAN_MAX_11BIT_ID, /* invalid ID */
174  .idType = CANRX_DEBUG_ID_TYPE,
175  .dlc = 0u, /* invalid data length */
176  .endianness = CANRX_DEBUG_ENDIANNESS, /* valid endianness */
177  };
179 
180  /* fix message ID, therfore only the DLC length is wrong and must lead to
181  an assertion. */
182  testMessage.id = CANRX_DEBUG_ID;
184 
185  /* fix the message, as we now need to test the rest of the arguments assertions */
186  testMessage.id = CAN_DEFAULT_DLC;
187 
188  /* invalid pointer for the CAN data */
190  /* invalid pointer for the database shim */
192 }
193 
195  /* invalid pointer for the CAN data */
197 }
198 
200  uint8_t testCanData[CAN_MAX_DLC] = {0};
202 }
203 
204 /*********************************************************************************************************************/
205 /* tests of the public interface of the module, i.e., 'CANRX_Debug' when valid input is provided */
206 /* the provided parameters are valid, but the multiplexer value is not known to the BMS, therefore we need to answer
207  that we do not know how to process this value */
209  uint8_t testCanData[CAN_MAX_DLC] = {0};
210 
211  testCanData[0] = INVALID_MULTIPLEXER_VALUE; /* invalid multiplexer value */
212  CANTX_UnsupportedMultiplexerValue_Expect(CANRX_DEBUG_ID, INVALID_MULTIPLEXER_VALUE);
214 }
215 
216 /* provide a valid multiplexer value (version information) */
218  uint8_t testCanData[CAN_MAX_DLC] = {0};
219 
220  testCanData[0] = MULTIPLEXER_VALUE_VERSION_INFORMATION; /* version information multiplexer message */
222 }
223 
224 /* provide a valid multiplexer value (set the RTC time) */
226  uint8_t testCanData[CAN_MAX_DLC] = {0};
227  OS_SendToBackOfQueue_IgnoreAndReturn(STD_OK);
228  testCanData[0] = MULTIPLEXER_VALUE_RTC; /* RTC multiplexer message */
230 }
231 
232 /* provide a valid multiplexer value (request a software reset) */
234  uint8_t testCanData[CAN_MAX_DLC] = {0};
235 
236  testCanData[0] = MULTIPLEXER_VALUE_SOFTWARE_RESET; /* Software reset multiplexer message */
238 }
239 
240 /* provide a valid multiplexer value (request the initialization of the FRAM) */
242  uint8_t testCanData[CAN_MAX_DLC] = {0};
243 
244  testCanData[0] = MULTIPLEXER_VALUE_FRAM_INITIALIZATION; /* (re-)initialization of the FRAM multiplexer message */
246 }
247 
248 /* provide a valid multiplexer value (time information) */
250  uint8_t testCanData[CAN_MAX_DLC] = {0};
251 
252  testCanData[0] = MULTIPLEXER_VALUE_TIME_INFO; /* BMS time information multiplexer message */
254 }
255 
256 /*********************************************************************************************************************/
257 /* test RTC helper functions */
259  /* implemented as big endian */
261  /* test message decoding */
262 }
263 
265  /* implemented as big endian */
267  /* test message decoding */
268 }
269 
271  /* implemented as big endian */
273  /* test message decoding */
274 }
275 
276 void testCANRX_GetHours(void) {
277  /* implemented as big endian */
279  /* test message decoding */
280 }
281 
283  /* implemented as big endian */
285  /* test message decoding */
286 }
287 
288 void testCANRX_GetDay(void) {
289  /* implemented as big endian */
291  /* test message decoding */
292 }
293 
294 void testCANRX_GetMonth(void) {
295  /* implemented as big endian */
297  /* test message decoding */
298 }
299 
300 void testCANRX_GetYear(void) {
301  /* implemented as big endian */
303  /* test message decoding */
304 }
305 
306 /*********************************************************************************************************************/
308  /* sending response message works as expected */
309  CANTX_DebugResponse_IgnoreAndReturn(STD_OK);
311 
312  /* sending response message does not work as expected */
313  CANTX_DebugResponse_IgnoreAndReturn(STD_NOT_OK);
315 }
316 
318  /* sending response message works as expected */
319  CANTX_DebugResponse_IgnoreAndReturn(STD_OK);
321 
322  /* sending response message does not work as expected */
323  CANTX_DebugResponse_IgnoreAndReturn(STD_NOT_OK);
325 }
326 
328  /* sending response message works as expected */
329  CANTX_DebugResponse_IgnoreAndReturn(STD_OK);
331 
332  /* sending response message does not work as expected */
333  CANTX_DebugResponse_IgnoreAndReturn(STD_NOT_OK);
335 }
336 
338  /* sending response message works as expected */
339  CANTX_DebugResponse_IgnoreAndReturn(STD_OK);
341 
342  /* sending response message does not work as expected */
343  CANTX_DebugResponse_IgnoreAndReturn(STD_NOT_OK);
345 }
346 
348  /* sending response message works as expected */
349  CANTX_DebugResponse_IgnoreAndReturn(STD_OK);
351 
352  /* sending response message does not work as expected */
353  CANTX_DebugResponse_IgnoreAndReturn(STD_NOT_OK);
355 }
356 
358  /* sending response message works as expected */
359  CANTX_DebugResponse_IgnoreAndReturn(STD_OK);
361 
362  /* sending response message does not work as expected */
363  CANTX_DebugResponse_IgnoreAndReturn(STD_NOT_OK);
365 }
366 
367 /*********************************************************************************************************************/
369  /* test endianness assertion */
371 
372  /* test correct message -> return true */
373  uint64_t testMessageData = ((uint64_t)1u) << 48u; /* set bit to indicate that the software version is requested */
374  bool isRequested = TEST_CANRX_CheckIfBmsSoftwareVersionIsRequested(testMessageData, validEndianness);
375  TEST_ASSERT_TRUE(isRequested);
376 }
377 
379  /* test endianness assertion */
381 
382  /* test correct message -> return true */
383  uint64_t testMessageData = ((uint64_t)1u) << 49u; /* set bit to indicate that the MCU die Id version is requested */
384  bool isRequested = TEST_CANRX_CheckIfMcuUniqueDieIdIsRequested(testMessageData, validEndianness);
385  TEST_ASSERT_TRUE(isRequested);
386 }
387 
389  /* test endianness assertion */
391 
392  /* test correct message -> return true */
393  uint64_t testMessageData = ((uint64_t)1u) << 50u; /* set bit to indicate that the MCU lot numer is requested */
394  bool isRequested = TEST_CANRX_CheckIfMcuLotNumberIsRequested(testMessageData, validEndianness);
395  TEST_ASSERT_TRUE(isRequested);
396 }
397 
399  /* test endianness assertion */
401 
402  /* test correct message -> return true */
403  /* set bit to indicate that the MCU wafer information is requested */
404  uint64_t testMessageData = ((uint64_t)1u) << 51u;
405  bool isRequested = TEST_CANRX_CheckIfMcuWaferInformationIsRequested(testMessageData, validEndianness);
406  TEST_ASSERT_TRUE(isRequested);
407 }
408 
410  /* test endianness assertion */
412 
413  /* test correct message -> return true */
414  /* set bit to indicate that the MCU wafer information is requested */
415  uint64_t testMessageData = ((uint64_t)1u) << 52u;
416  bool isRequested = TEST_CANRX_CheckIfCommitHashIsRequested(testMessageData, validEndianness);
417  TEST_ASSERT_TRUE(isRequested);
418 }
419 
421  /* test endianness assertion */
423 
424  /* test correct message -> return true */
425  uint64_t testMessageData = ((uint64_t)1u) << 31u; /* set bit to indicate that the software reset is requested */
426  bool isRequested = TEST_CANRX_CheckIfSoftwareResetIsRequested(testMessageData, validEndianness);
427  TEST_ASSERT_TRUE(isRequested);
428 }
429 
431  /* test endianness assertion */
433 
434  /* test correct message -> return true */
435  /* set bit to indicate that the FRAM (re-)initialization is requested */
436  uint64_t testMessageData = ((uint64_t)1u) << 31u;
437  bool isRequested = TEST_CANRX_CheckIfSoftwareResetIsRequested(testMessageData, validEndianness);
438  TEST_ASSERT_TRUE(isRequested);
439 }
440 
442  /* test endianness assertion */
444 
445  /* test correct message -> return true */
446  /* set bit to indicate that the BMS time information is requested */
447  uint64_t testMessageData = ((uint64_t)1u) << 48u;
448  bool isRequested = TEST_CANRX_CheckIfTimeInfoIsRequested(testMessageData, validEndianness);
449  TEST_ASSERT_TRUE(isRequested);
450 }
451 
452 /*********************************************************************************************************************/
453 /* test if all functions that process the multiplexer values (pattern: CANRX_Process.*Mux) */
455  /* test endianness assertion */
457 
458  uint64_t testMessageData = ((uint64_t)1u) << 48u; /* set bit to indicate that the software version is requested */
459  CANTX_DebugResponse_ExpectAndReturn(CANTX_DEBUG_RESPONSE_TRANSMIT_BMS_VERSION_INFO, STD_OK);
461 
462  testMessageData = ((uint64_t)1u) << 49u; /* set bit to indicate that the MCU die Id version is requested */
463  CANTX_DebugResponse_ExpectAndReturn(CANTX_DEBUG_RESPONSE_TRANSMIT_MCU_UNIQUE_DIE_ID, STD_OK);
465 
466  testMessageData = ((uint64_t)1u) << 50u; /* set bit to indicate that the MCU lot numer is requested */
467  CANTX_DebugResponse_ExpectAndReturn(CANTX_DEBUG_RESPONSE_TRANSMIT_MCU_LOT_NUMBER, STD_OK);
469 
470  testMessageData = ((uint64_t)1u) << 51u; /* set bit to indicate that the MCU wafer information is requested */
471  CANTX_DebugResponse_ExpectAndReturn(CANTX_DEBUG_RESPONSE_TRANSMIT_MCU_WAFER_INFORMATION, STD_OK);
473 }
474 
476  /* test endianness assertion */
478 
479  /* provide just zero data, as it does not matter (int that test) what
480  the RTC helper functions do. It is just important that we push into
481  the queue */
482  OS_SendToBackOfQueue_IgnoreAndReturn(STD_OK);
484 }
485 
487  /* test endianness assertion */
489 
490  uint64_t testMessageData = ((uint64_t)1u) << 31u; /* set bit to indicate that the software reset is requested */
491  SYS_TriggerSoftwareReset_Expect();
493 }
494 
496  /* test endianness assertion */
498 
499  /* set bit to indicate that the FRAM (re-)initialization is requested */
500  uint64_t testMessageData = ((uint64_t)1u) << 35u;
501  FRAM_ReinitializeAllEntries_ExpectAndReturn(STD_OK);
503 }
504 
506  /* test endianness assertion */
508 
509  uint64_t testMessageData = ((uint64_t)1u) << 48u; /* set bit to indicate that the time information is requested */
510  CANTX_DebugResponse_IgnoreAndReturn(STD_OK);
512 }
CAN callbacks header.
void TEST_CANRX_ProcessSoftwareResetMux(uint64_t messageData, CAN_ENDIANNESS_e endianness)
uint8_t TEST_CANRX_GetHours(uint64_t messageData, CAN_ENDIANNESS_e endianness)
uint8_t TEST_CANRX_GetMinutes(uint64_t messageData, CAN_ENDIANNESS_e endianness)
bool TEST_CANRX_CheckIfMcuUniqueDieIdIsRequested(uint64_t messageData, CAN_ENDIANNESS_e endianness)
void TEST_CANRX_TriggerMcuLotNumberMessage(void)
void TEST_CANRX_TriggerCommitHashMessage(void)
bool TEST_CANRX_CheckIfTimeInfoIsRequested(uint64_t messageData, CAN_ENDIANNESS_e endianness)
void TEST_CANRX_ProcessFramInitializationMux(uint64_t messageData, CAN_ENDIANNESS_e endianness)
void TEST_CANRX_TriggerTimeInfoMessage(void)
bool TEST_CANRX_CheckIfFramInitializationIsRequested(uint64_t messageData, CAN_ENDIANNESS_e endianness)
uint8_t TEST_CANRX_GetHundredthOfSeconds(uint64_t messageData, CAN_ENDIANNESS_e endianness)
void TEST_CANRX_TriggerMcuUniqueDieIdMessage(void)
void TEST_CANRX_TriggerMcuWaferInformationMessage(void)
bool TEST_CANRX_CheckIfMcuLotNumberIsRequested(uint64_t messageData, CAN_ENDIANNESS_e endianness)
uint8_t TEST_CANRX_GetWeekday(uint64_t messageData, CAN_ENDIANNESS_e endianness)
uint32_t CANRX_Debug(CAN_MESSAGE_PROPERTIES_s message, const uint8_t *const kpkCanData, const CAN_SHIM_s *const kpkCanShim)
can rx callback function for debug messages
void TEST_CANRX_ProcessRtcMux(uint64_t messageData, CAN_ENDIANNESS_e endianness)
uint8_t TEST_CANRX_GetYear(uint64_t messageData, CAN_ENDIANNESS_e endianness)
bool TEST_CANRX_CheckIfSoftwareResetIsRequested(uint64_t messageData, CAN_ENDIANNESS_e endianness)
void TEST_CANRX_ProcessVersionInformationMux(uint64_t messageData, CAN_ENDIANNESS_e endianness)
bool TEST_CANRX_CheckIfMcuWaferInformationIsRequested(uint64_t messageData, CAN_ENDIANNESS_e endianness)
uint8_t TEST_CANRX_GetDay(uint64_t messageData, CAN_ENDIANNESS_e endianness)
void TEST_CANRX_TriggerBmsSoftwareVersionMessage(void)
bool TEST_CANRX_CheckIfBmsSoftwareVersionIsRequested(uint64_t messageData, CAN_ENDIANNESS_e endianness)
void TEST_CANRX_ProcessTimeInfoMux(uint64_t messageData, CAN_ENDIANNESS_e endianness)
uint8_t TEST_CANRX_GetSeconds(uint64_t messageData, CAN_ENDIANNESS_e endianness)
uint8_t TEST_CANRX_GetMonth(uint64_t messageData, CAN_ENDIANNESS_e endianness)
bool TEST_CANRX_CheckIfCommitHashIsRequested(uint64_t messageData, CAN_ENDIANNESS_e endianness)
@ CANTX_DEBUG_RESPONSE_TRANSMIT_MCU_LOT_NUMBER
@ CANTX_DEBUG_RESPONSE_TRANSMIT_MCU_UNIQUE_DIE_ID
@ CANTX_DEBUG_RESPONSE_TRANSMIT_MCU_WAFER_INFORMATION
@ CANTX_DEBUG_RESPONSE_TRANSMIT_BMS_VERSION_INFO
CAN_ENDIANNESS_e
Definition: can_cfg.h:156
@ CAN_LITTLE_ENDIAN
Definition: can_cfg.h:157
@ CAN_BIG_ENDIAN
Definition: can_cfg.h:158
#define CAN_MAX_11BIT_ID
Definition: can_cfg.h:99
#define CAN_DEFAULT_DLC
Definition: can_cfg.h:103
#define CAN_MAX_DLC
Definition: can_cfg.h:101
Header for the driver for the CAN module.
#define CANRX_DEBUG_ID_TYPE
#define CANRX_DEBUG_ENDIANNESS
#define CANRX_DEBUG_ID
Headers for the helper functions for the CAN module.
Database configuration header.
@ DATA_BLOCK_ID_MIN_MAX
Definition: database_cfg.h:99
@ DATA_BLOCK_ID_SOE
Definition: database_cfg.h:109
@ DATA_BLOCK_ID_ERROR_STATE
Definition: database_cfg.h:95
@ DATA_BLOCK_ID_RSL_FLAG
Definition: database_cfg.h:106
@ DATA_BLOCK_ID_INSULATION_MONITORING
Definition: database_cfg.h:97
@ DATA_BLOCK_ID_STATE_REQUEST
Definition: database_cfg.h:112
@ DATA_BLOCK_ID_CELL_VOLTAGE
Definition: database_cfg.h:89
@ DATA_BLOCK_ID_CURRENT_SENSOR
Definition: database_cfg.h:93
@ DATA_BLOCK_ID_OPEN_WIRE_BASE
Definition: database_cfg.h:103
@ DATA_BLOCK_ID_SOF
Definition: database_cfg.h:110
@ DATA_BLOCK_ID_MSL_FLAG
Definition: database_cfg.h:102
@ DATA_BLOCK_ID_PACK_VALUES
Definition: database_cfg.h:105
@ DATA_BLOCK_ID_MOL_FLAG
Definition: database_cfg.h:100
@ DATA_BLOCK_ID_CELL_TEMPERATURE
Definition: database_cfg.h:86
@ DATA_BLOCK_ID_SOC
Definition: database_cfg.h:108
@ DATA_BLOCK_ID_AEROSOL_SENSOR
Definition: database_cfg.h:80
static DIAG_DIAGNOSIS_STATE_s diag
Definition: diag.c:71
@ STD_NOT_OK
Definition: fstd_types.h:84
@ STD_OK
Definition: fstd_types.h:83
#define NULL_PTR
Null pointer.
Definition: fstd_types.h:77
OS_QUEUE * pQueueImd
Definition: can_cfg.h:178
DATA_BLOCK_HEADER_s header
Definition: database_cfg.h:635
DATA_BLOCK_HEADER_s header
Definition: database_cfg.h:153
DATA_BLOCK_HEADER_s header
Definition: database_cfg.h:135
DATA_BLOCK_HEADER_s header
Definition: database_cfg.h:219
DATA_BLOCK_HEADER_s header
Definition: database_cfg.h:337
DATA_BLOCK_ID_e uniqueId
Definition: database_cfg.h:125
DATA_BLOCK_HEADER_s header
Definition: database_cfg.h:167
DATA_BLOCK_HEADER_s header
Definition: database_cfg.h:497
DATA_BLOCK_HEADER_s header
Definition: database_cfg.h:455
DATA_BLOCK_HEADER_s header
Definition: database_cfg.h:310
DATA_BLOCK_HEADER_s header
Definition: database_cfg.h:195
DATA_BLOCK_HEADER_s header
Definition: database_cfg.h:477
DATA_BLOCK_HEADER_s header
Definition: database_cfg.h:517
DATA_BLOCK_HEADER_s header
Definition: database_cfg.h:539
DATA_BLOCK_HEADER_s header
Definition: database_cfg.h:427
DATA_BLOCK_HEADER_s header
Definition: database_cfg.h:553
Helper for unit tests.
#define TEST_ASSERT_FAIL_ASSERT(_code_under_test)
assert whether assert macro has failed
void testCANRX_ProcessTimeInfoMux(void)
static DATA_BLOCK_CELL_VOLTAGE_s can_tableCellVoltages
void testCANRX_CheckIfSoftwareResetIsRequested(void)
OS_QUEUE ftsk_rtcSetTimeQueue
void testCANRX_GetMonth(void)
void testCANRX_CheckIfCommitHashIsRequested(void)
static DATA_BLOCK_MSL_FLAG_s can_tableMslFlags
void testCANRX_GetMinutes(void)
void testCANRX_DebugRtcMultiplexerValue(void)
void testCANRX_DebugVersionInformationMultiplexerValue(void)
void testCANRX_DebugInvalidMultiplexerValues(void)
void testCANRX_ProcessVersionInformationMux(void)
void testCANRX_CheckIfBmsSoftwareVersionIsRequested(void)
void testCANRX_TriggerMcuWaferInformationMessage(void)
void testCANRX_ProcessRtcMux(void)
static DATA_BLOCK_MIN_MAX_s can_tableMinimumMaximumValues
static DATA_BLOCK_OPEN_WIRE_s can_tableOpenWire
void testCANRX_GetYear(void)
#define MULTIPLEXER_VALUE_FRAM_INITIALIZATION
void testCANRX_GetHundredthOfSeconds(void)
#define MULTIPLEXER_VALUE_RTC
void testCANRX_CheckIfMcuUniqueDieIdIsRequested(void)
void testCANRX_TriggerMcuUniqueDieIdMessage(void)
void testCANRX_DebugTimeInfoMultiplexerValue(void)
void testCANRX_DebugFramInitializationMultiplexerValue(void)
void testCANRX_DebugAssertionsParamCanData(void)
static DATA_BLOCK_PACK_VALUES_s can_tablePackValues
void testCANRX_DebugSoftwareResetMultiplexerValue(void)
#define MULTIPLEXER_VALUE_SOFTWARE_RESET
void testCANRX_CheckIfMcuLotNumberIsRequested(void)
void testCANRX_CheckIfTimeInfoIsRequested(void)
void testCANRX_TriggerCommitHashMessage(void)
#define MULTIPLEXER_VALUE_VERSION_INFORMATION
static DATA_BLOCK_MOL_FLAG_s can_tableMolFlags
#define MULTIPLEXER_VALUE_TIME_INFO
void testCANRX_GetSeconds(void)
const CAN_ENDIANNESS_e validEndianness
CAN_MESSAGE_PROPERTIES_s validRxDebugTestMessage
void testCANRX_ProcessSoftwareResetMux(void)
static DATA_BLOCK_AEROSOL_SENSOR_s can_tableAerosolSensor
void testCANRX_TriggerTimeInfoMessage(void)
static DATA_BLOCK_ERROR_STATE_s can_tableErrorState
const uint64_t testMessageDataZero
void setUp(void)
void testCANRX_DebugAssertionsParamDatabaseShim(void)
void testCANRX_DebugAssertionsParamMessage(void)
void tearDown(void)
const uint8_t testCanDataZeroArray[CAN_MAX_DLC]
const CAN_SHIM_s can_kShim
static DATA_BLOCK_CELL_TEMPERATURE_s can_tableTemperatures
void testCANRX_GetWeekday(void)
static DATA_BLOCK_SOE_s can_tableSoe
void testCANRX_TriggerBmsSoftwareVersionMessage(void)
void testCANRX_CheckIfMcuWaferInformationIsRequested(void)
static DATA_BLOCK_RSL_FLAG_s can_tableRslFlags
static DATA_BLOCK_STATE_REQUEST_s can_tableStateRequest
void testCANRX_GetDay(void)
void testCANRX_TriggerMcuLotNumberMessage(void)
static DATA_BLOCK_INSULATION_MONITORING_s can_tableInsulation
static DATA_BLOCK_SOF_s can_tableSof
void testCANRX_ProcessFramInitializationMux(void)
void testCANRX_GetHours(void)
void testCANRX_CheckIfFramInitializationIsRequested(void)
const CAN_ENDIANNESS_e invalidEndianness
#define INVALID_MULTIPLEXER_VALUE
static DATA_BLOCK_SOC_s can_tableSoc
static DATA_BLOCK_CURRENT_SENSOR_s can_tableCurrentSensor
OS_QUEUE imd_canDataQueue