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