Skip to content

Commit 508c9df

Browse files
nordic-baminordic-piks
authored andcommitted
tests: drivers: lpuart: Verify RX BUF release after UART disable
RX BUF should be released after UART disable call. Signed-off-by: Bartosz Miller <[email protected]>
1 parent 42e3cdd commit 508c9df

File tree

1 file changed

+9
-0
lines changed
  • tests/drivers/lpuart/src

1 file changed

+9
-0
lines changed

tests/drivers/lpuart/src/main.c

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ static int test_time;
3131
*/
3232
#define TX_TIMEOUT_US 10000
3333

34+
static K_SEM_DEFINE(uart_rx_buf_possession_sem, 1, 1);
35+
3436
static void kill_timer_handler(struct k_timer *timer)
3537
{
3638
ARG_UNUSED(timer);
@@ -184,11 +186,13 @@ static void uart_callback(const struct device *dev, struct uart_event *evt, void
184186
break;
185187

186188
case UART_RX_BUF_REQUEST:
189+
zassert_equal(k_sem_take(&uart_rx_buf_possession_sem, K_NO_WAIT), 0);
187190
on_rx_buf_req(dev);
188191
break;
189192

190193
case UART_RX_BUF_RELEASED:
191194
buf_released = true;
195+
k_sem_give(&uart_rx_buf_possession_sem);
192196
break;
193197

194198
case UART_RX_DISABLED:
@@ -246,6 +250,11 @@ ZTEST(test_lpuart_stress, test_stress)
246250

247251
err = uart_rx_disable(lpuart);
248252
zassert_equal(err, 0, NULL);
253+
TC_PRINT("UART RX disabled\n");
254+
255+
TC_PRINT("Waiting for UART RX buffer release\n");
256+
zassert_equal(k_sem_take(&uart_rx_buf_possession_sem, K_MSEC(100)), 0);
257+
TC_PRINT("UART RX BUFFER released\n");
249258

250259
if (IS_ENABLED(CONFIG_TEST_BUSY_SIM)) {
251260
busy_sim_stop();

0 commit comments

Comments
 (0)