tests: drivers: can: timing: use capabilities to skip tests
Use the CAN controller driver capabilities to determine if the CAN-FD timing tests should be skipped or not. There is no need for special handling of CONFIG_CAN_FD_MODE. Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
This commit is contained in:
parent
f1a7ec96db
commit
c6db73e93d
1 changed files with 45 additions and 13 deletions
|
@ -232,22 +232,24 @@ ZTEST_USER(can_timing, test_timing)
|
||||||
/**
|
/**
|
||||||
* @brief Test all CAN timing values for the data phase.
|
* @brief Test all CAN timing values for the data phase.
|
||||||
*/
|
*/
|
||||||
#ifdef CONFIG_CAN_FD_MODE
|
|
||||||
ZTEST_USER(can_timing, test_timing_data)
|
ZTEST_USER(can_timing, test_timing_data)
|
||||||
{
|
{
|
||||||
const struct device *const dev = DEVICE_DT_GET(DT_CHOSEN(zephyr_canbus));
|
const struct device *const dev = DEVICE_DT_GET(DT_CHOSEN(zephyr_canbus));
|
||||||
|
can_mode_t cap;
|
||||||
|
int err;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
err = can_get_capabilities(dev, &cap);
|
||||||
|
zassert_equal(err, 0, "failed to get CAN controller capabilities (err %d)", err);
|
||||||
|
|
||||||
|
if ((cap & CAN_MODE_FD) == 0) {
|
||||||
|
ztest_test_skip();
|
||||||
|
}
|
||||||
|
|
||||||
for (i = 0; i < ARRAY_SIZE(can_timing_data_tests); i++) {
|
for (i = 0; i < ARRAY_SIZE(can_timing_data_tests); i++) {
|
||||||
test_timing_values(dev, &can_timing_data_tests[i], true);
|
test_timing_values(dev, &can_timing_data_tests[i], true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#else /* CONFIG_CAN_FD_MODE */
|
|
||||||
ZTEST_USER(can_timing, test_timing_data)
|
|
||||||
{
|
|
||||||
ztest_test_skip();
|
|
||||||
}
|
|
||||||
#endif /* CONFIG_CAN_FD_MODE */
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Test that the minimum timing values can be set.
|
* @brief Test that the minimum timing values can be set.
|
||||||
|
@ -259,11 +261,26 @@ ZTEST_USER(can_timing, test_set_timing_min)
|
||||||
|
|
||||||
err = can_set_timing(dev, can_get_timing_min(dev));
|
err = can_set_timing(dev, can_get_timing_min(dev));
|
||||||
zassert_equal(err, 0, "failed to set minimum timing parameters (err %d)", err);
|
zassert_equal(err, 0, "failed to set minimum timing parameters (err %d)", err);
|
||||||
|
}
|
||||||
|
|
||||||
if (IS_ENABLED(CONFIG_CAN_FD_MODE)) {
|
/**
|
||||||
err = can_set_timing_data(dev, can_get_timing_data_min(dev));
|
* @brief Test that the minimum timing values for the data phase can be set.
|
||||||
zassert_equal(err, 0, "failed to set minimum timing data parameters (err %d)", err);
|
*/
|
||||||
|
ZTEST_USER(can_timing, test_set_timing_data_min)
|
||||||
|
{
|
||||||
|
const struct device *const dev = DEVICE_DT_GET(DT_CHOSEN(zephyr_canbus));
|
||||||
|
can_mode_t cap;
|
||||||
|
int err;
|
||||||
|
|
||||||
|
err = can_get_capabilities(dev, &cap);
|
||||||
|
zassert_equal(err, 0, "failed to get CAN controller capabilities (err %d)", err);
|
||||||
|
|
||||||
|
if ((cap & CAN_MODE_FD) == 0) {
|
||||||
|
ztest_test_skip();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
err = can_set_timing_data(dev, can_get_timing_data_min(dev));
|
||||||
|
zassert_equal(err, 0, "failed to set minimum timing data parameters (err %d)", err);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -276,11 +293,26 @@ ZTEST_USER(can_timing, test_set_timing_max)
|
||||||
|
|
||||||
err = can_set_timing(dev, can_get_timing_max(dev));
|
err = can_set_timing(dev, can_get_timing_max(dev));
|
||||||
zassert_equal(err, 0, "failed to set maximum timing parameters (err %d)", err);
|
zassert_equal(err, 0, "failed to set maximum timing parameters (err %d)", err);
|
||||||
|
}
|
||||||
|
|
||||||
if (IS_ENABLED(CONFIG_CAN_FD_MODE)) {
|
/**
|
||||||
err = can_set_timing_data(dev, can_get_timing_data_max(dev));
|
* @brief Test that the maximum timing values for the data phase can be set.
|
||||||
zassert_equal(err, 0, "failed to set maximum timing data parameters (err %d)", err);
|
*/
|
||||||
|
ZTEST_USER(can_timing, test_set_timing_data_max)
|
||||||
|
{
|
||||||
|
const struct device *const dev = DEVICE_DT_GET(DT_CHOSEN(zephyr_canbus));
|
||||||
|
can_mode_t cap;
|
||||||
|
int err;
|
||||||
|
|
||||||
|
err = can_get_capabilities(dev, &cap);
|
||||||
|
zassert_equal(err, 0, "failed to get CAN controller capabilities (err %d)", err);
|
||||||
|
|
||||||
|
if ((cap & CAN_MODE_FD) == 0) {
|
||||||
|
ztest_test_skip();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
err = can_set_timing_data(dev, can_get_timing_data_max(dev));
|
||||||
|
zassert_equal(err, 0, "failed to set maximum timing data parameters (err %d)", err);
|
||||||
}
|
}
|
||||||
|
|
||||||
void *can_timing_setup(void)
|
void *can_timing_setup(void)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue