/* * SPDX-FileCopyrightText: 2021 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ #include <stdio.h> #include <string.h> #include "sdkconfig.h" #include "unity.h" #include "test_utils.h" #include "esp_console.h" #include "argtable3/argtable3.h" #include "freertos/FreeRTOS.h" #include "freertos/task.h" static int do_hello_cmd(int argc, char **argv) { printf("Hello World\n"); return 0; } TEST_CASE("esp console init/deinit test", "[console]") { esp_console_config_t console_config = ESP_CONSOLE_CONFIG_DEFAULT(); TEST_ESP_OK(esp_console_init(&console_config)); const esp_console_cmd_t cmd = { .command = "hello", .help = "Print Hello World", .hint = NULL, .func = do_hello_cmd, }; TEST_ESP_OK(esp_console_cmd_register(&cmd)); // re-register the same command, just for test TEST_ESP_OK(esp_console_cmd_register(&cmd)); TEST_ESP_OK(esp_console_deinit()); } static esp_console_repl_t *s_repl = NULL; /* handle 'quit' command */ static int do_cmd_quit(int argc, char **argv) { printf("ByeBye\r\n"); s_repl->del(s_repl); return 0; } // Enter "quit" to exit REPL environment TEST_CASE("esp console repl test", "[console][ignore]") { esp_console_repl_config_t repl_config = ESP_CONSOLE_REPL_CONFIG_DEFAULT(); esp_console_dev_uart_config_t uart_config = ESP_CONSOLE_DEV_UART_CONFIG_DEFAULT(); TEST_ESP_OK(esp_console_new_repl_uart(&uart_config, &repl_config, &s_repl)); esp_console_cmd_t cmd = { .command = "quit", .help = "Quit REPL environment", .func = &do_cmd_quit }; TEST_ESP_OK(esp_console_cmd_register(&cmd)); TEST_ESP_OK(esp_console_start_repl(s_repl)); vTaskDelay(pdMS_TO_TICKS(2000)); }