From 7152b1324a4970be39ca55dc626b4de091807ff9 Mon Sep 17 00:00:00 2001 From: Hake Huang Date: Wed, 2 Oct 2024 12:28:53 +0000 Subject: [PATCH] tests: uart_async_api: update test for dma usage 1. ensure the two dma buffers all aligned with 32 bits 2. clean the rx_data_idx at test begin Signed-off-by: Hake Huang --- .../uart/uart_async_api/src/test_uart_async.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/tests/drivers/uart/uart_async_api/src/test_uart_async.c b/tests/drivers/uart/uart_async_api/src/test_uart_async.c index 15b4b6fba41a9a6..fb4265a39997863 100644 --- a/tests/drivers/uart/uart_async_api/src/test_uart_async.c +++ b/tests/drivers/uart/uart_async_api/src/test_uart_async.c @@ -324,10 +324,12 @@ ZTEST_USER(uart_async_multi_rx, test_multiple_rx_enable) } #if NOCACHE_MEM -static __aligned(32) uint8_t chained_read_buf[2][8] __used __NOCACHE; +static __aligned(32) uint8_t chained_read_buf_0[8] __used __NOCACHE; +static __aligned(32) uint8_t chained_read_buf_1[8] __used __NOCACHE; static __aligned(32) uint8_t chained_cpy_buf[10] __used __NOCACHE; #else -ZTEST_BMEM uint8_t chained_read_buf[2][8]; +ZTEST_BMEM uint8_t chained_read_buf_0[8]; +ZTEST_BMEM uint8_t chained_read_buf_1[8]; ZTEST_BMEM uint8_t chained_cpy_buf[10]; #endif /* NOCACHE_MEM */ ZTEST_BMEM volatile uint8_t rx_data_idx; @@ -335,6 +337,8 @@ ZTEST_BMEM uint8_t rx_buf_idx; ZTEST_BMEM uint8_t *read_ptr; +static uint8_t *chained_read_buf[2] = {chained_read_buf_0, chained_read_buf_1}; + static void test_chained_read_callback(const struct device *dev, struct uart_event *evt, void *user_data) { @@ -352,9 +356,8 @@ static void test_chained_read_callback(const struct device *dev, rx_data_idx += evt->data.rx.len; break; case UART_RX_BUF_REQUEST: - err = uart_rx_buf_rsp(dev, - chained_read_buf[rx_buf_idx], - sizeof(chained_read_buf[0])); + err = uart_rx_buf_rsp(dev, chained_read_buf[rx_buf_idx], + sizeof(chained_read_buf_0)); zassert_equal(err, 0); rx_buf_idx = !rx_buf_idx ? 1 : 0; break; @@ -389,9 +392,10 @@ ZTEST_USER(uart_async_chain_read, test_chained_read) err = uart_rx_enable(uart_dev, chained_read_buf[rx_buf_idx++], - sizeof(chained_read_buf[0]), + sizeof(chained_read_buf_0), rx_timeout_ms * USEC_PER_MSEC); zassert_equal(err, 0); + rx_data_idx = 0; for (int i = 0; i < iter; i++) { zassert_not_equal(k_sem_take(&rx_disabled, K_MSEC(10)), @@ -406,7 +410,7 @@ ZTEST_USER(uart_async_chain_read, test_chained_read) "Unexpected amount of data received %d exp:%d", rx_data_idx, sizeof(tx_buf)); zassert_equal(memcmp(tx_buf, chained_cpy_buf, sizeof(tx_buf)), 0, - "Buffers not equal"); + "Buffers not equal exp %s, real %s", tx_buf, chained_cpy_buf); rx_data_idx = 0; } uart_rx_disable(uart_dev);