| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189 | 
							- /* test_mean.c: Implementation of a testable component.
 
-    This example code is in the Public Domain (or CC0 licensed, at your option.)
 
-    Unless required by applicable law or agreed to in writing, this
 
-    software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
 
-    CONDITIONS OF ANY KIND, either express or implied.
 
- */
 
- #include <limits.h>
 
- #include "unity.h"
 
- #include "platform_console.h"
 
- #include "platform_esp32.h"
 
- #include "platform_config.h"
 
- #include "string.h"
 
- struct arg_lit *arglit;
 
- struct arg_int *argint;
 
- struct arg_str *argstr;
 
- struct arg_end *end;
 
- extern int is_output_gpio(struct arg_int * gpio, FILE * f, int * gpio_out, bool mandatory);
 
- extern void initialize_console();
 
- extern esp_err_t run_command(char * line);
 
- static char *buf = NULL;
 
- static char * s_tmp_line_buf=NULL;
 
- static size_t buf_size = 0;
 
- static FILE * f;
 
- static size_t argc=1;
 
- static char ** argv=NULL;
 
- static bool config_initialized=false;
 
- void init_console(){
 
-     if(config_initialized) return;
 
-     initialize_console();
 
-     config_initialized=true;
 
- }
 
- /****************************************************************************************
 
-  * 
 
-  */
 
- void open_mem_stream_file(){
 
- 	f = open_memstream(&buf, &buf_size);
 
- }
 
- /****************************************************************************************
 
-  * 
 
-  */
 
- void close_flush_all(void * argtable, int count,bool print){
 
-     fflush (f);
 
-     if(print){
 
-         printf("%s", buf);
 
-     }
 
-     fclose(f);
 
-     free(buf);
 
-     arg_freetable(argtable,count);
 
-     free(argv);   
 
- }
 
- /****************************************************************************************
 
-  * 
 
-  */
 
- int alloc_split_command_line(char * cmdline){
 
-     argv = (char **) calloc(22, sizeof(char *));
 
-     if(!s_tmp_line_buf){
 
-         s_tmp_line_buf= calloc(strlen(cmdline), 1);
 
-     }
 
-     strlcpy(s_tmp_line_buf, cmdline, 22);
 
-     argc = esp_console_split_argv(s_tmp_line_buf, argv,22);
 
-     return 0;
 
- }
 
- /****************************************************************************************
 
-  * 
 
-  */
 
- int alloc_split_parse_command_line(char * cmdline, void ** args){
 
-     alloc_split_command_line(cmdline);
 
-     return arg_parse(argc, argv,args);
 
- }
 
- /****************************************************************************************
 
-  * 
 
-  */
 
- TEST_CASE("Invalid GPIO detected", "[config][ui]")
 
- {
 
-     char * cmdline =  "test -i 55\n";
 
-     void *argtable[] = {
 
-         argint = arg_int1("i","int","<gpio>","GPIO number"),
 
-         end  = arg_end(6)
 
-     };
 
-     open_mem_stream_file();
 
-     alloc_split_parse_command_line(cmdline, &argtable);
 
-     int out_val = 0;
 
-     TEST_ASSERT_EQUAL_INT_MESSAGE(1,is_output_gpio(argtable[0], f, &out_val, true),"Invalid GPIO not detected");
 
-     TEST_ASSERT_EQUAL_INT_MESSAGE(-1,out_val,"GPIO Should be set to -1");
 
-     fflush (f);
 
-     TEST_ASSERT_EQUAL_STRING_MESSAGE("Invalid int gpio: [55] is not a GPIO\n",buf,"Invalid GPIO message wrong");
 
-     close_flush_all(argtable,sizeof(argtable)/sizeof(argtable[0]),false);
 
- }
 
- /****************************************************************************************
 
-  * 
 
-  */
 
- TEST_CASE("Input Only GPIO detected", "[config][ui]")
 
- {
 
-     char * cmdline =  "test -i 35\n";
 
-     void *argtable[] = {
 
-         argint = arg_int1("i","int","<gpio>","GPIO number"),
 
-         end  = arg_end(6)
 
-     };
 
-     open_mem_stream_file();
 
-     alloc_split_parse_command_line(cmdline, &argtable);
 
-     int out_val = 0;
 
-     TEST_ASSERT_EQUAL_INT_MESSAGE(1,is_output_gpio(argtable[0], f, &out_val, true),"Input only GPIO not detected");
 
-     TEST_ASSERT_EQUAL_INT_MESSAGE(-1,out_val,"GPIO Should be set to -1");
 
-     fflush (f);
 
-     TEST_ASSERT_EQUAL_STRING_MESSAGE("Invalid int gpio: [35] has input capabilities only\n",buf,"Missing GPIO message wrong");
 
-     close_flush_all(argtable,sizeof(argtable)/sizeof(argtable[0]),false);
 
- }
 
