blob: 0e5216a115d45dfa1b717fc0eb73abbf7c326d30 [file] [log] [blame]
/*
* Copyright (c) 2020 Intel Corporation
*
* SPDX-License-Identifier: Apache-2.0
*/
/*
* @addtogroup t_uart_basic
* @{
* @defgroup t_uart_config test_uart_config
* @brief TestPurpose: verify UART configure API settings
* @details
* - Test Steps
* - Configure: test_uart_configure( )
* - Configure Get: test_uart_config_get( )
* - Expected Results
* -# When test UART CONFIG Configure, the value of configurations actually
* set will be equal to the original configuration values (from device
* tree or run-time configuration to modify those loaded initially from
* device tree)
* -# When test UART CONFIG Configure Get, the app will get/retrieve the
* value of configurations stored at location and to be passed to UART
* CONFIG Configure
* @}
*/
#include "test_uart.h"
struct uart_config uart_cfg_check;
const struct uart_config uart_cfg = {
.baudrate = 115200,
.parity = UART_CFG_PARITY_NONE,
.stop_bits = UART_CFG_STOP_BITS_1,
.data_bits = UART_CFG_DATA_BITS_8,
.flow_ctrl = UART_CFG_FLOW_CTRL_NONE
};
static int test_configure(void)
{
const struct device *const uart_dev = DEVICE_DT_GET(DT_CHOSEN(zephyr_console));
if (!device_is_ready(uart_dev)) {
TC_PRINT("UART device not ready\n");
return TC_FAIL;
}
/* Verify configure() - set device configuration using data in cfg */
int ret = uart_configure(uart_dev, &uart_cfg);
if (ret == -ENOSYS) {
return TC_SKIP;
}
/* 0 if successful, - error code otherwise */
return (ret == 0) ? TC_PASS : TC_FAIL;
}
/* test UART configure get (retrieve configuration) */
static int test_config_get(void)
{
const struct device *const uart_dev = DEVICE_DT_GET(DT_CHOSEN(zephyr_console));
if (!device_is_ready(uart_dev)) {
TC_PRINT("UART device not ready\n");
return TC_FAIL;
}
TC_PRINT("This is a configure_get test.\n");
/* Verify configure() - set device configuration using data in cfg */
/* 0 if successful, - error code otherwise */
int ret = uart_configure(uart_dev, &uart_cfg);
if (ret == -ENOSYS) {
return TC_SKIP;
}
zassert_true(ret == 0, "set config error");
/* Verify config_get() - get device configuration, put in cfg */
/* 0 if successful, - error code otherwise */
/* so get the configurations from the device and check */
ret = uart_config_get(uart_dev, &uart_cfg_check);
zassert_true(ret == 0, "get config error");
/* Confirm the values from device are the values put in cfg*/
if (memcmp(&uart_cfg, &uart_cfg_check, sizeof(uart_cfg)) != 0) {
return TC_FAIL;
} else {
return TC_PASS;
}
}
#if CONFIG_SHELL
void test_uart_configure(void)
#else
ZTEST(uart_basic_api, test_uart_configure)
#endif
{
int ret = test_configure();
zassert_true((ret == TC_PASS) || (ret == TC_SKIP));
}
#if CONFIG_SHELL
void test_uart_config_get(void)
#else
ZTEST(uart_basic_api, test_uart_config_get)
#endif
{
int ret = test_config_get();
zassert_true((ret == TC_PASS) || (ret == TC_SKIP));
}