![]() |
foxBMS - Unit Tests
1.6.0
The foxBMS Unit Tests API Documentation
|
Tests for the CAN driver. More...
#include "unity.h"
#include "MockHL_can.h"
#include "Mockcan_cfg.h"
#include "Mockdatabase.h"
#include "Mockdiag.h"
#include "Mockfoxmath.h"
#include "Mockftask.h"
#include "Mockimd.h"
#include "Mockio.h"
#include "Mockmcu.h"
#include "Mockos.h"
#include "Mockpex.h"
#include "Mockqueue.h"
#include "Mocktest_can_mpu_prototype_queue_create_stub.h"
#include "version_cfg.h"
#include "can.h"
#include "test_assert_helper.h"
#include <stdbool.h>
#include <stdint.h>
Go to the source code of this file.
Macros | |
#define | CANRX_NOT_PERIODIC (0u) |
#define | TEST_CANTX_ID_DUMMY (0x001) |
#define | TEST_CANTX_DUMMY_PERIOD_ms (100) |
#define | TEST_CANTX_DUMMY_PHASE_ms (0) |
#define | TEST_CANTX_DUMMY_MESSAGE |
#define | TEST_CANRX_ID_DUMMY (0x002) |
#define | TEST_CANRX_DUMMY_MESSAGE |
Functions | |
static uint32_t | TEST_CANTX_DummyCallback (CAN_MESSAGE_PROPERTIES_s message, uint8_t *pCanData, uint8_t *pMuxId, const CAN_SHIM_s *const kpkCanShim) |
static uint32_t | TEST_CANRX_DummyCallback (CAN_MESSAGE_PROPERTIES_s message, const uint8_t *const kpkCanData, const CAN_SHIM_s *const kpkCanShim) |
void | setUp (void) |
void | tearDown (void) |
void | testDataSendNullPointerAsNode (void) |
void | testDataSendNullPointerAsData (void) |
void | testDataSendNoMessagePending (void) |
void | testDataSendInvalidIdentifierType (void) |
void | testDataSendMessagePending (void) |
void | testEnablePeriodic (void) |
void | testIsCurrentSensorPresent (void) |
void | testIsCurrentSensorCcPresent (void) |
void | testCAN_ValidateConfiguredTxMessagePeriod (void) |
void | testCAN_ValidateConfiguredTxMessagePhase (void) |
void | testCAN_CheckDatabaseNullPointer (void) |
void | testCAN_PeriodicTransmitQueueFull (void) |
void | testCAN_PeriodicTransmitQueueHasSpace (void) |
void | testCAN_IsMessagePeriodElapsed (void) |
void | testCAN_SendMessagesFromQueue (void) |
Tests for the CAN driver.
SPDX-License-Identifier: BSD-3-Clause
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
We kindly request you to use one or more of the following phrases to refer to foxBMS in your hardware, software, documentation or advertising materials:
This file implements the test of the validation functions for tx message configuration with correct configuration for message period and phase. Both functions are tested to not assert an error with valid configuration. Invalid configurations are tested in test_can_1 and test_can_2.
Definition in file test_can.c.
#define CANRX_NOT_PERIODIC (0u) |
Definition at line 99 of file test_can.c.
#define TEST_CANRX_DUMMY_MESSAGE |
Definition at line 120 of file test_can.c.
#define TEST_CANRX_ID_DUMMY (0x002) |
Definition at line 118 of file test_can.c.
#define TEST_CANTX_DUMMY_MESSAGE |
Definition at line 106 of file test_can.c.
#define TEST_CANTX_DUMMY_PERIOD_ms (100) |
Definition at line 103 of file test_can.c.
#define TEST_CANTX_DUMMY_PHASE_ms (0) |
Definition at line 104 of file test_can.c.
#define TEST_CANTX_ID_DUMMY (0x001) |
Definition at line 102 of file test_can.c.
void setUp | ( | void | ) |
void tearDown | ( | void | ) |
Definition at line 232 of file test_can.c.
|
static |
Definition at line 186 of file test_can.c.
|
static |
Definition at line 178 of file test_can.c.
void testCAN_CheckDatabaseNullPointer | ( | void | ) |
void testCAN_IsMessagePeriodElapsed | ( | void | ) |
void testCAN_PeriodicTransmitQueueFull | ( | void | ) |
void testCAN_PeriodicTransmitQueueHasSpace | ( | void | ) |
void testCAN_SendMessagesFromQueue | ( | void | ) |
only test the case of failing, because the case of successful call would require actual (not mocked) call of OS_ReceiveFromQueue to write to message buffer
Definition at line 421 of file test_can.c.
void testCAN_ValidateConfiguredTxMessagePeriod | ( | void | ) |
void testCAN_ValidateConfiguredTxMessagePhase | ( | void | ) |
void testDataSendInvalidIdentifierType | ( | void | ) |
void testDataSendMessagePending | ( | void | ) |
void testDataSendNoMessagePending | ( | void | ) |
void testDataSendNullPointerAsData | ( | void | ) |
void testDataSendNullPointerAsNode | ( | void | ) |
void testEnablePeriodic | ( | void | ) |
void testIsCurrentSensorCcPresent | ( | void | ) |
void testIsCurrentSensorPresent | ( | void | ) |
const CAN_SHIM_s can_kShim |
variable for storing and passing on the local database table handles
Definition at line 158 of file test_can.c.
const CAN_NODE_s can_node1 |
CAN node configurations for CAN1 and CAN2 (isolated)
Definition at line 131 of file test_can.c.
const CAN_NODE_s can_node2Isolated |
Definition at line 135 of file test_can.c.
const CAN_RX_MESSAGE_TYPE_s can_rxMessages[] |
registry of CAN RX messages
Definition at line 197 of file test_can.c.
const uint8_t can_rxMessagesLength = sizeof(can_rxMessages) / sizeof(can_rxMessages[0]) |
length of CAN message arrays
Definition at line 202 of file test_can.c.
|
static |
Definition at line 140 of file test_can.c.
|
static |
Definition at line 141 of file test_can.c.
|
static |
Definition at line 142 of file test_can.c.
|
static |
Definition at line 143 of file test_can.c.
|
static |
Definition at line 145 of file test_can.c.
|
static |
Definition at line 146 of file test_can.c.
|
static |
Definition at line 147 of file test_can.c.
|
static |
Definition at line 148 of file test_can.c.
|
static |
Definition at line 149 of file test_can.c.
|
static |
Definition at line 150 of file test_can.c.
|
static |
Definition at line 151 of file test_can.c.
|
static |
Definition at line 152 of file test_can.c.
|
static |
Definition at line 153 of file test_can.c.
|
static |
Definition at line 154 of file test_can.c.
|
static |
Definition at line 139 of file test_can.c.
const CAN_TX_MESSAGE_TYPE_s can_txMessages[] |
CAN RX and TX message configuration structs
registry of CAN TX messages
Definition at line 193 of file test_can.c.
const uint8_t can_txMessagesLength = sizeof(can_txMessages) / sizeof(can_txMessages[0]) |
array length for transmission CAN0 message definition
length of CAN message arrays
Definition at line 201 of file test_can.c.
CAN_STATE_s* canTestState = NULL_PTR |
Definition at line 212 of file test_can.c.
CAN_BUFFER_ELEMENT_s dummyMessageBuffer |
Definition at line 204 of file test_can.c.
volatile bool ftsk_allQueuesCreated = false |
indicator whether the queues have successfully been initialized to be used in other parts of the software
Definition at line 218 of file test_can.c.
OS_QUEUE ftsk_canRxQueue = NULL_PTR |
CAN driver data queue for RX messages
Definition at line 216 of file test_can.c.
OS_QUEUE ftsk_canTxUnsentMessagesQueue = NULL_PTR |
CAN driver data queue for unsent TX messages
Definition at line 217 of file test_can.c.
OS_QUEUE ftsk_dataQueue = NULL_PTR |
Definition at line 214 of file test_can.c.
OS_QUEUE ftsk_imdCanDataQueue = NULL_PTR |
queue for CAN based IMD devices
Definition at line 215 of file test_can.c.
OS_QUEUE imd_canDataQueue = NULL_PTR |
Definition at line 156 of file test_can.c.
const uint16_t numberOfRepetitionsToReset = (TEST_CANTX_DUMMY_PERIOD_ms / CAN_TICK_ms) - 1 |
Definition at line 210 of file test_can.c.