- /****************************************************************************************
 
-  * 
 
-  */
 
- TEST_CASE("Valid GPIO Processed", "[config][ui]")
 
- {
 
-     char * cmdline =  "test -i 33\n";
 
-     void *argtable[] = {
 
-         argint = arg_int1("i","int","<gpio>","GPIO number"),
 
-         end  = arg_end(6)
 
-     };
 
-     open_mem_stream_file();
 
-     alloc_split_parse_command_line(cmdline, &argtable);
 
-     int out_val = 0;
 
-     TEST_ASSERT_EQUAL_INT_MESSAGE(0,is_output_gpio(argtable[0], f, &out_val, true),"Valid GPIO not recognized");
 
-     TEST_ASSERT_EQUAL_INT_MESSAGE(33,out_val,"GPIO Should be set to 33");
 
-     fflush (f);
 
-     TEST_ASSERT_EQUAL_STRING_MESSAGE("",buf,"Valid GPIO shouldn't produce a message");
 
-     close_flush_all(argtable,sizeof(argtable)/sizeof(argtable[0]),false);
 
- }
 
- /****************************************************************************************
 
-  * 
 
-  */
 
- TEST_CASE("Missing mandatory GPIO detected", "[config][ui]")
 
- {
 
-     char * cmdline =  "test \n";
 
-     void *argtable[] = {
 
-         argint = arg_int1("i","int","<gpio>","GPIO number"),
 
-         end  = arg_end(6)
 
-     };
 
-     open_mem_stream_file();
 
-     alloc_split_parse_command_line(cmdline, &argtable);
 
-     int out_val = 0;
 
-     TEST_ASSERT_EQUAL_INT_MESSAGE(1,is_output_gpio(argtable[0], f, &out_val, true),"Missing GPIO not detected");
 
-     fflush (f);
 
-     TEST_ASSERT_EQUAL_STRING_MESSAGE("Missing: int\n",buf,"Missing GPIO parameter message wrong");
 
-     TEST_ASSERT_EQUAL_INT_MESSAGE(-1,out_val,"GPIO Should be set to -1");
 
-     close_flush_all(argtable,sizeof(argtable)/sizeof(argtable[0]),false);
 
- }
 
- /****************************************************************************************
 
-  * 
 
-  */
 
- TEST_CASE("Missing mandatory parameter detected", "[config][ui]")
 
- {
 
-     char * cmdline =  "test \n";
 
-     void *argtable[] = {
 
-         argint = arg_int1("i","int","<gpio>","GPIO number"),
 
-         end  = arg_end(6)
 
-     };
 
-     open_mem_stream_file();
 
-     alloc_split_parse_command_line(cmdline, &argtable);
 
-     int out_val = 0;
 
-     TEST_ASSERT_EQUAL_INT_MESSAGE(1,is_output_gpio(argtable[0], f, &out_val, true),"Missing parameter not detected");
 
-     fflush (f);
 
-     TEST_ASSERT_EQUAL_STRING_MESSAGE("Missing: int\n",buf,"Missing parameter message wrong");
 
-     TEST_ASSERT_EQUAL_INT_MESSAGE(-1,out_val,"GPIO Should be set to -1");
 
-     close_flush_all(argtable,sizeof(argtable)/sizeof(argtable[0]),false);
 
- }
 
- /****************************************************************************************
 
-  * 
 
-  */
 
- TEST_CASE("dac config command", "[config_cmd]")
 
- {
 
-     config_set_value(NVS_TYPE_STR, "dac_config", "");
 
-     esp_err_t err=run_command("cfg-hw-dac\n");
 
-     char * nvs_value =  config_alloc_get_str("dac_config", NULL,NULL);
 
-     TEST_ASSERT_NOT_NULL(nvs_value);
 
-     TEST_ASSERT_EQUAL_MESSAGE(ESP_OK,err,"Running command failed");
 
-     free(nvs_value);
 
- }
 
 
  |