Add basic change for v1453
Change-Id: I9497a61bbc3717f66413794a4e7dee0347c0bc33
diff --git a/mbtk/libql_lib_v2_rilv2/ql_test_utils.c b/mbtk/libql_lib_v2_rilv2/ql_test_utils.c
new file mode 100755
index 0000000..b28f3cd
--- /dev/null
+++ b/mbtk/libql_lib_v2_rilv2/ql_test_utils.c
@@ -0,0 +1,330 @@
+/*-----------------------------------------------------------------------------------------------*/
+/**
+ @file test_utils.c
+ @brief Test related interface definition
+*/
+/*-----------------------------------------------------------------------------------------------*/
+
+/*-------------------------------------------------------------------------------------------------
+ Copyright (c) 2018 Quectel Wireless Solution, Co., Ltd. All Rights Reserved.
+ Quectel Wireless Solution Proprietary and Confidential.
+-------------------------------------------------------------------------------------------------*/
+
+/*-------------------------------------------------------------------------------------------------
+ EDIT HISTORY
+ This section contains comments describing changes made to the file.
+ Notice that changes are listed in reverse chronological order.
+ $Header: $
+ when who what, where, why
+ -------- --- ----------------------------------------------------------
+ 20190508 tyler.kuang Created .
+-------------------------------------------------------------------------------------------------*/
+
+#include <stdio.h>
+#include <stdint.h>
+#include <string.h>
+#include <stdlib.h>
+#include "ql_test_utils.h"
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+ @brief Read a int value from stdin
+ @param[out] val, Return read data
+ @return
+ 0 - successful
+ 1 - read an enter
+ -1 - invalid input
+ */
+/*-----------------------------------------------------------------------------------------------*/
+int t_get_int(int *val)
+{
+ int dat;
+ char *ptr_end = NULL;
+ char buf[256] = {0};
+
+ if(NULL == fgets(buf, sizeof(buf)-1, stdin))
+ {
+ return -1;
+ }
+
+ if(0 == buf[0])
+ {
+ return -1;
+ }
+
+ if(buf[0] == '\n')
+ {
+ return 1;
+ }
+
+ dat = strtol(buf, &ptr_end, 10);
+ if(ptr_end!=NULL && ptr_end[0]!='\n')
+ {
+ return -1;
+ }
+
+ if(val)
+ {
+ val[0] = dat;
+ }
+
+ return 0;
+}
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+ @brief Read a uint32 value from stdin
+ @param[out] val, Return read data
+ @return
+ 0 - successful
+ 1 - read an enter
+ -1 - invalid input
+ */
+/*-----------------------------------------------------------------------------------------------*/
+int t_get_hex(uint32_t *val)
+{
+ int dat;
+ char *ptr_end = NULL;
+ char buf[256] = {0};
+
+ if(fgets(buf, sizeof(buf)-1, stdin) == NULL)
+ {
+ return -1;
+ }
+
+ if(0 == buf[0])
+ {
+ return -1;
+ }
+
+ if(buf[0] == '\n')
+ {
+ return 1;
+ }
+
+ dat = strtol(buf, &ptr_end, 16);
+ if(ptr_end!=NULL && ptr_end[0]!='\n')
+ {
+ return -1;
+ }
+
+ if(val)
+ {
+ val[0] = dat;
+ }
+
+ return 0;
+}
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+ @brief Read a char value from stdin
+ @param[out] val, Return read data
+ @return
+ 0 - successful
+ 1 - read an enter
+ -1 - invalid input
+ */
+/*-----------------------------------------------------------------------------------------------*/
+int t_get_char(int *val)
+{
+ char buf[256] = {0};
+
+ if(fgets(buf, sizeof(buf)-1, stdin) == NULL)
+ {
+ return -1;
+ }
+
+ if(0 == buf[0])
+ {
+ return -1;
+ }
+
+ if(buf[0] == '\n')
+ {
+ return 1;
+ }
+
+ if(buf[1]!='\n')
+ {
+ return -1;
+ }
+
+ if(val)
+ {
+ val[0] = buf[0];
+ }
+
+ return 0;
+}
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+ @brief Read a string value from stdin
+ @param[out] val, Return read data
+ @return
+ 0 - successful
+ 1 - read an enter
+ -1 - invalid input
+ */
+/*-----------------------------------------------------------------------------------------------*/
+int t_get_string(char *str_buf, int str_len)
+{
+ char *ptr;
+ char buf[256] = {0};
+
+ if(fgets(buf, sizeof(buf)-1, stdin) == NULL)
+ {
+ return -1;
+ }
+
+ if(0 == buf[0])
+ {
+ return -1;
+ }
+
+ if(buf[0] == '\n')
+ {
+ return 1;
+ }
+
+ ptr = strchr(buf, '\n');
+ if(ptr)
+ {
+ ptr[0] = 0;
+ }
+
+ strncpy(str_buf, buf, str_len-1);
+
+ return 0;
+}
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+ @brief Read a list of int values from stdin
+ @param[out] val, Return read datas
+ @param[out&in] val, Input buffer length, output the number of read
+ @return
+ 0 - successful
+ 1 - read an enter
+ -1 - invalid input
+ */
+/*-----------------------------------------------------------------------------------------------*/
+int t_get_int_list(int *dat_buf, int *dat_len)
+{
+ int idx = 0;
+ int len;
+ int dat;
+ char *ptr, *ptr_save;
+ char *ptr_end;
+ char buf[256] = {0};
+
+ if(!dat_buf || !dat_len)
+ {
+ return -1;
+ }
+
+ len = dat_len[0];
+
+ if(fgets(buf, sizeof(buf)-1, stdin) == NULL)
+ {
+ return -1;
+ }
+
+ if(0 == buf[0])
+ {
+ return -1;
+ }
+
+ if(buf[0] == '\n')
+ {
+ return 1;
+ }
+
+ for(ptr=strtok_r(buf, ",.: \t\r\n", &ptr_save);
+ ptr!=NULL;
+ ptr=strtok_r(NULL, ",.: \t\r\n", &ptr_save))
+ {
+ dat = strtol(ptr, &ptr_end, 10);
+ if(ptr_end!=NULL && ptr_end[0]!=0)
+ {
+ return -1;
+ }
+ if(idx >= len)
+ {
+ return 0;
+ }
+
+ dat_buf[idx] = dat;
+ idx++;
+ }
+
+ dat_len[0] = idx;
+ return 0;
+}
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+ @brief Read a list of float values from stdin
+ @param[out] val, Return read datas
+ @param[out&in] val, Input buffer length, output the number of read
+ @return
+ 0 - successful
+ 1 - read an enter
+ -1 - invalid input
+ */
+/*-----------------------------------------------------------------------------------------------*/
+int t_get_float_list(float *dat_buf, int *dat_len)
+{
+ int idx = 0;
+ int len;
+ float dat;
+ char *ptr, *ptr_save;
+ char *ptr_end;
+ char buf[256] = {0};
+
+ if(!dat_buf || !dat_len)
+ {
+ return -1;
+ }
+
+ len = dat_len[0];
+
+ if(fgets(buf, sizeof(buf)-1, stdin) == NULL)
+ {
+ return -1;
+ }
+
+ if(0 == buf[0])
+ {
+ return -1;
+ }
+
+ if(buf[0] == '\n')
+ {
+ return 1;
+ }
+
+ for(ptr=strtok_r(buf, ",: \t\r\n", &ptr_save);
+ ptr!=NULL;
+ ptr=strtok_r(NULL, ",: \t\r\n", &ptr_save))
+ {
+ dat = strtof(ptr, &ptr_end);
+ if(ptr_end!=NULL && ptr_end[0]!=0)
+ {
+ return -1;
+ }
+ if(idx >= len)
+ {
+ return 0;
+ }
+
+ dat_buf[idx] = dat;
+ idx++;
+ }
+
+ dat_len[0] = idx;
+ return 0;
+}
+
+