tests: drivers: can: api: test adding invalid CAN RX filters
Add tests for adding CAN RX filters with invalid CAN IDs and CAN ID masks. Signed-off-by: Henrik Brix Andersen <henrik@brixandersen.dk>
This commit is contained in:
parent
cba3a831e2
commit
0543657831
1 changed files with 60 additions and 0 deletions
|
@ -606,6 +606,66 @@ ZTEST(can_classic, test_add_filter)
|
|||
can_remove_rx_filter(can_dev, filter_id);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Test adding an invalid CAN RX filter.
|
||||
*
|
||||
* @param dev Pointer to the device structure for the driver instance.
|
||||
* @param frame Pointer to the CAN RX filter.
|
||||
*/
|
||||
static void add_invalid_rx_filter(const struct device *dev, const struct can_filter *filter)
|
||||
{
|
||||
int filter_id;
|
||||
|
||||
Z_TEST_SKIP_IFNDEF(CONFIG_RUNTIME_ERROR_CHECKS);
|
||||
|
||||
filter_id = can_add_rx_filter(dev, rx_std_callback_1, NULL, filter);
|
||||
zassert_equal(filter_id, -EINVAL, "added invalid filter");
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Test adding NULL filter.
|
||||
*/
|
||||
ZTEST(can_classic, test_add_invalid_null_filter)
|
||||
{
|
||||
add_invalid_rx_filter(can_dev, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Test adding invalid standard (11-bit) filters.
|
||||
*/
|
||||
ZTEST(can_classic, test_add_invalid_std_filter)
|
||||
{
|
||||
struct can_filter filter = {
|
||||
.flags = 0U,
|
||||
};
|
||||
|
||||
filter.id = CAN_STD_ID_MASK;
|
||||
filter.mask = CAN_STD_ID_MASK + 1U;
|
||||
add_invalid_rx_filter(can_dev, &filter);
|
||||
|
||||
filter.id = CAN_STD_ID_MASK + 1U;
|
||||
filter.mask = CAN_STD_ID_MASK;
|
||||
add_invalid_rx_filter(can_dev, &filter);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Test adding invalid extended (29-bit) filters.
|
||||
*/
|
||||
ZTEST(can_classic, test_add_invalid_ext_filter)
|
||||
{
|
||||
struct can_filter filter = {
|
||||
.flags = CAN_FILTER_IDE,
|
||||
};
|
||||
|
||||
filter.id = CAN_EXT_ID_MASK;
|
||||
filter.mask = CAN_EXT_ID_MASK + 1U;
|
||||
add_invalid_rx_filter(can_dev, &filter);
|
||||
|
||||
filter.id = CAN_EXT_ID_MASK + 1U;
|
||||
filter.mask = CAN_EXT_ID_MASK;
|
||||
add_invalid_rx_filter(can_dev, &filter);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Test adding up to and above the maximum number of RX filters.
|
||||
*
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue