1 /*
2 * Copyright (c) 2016 Intel Corporation
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7 /**
8 * @addtogroup t_driver_uart
9 * @{
10 * @defgroup t_uart_basic test_uart_basic_operations
11 * @}
12 */
13
14 #include "test_uart.h"
15
16 #ifdef CONFIG_SHELL
17 TC_CMD_DEFINE(test_uart_configure)
18 TC_CMD_DEFINE(test_uart_config_get)
19 TC_CMD_DEFINE(test_uart_poll_out)
20 TC_CMD_DEFINE(test_uart_poll_in)
21 #if CONFIG_UART_INTERRUPT_DRIVEN
22 TC_CMD_DEFINE(test_uart_fifo_read)
23 TC_CMD_DEFINE(test_uart_fifo_fill)
24 TC_CMD_DEFINE(test_uart_pending)
25 #endif
26
27 SHELL_CMD_REGISTER(test_uart_configure, NULL, NULL,
28 TC_CMD_ITEM(test_uart_configure));
29 SHELL_CMD_REGISTER(test_uart_config_get, NULL, NULL,
30 TC_CMD_ITEM(test_uart_config_get));
31 SHELL_CMD_REGISTER(test_uart_poll_in, NULL, NULL,
32 TC_CMD_ITEM(test_uart_poll_in));
33 SHELL_CMD_REGISTER(test_uart_poll_out, NULL, NULL,
34 TC_CMD_ITEM(test_uart_poll_out));
35 #if CONFIG_UART_INTERRUPT_DRIVEN
36 SHELL_CMD_REGISTER(test_uart_fifo_read, NULL, NULL,
37 TC_CMD_ITEM(test_uart_fifo_read));
38 SHELL_CMD_REGISTER(test_uart_fifo_fill, NULL, NULL,
39 TC_CMD_ITEM(test_uart_fifo_fill));
40 SHELL_CMD_REGISTER(test_uart_pending, NULL, NULL,
41 TC_CMD_ITEM(test_uart_pending));
42 #endif
43
44
45 #endif
46
uart_basic_setup(void)47 void *uart_basic_setup(void)
48 {
49 #if DT_NODE_HAS_COMPAT(DT_CHOSEN(zephyr_console), zephyr_cdc_acm_uart)
50 const struct device *dev;
51 uint32_t dtr = 0;
52
53 dev = DEVICE_DT_GET(DT_CHOSEN(zephyr_console));
54 if (!device_is_ready(dev)) {
55 return NULL;
56 }
57
58 while (!dtr) {
59 uart_line_ctrl_get(dev, UART_LINE_CTRL_DTR, &dtr);
60 k_sleep(K_MSEC(100));
61 }
62 #endif
63 return NULL;
64 }
65
66 #ifndef CONFIG_SHELL
67 ZTEST_SUITE(uart_basic_api, NULL, uart_basic_setup, NULL, NULL, NULL);
68
69 /* The UART pending test should be test finally. */
70 ZTEST_SUITE(uart_basic_api_pending, NULL, uart_basic_setup, NULL, NULL, NULL);
71 #endif
72