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:
Henrik Brix Andersen 2024-04-06 17:09:26 +00:00 committed by Carles Cufí
commit 0543657831

View file

@ -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.
*