/** * @testcase itc_systemio_iotbus_uart_set_baudrate_p * @brief sets uart baud rate * @scenario sets uart baud rate * @apicovered iotbus_uart_set_baudrate * @precondition initializes uart_context * @postcondition closes uart_context */ void itc_systemio_iotbus_uart_set_baudrate_p(void) { int i_baudrate = 115200; int ret = IOTBUS_ERROR_NONE; iotbus_uart_context_h h_uart = iotbus_uart_init(DEVPATH); TC_ASSERT_NEQ("iotbus_uart_init", h_uart, NULL); ret = iotbus_uart_set_baudrate(h_uart, i_baudrate); TC_ASSERT_EQ_CLEANUP("iotbus_uart_set_baudrate", ret, IOTBUS_ERROR_NONE, iotbus_uart_stop(h_uart)); ret = iotbus_uart_stop(h_uart); TC_ASSERT_EQ("iotbus_uart_stop", ret, IOTBUS_ERROR_NONE); TC_SUCCESS_RESULT();; }
/** * @testcase itc_systemio_iotbus_uart_set_baudrate_n * @brief sets uart baud rate * @scenario sets uart baud rate * @apicovered iotbus_uart_set_baudrate * @precondition initializes uart_context * @postcondition closes uart_context */ static void itc_systemio_iotbus_uart_set_baudrate_n(void) { int i_baudrate = -115200; // invalid baudrate int ret = IOTBUS_ERROR_NONE; iotbus_uart_context_h h_uart = iotbus_uart_init(DEVPATH); TC_ASSERT_NEQ("iotbus_uart_init", h_uart, NULL); ret = iotbus_uart_set_baudrate(h_uart, i_baudrate); TC_ASSERT_EQ_CLEANUP("iotbus_uart_set_baudrate", ret, IOTBUS_ERROR_INVALID_PARAMETER, iotbus_uart_stop(h_uart)); ret = iotbus_uart_stop(h_uart); TC_ASSERT_EQ("iotbus_uart_stop", ret, IOTBUS_ERROR_NONE); TC_SUCCESS_RESULT(); }
/****************************** UART TEST ******************************/ int systemio_test_uart(char *failstr) { int result = SYSIO_RESULT_FAIL; int fail_flag = 0; iotbus_uart_context_h uart; int ret = -1; char *dev_path = "/dev/ttyS1"; uart = iotbus_uart_init(dev_path); if (!uart) { SYSIO_DEBUG("[IOTAPI] iotbus_uart_init() fail \n"); REGISTER_FAIL_REASON("iotbus_uart_init() fail", &fail_flag); goto errout_without_handle; } else { SYSIO_DEBUG("[IOTAPI] iotbus_uart_init() success \n"); } unsigned int baudrate = 115200; ret = iotbus_uart_set_baudrate(uart, baudrate); if (ret < 0) { SYSIO_DEBUG("[IOTAPI] iotbus_uart_set_baudrate(baudrate=%d) fail \n", baudrate); REGISTER_FAIL_REASON("iotbus_uart_set_baudrate() fail", &fail_flag); goto errout_with_handle; } else { SYSIO_DEBUG("[IOTAPI] iotbus_uart_set_baudrate(baudrate=%d) success \n", baudrate); } ret = iotbus_uart_set_mode(uart, 8, IOTBUS_UART_PARITY_NONE, 1); if (ret < 0) { SYSIO_DEBUG("[IOTAPI] iotbus_uart_set_mode(mode=8N1) fail \n"); REGISTER_FAIL_REASON("iotbus_uart_set_mode() fail", &fail_flag); goto errout_with_handle; } else { SYSIO_DEBUG("[IOTAPI] iotbus_uart_set_mode(mode=8N1) success \n"); } ret = iotbus_uart_set_flowcontrol(uart, 1, 1); if (ret < 0) { SYSIO_DEBUG("[IOTAPI] iotbus_uart_set_flowcontrol(1,1) fail \n"); REGISTER_FAIL_REASON("iotbus_uart_set_flowcontrol() fail", &fail_flag); goto errout_with_handle; } else { SYSIO_DEBUG("[IOTAPI] iotbus_uart_set_flowcontrol(1,1) success \n"); } #if 0 char rbuf[20]; ret = iotbus_uart_read(uart, rbuf, sizeof(rbuf)); if (ret < 0) { SYSIO_DEBUG("[IOTAPI] iotbus_uart_read() fail \n"); REGISTER_FAIL_REASON("iotbus_uart_read() fail", &fail_flag); //goto errout_with_handle; } else { SYSIO_DEBUG("[IOTAPI] iotbus_uart_read() success \n"); } #endif char tbuf[32] = "Go Bears!UART WRITE TEST OK!\n"; ret = iotbus_uart_write(uart, tbuf, sizeof(tbuf)); if (ret < 0) { SYSIO_DEBUG("[IOTAPI] iotbus_uart_write() fail \n"); // REGISTER_FAIL_REASON("iotbus_uart_write() fail", &fail_flag); //goto errout_with_handle; } else { SYSIO_DEBUG("[IOTAPI] iotbus_uart_write() success \n"); } ret = iotbus_uart_flush(uart); if (ret < 0) { SYSIO_DEBUG("[IOTAPI] iotbus_uart_flush() fail \n"); // REGISTER_FAIL_REASON("iotbus_uart_flush() fail", &fail_flag); //goto errout_with_handle; } else { SYSIO_DEBUG("[IOTAPI] iotbus_uart_flush() success \n"); } errout_with_handle: ret = iotbus_uart_stop(uart); if (ret < 0) { SYSIO_DEBUG("[IOTAPI] iotbus_uart_stop() fail \n"); REGISTER_FAIL_REASON("iotbus_uart_stop() fail", &fail_flag); } else { SYSIO_DEBUG("[IOTAPI] iotbus_uart_stop() success \n"); } errout_without_handle: /* check if succeed */ if (fail_flag == 0) { result = SYSIO_RESULT_SUCCESS; } return result; }