diff --git a/include/data_fifo.h b/include/data_fifo.h index e6a323e1d4b2..b36eb5edcc0f 100644 --- a/include/data_fifo.h +++ b/include/data_fifo.h @@ -151,7 +151,7 @@ int data_fifo_num_used_get(struct data_fifo *data_fifo, uint32_t *alloced_num, int data_fifo_empty(struct data_fifo *data_fifo); /** - * @brief Deinitialise the data_fifo. + * @brief Uninitialise the data_fifo. * * @note The fifo is emptied first, so it is the users responsibility to release any data items it * has queued. The internal slab and message buffer are not released. @@ -160,7 +160,7 @@ int data_fifo_empty(struct data_fifo *data_fifo); * * @retval 0 if success, error otherwise. */ -int data_fifo_deinit(struct data_fifo *data_fifo); +int data_fifo_uninit(struct data_fifo *data_fifo); /** * @brief Initialise the data_fifo. diff --git a/lib/data_fifo/data_fifo.c b/lib/data_fifo/data_fifo.c index 1c1b7dc3299c..4a865b15bbed 100644 --- a/lib/data_fifo/data_fifo.c +++ b/lib/data_fifo/data_fifo.c @@ -167,7 +167,7 @@ int data_fifo_empty(struct data_fifo *data_fifo) return 0; } -int data_fifo_deinit(struct data_fifo *data_fifo) +int data_fifo_uninit(struct data_fifo *data_fifo) { __ASSERT_NO_MSG(data_fifo != NULL); __ASSERT_NO_MSG(data_fifo->initialized); diff --git a/tests/lib/data_fifo/src/main.c b/tests/lib/data_fifo/src/main.c index 9bb6d20bc870..f3d36a49d676 100644 --- a/tests/lib/data_fifo/src/main.c +++ b/tests/lib/data_fifo/src/main.c @@ -31,19 +31,46 @@ static void internal_test_remaining_elements(struct data_fifo *data_fifo, uint32 num_locked, line); } -ZTEST(suite_data_fifo, test_data_fifo_deinit_ok) +ZTEST(suite_data_fifo, test_data_fifo_uninit_ok) { - DATA_FIFO_DEFINE(data_fifo, 8, 128); +#define BLOCKS_NUM 10 + DATA_FIFO_DEFINE(data_fifo, 10, 128); int ret; ret = data_fifo_init(&data_fifo); zassert_equal(ret, 0, "init did not return 0"); - zassert_equal(data_fifo->initialized, true, "init did not set initialise flag"); + zassert_equal(data_fifo.initialized, true, "init did not set initialise flag"); + + uint8_t *data_ptr; + size_t data_size = 5; + + for (uint32_t i = 0; i < BLOCKS_NUM; i++) { + ret = data_fifo_pointer_first_vacant_get(&data_fifo, (void **)&data_ptr, K_NO_WAIT); + zassert_equal(ret, 0, "first_vacant_get did not return 0"); + data_ptr[0] = 0xa1; + data_ptr[1] = 0xa2; + data_ptr[2] = 0xa3; + data_ptr[3] = 0xa4; + data_ptr[4] = 0xa5; + + internal_test_remaining_elements(&data_fifo, i + 1, i, __LINE__); + + ret = data_fifo_block_lock(&data_fifo, (void **)&data_ptr, data_size); + zassert_equal(ret, 0, "block_lock did not return 0"); + + internal_test_remaining_elements(&data_fifo, i + 1, i + 1, __LINE__); + } - ret = data_fifo_deinit(&data_fifo); + ret = data_fifo_uninit(&data_fifo); zassert_equal(ret, 0, "deinit did not return 0"); - zassert_equal(data_fifo->initialized, false, "deinit did not reset initialise flag"); + zassert_equal(data_fifo.initialized, false, "deinit did not reset initialise flag"); + + ret = data_fifo_init(&data_fifo); + zassert_equal(ret, 0, "init did not return 0"); + zassert_equal(data_fifo.initialized, true, "init did not set initialise flag"); + + internal_test_remaining_elements(&data_fifo, 0, 0, __LINE__); } ZTEST(suite_data_fifo, test_data_fifo_init_ok)