test: lib: devices: test DEVICE_INIT_* macros

Add tests for the new `DEVICE_INIT_*` macros.

Signed-off-by: Jordan Yates <jordan.yates@data61.csiro.au>
This commit is contained in:
Jordan Yates 2022-07-02 16:12:12 +10:00 committed by Carles Cufí
parent f02bafcf78
commit 245ed89590

View File

@ -51,27 +51,58 @@ DEVICE_DT_DEFINE(TEST_PARTITION, dev_init, NULL,
/* Device with both an existing and missing injected dependency */
DEVICE_DT_DEFINE(TEST_GPIO_INJECTED, dev_init, NULL,
NULL, NULL, POST_KERNEL, 70, NULL, DT_DEP_ORD(TEST_DEVB), 999);
/* Manually specified device */
DEVICE_DEFINE(manual_dev, "Manual Device", dev_init, NULL,
NULL, NULL, POST_KERNEL, 80, NULL);
#define DEV_HDL(node_id) device_handle_get(DEVICE_DT_GET(node_id))
#define DEV_HDL_NAME(name) device_handle_get(DEVICE_GET(name))
static void test_init_get(void)
{
/* Check device pointers */
zassert_equal(DEVICE_INIT_DT_GET(TEST_GPIO)->dev,
DEVICE_DT_GET(TEST_GPIO), NULL);
zassert_equal(DEVICE_INIT_DT_GET(TEST_I2C)->dev,
DEVICE_DT_GET(TEST_I2C), NULL);
zassert_equal(DEVICE_INIT_DT_GET(TEST_DEVA)->dev,
DEVICE_DT_GET(TEST_DEVA), NULL);
zassert_equal(DEVICE_INIT_DT_GET(TEST_DEVB)->dev,
DEVICE_DT_GET(TEST_DEVB), NULL);
zassert_equal(DEVICE_INIT_DT_GET(TEST_GPIOX)->dev,
DEVICE_DT_GET(TEST_GPIOX), NULL);
zassert_equal(DEVICE_INIT_DT_GET(TEST_DEVC)->dev,
DEVICE_DT_GET(TEST_DEVC), NULL);
zassert_equal(DEVICE_INIT_DT_GET(TEST_PARTITION)->dev,
DEVICE_DT_GET(TEST_PARTITION), NULL);
zassert_equal(DEVICE_INIT_DT_GET(TEST_GPIO_INJECTED)->dev,
DEVICE_DT_GET(TEST_GPIO_INJECTED), NULL);
zassert_equal(DEVICE_INIT_GET(manual_dev)->dev,
DEVICE_GET(manual_dev), NULL);
/* Check init functions */
zassert_equal(DEVICE_INIT_DT_GET(TEST_GPIO)->init, dev_init, NULL);
zassert_equal(DEVICE_INIT_DT_GET(TEST_I2C)->init, dev_init, NULL);
zassert_equal(DEVICE_INIT_DT_GET(TEST_DEVA)->init, dev_init, NULL);
zassert_equal(DEVICE_INIT_DT_GET(TEST_DEVB)->init, dev_init, NULL);
zassert_equal(DEVICE_INIT_DT_GET(TEST_GPIOX)->init, dev_init, NULL);
zassert_equal(DEVICE_INIT_DT_GET(TEST_DEVC)->init, dev_init, NULL);
zassert_equal(DEVICE_INIT_DT_GET(TEST_PARTITION)->init, dev_init, NULL);
zassert_equal(DEVICE_INIT_DT_GET(TEST_GPIO_INJECTED)->init, dev_init, NULL);
zassert_equal(DEVICE_INIT_GET(manual_dev)->init, dev_init, NULL);
}
static void test_init_order(void)
{
zassert_equal(init_order[0], DEV_HDL(TEST_GPIO),
NULL);
zassert_equal(init_order[1], DEV_HDL(TEST_I2C),
NULL);
zassert_equal(init_order[2], DEV_HDL(TEST_DEVA),
NULL);
zassert_equal(init_order[3], DEV_HDL(TEST_DEVB),
NULL);
zassert_equal(init_order[4], DEV_HDL(TEST_GPIOX),
NULL);
zassert_equal(init_order[5], DEV_HDL(TEST_DEVC),
NULL);
zassert_equal(init_order[6], DEV_HDL(TEST_PARTITION),
NULL);
zassert_equal(init_order[7], DEV_HDL(TEST_GPIO_INJECTED),
NULL);
zassert_equal(init_order[0], DEV_HDL(TEST_GPIO), NULL);
zassert_equal(init_order[1], DEV_HDL(TEST_I2C), NULL);
zassert_equal(init_order[2], DEV_HDL(TEST_DEVA), NULL);
zassert_equal(init_order[3], DEV_HDL(TEST_DEVB), NULL);
zassert_equal(init_order[4], DEV_HDL(TEST_GPIOX), NULL);
zassert_equal(init_order[5], DEV_HDL(TEST_DEVC), NULL);
zassert_equal(init_order[6], DEV_HDL(TEST_PARTITION), NULL);
zassert_equal(init_order[7], DEV_HDL(TEST_GPIO_INJECTED), NULL);
zassert_equal(init_order[8], DEV_HDL_NAME(manual_dev), NULL);
}
static bool check_handle(device_handle_t hdl,
@ -297,6 +328,7 @@ void test_main(void)
devlist_end = devlist + ndevs;
ztest_test_suite(devicetree_driver,
ztest_unit_test(test_init_get),
ztest_unit_test(test_init_order),
ztest_unit_test(test_requires),
ztest_unit_test(test_injected),