mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
65 lines
1.7 KiB
C
65 lines
1.7 KiB
C
/*
|
|
* 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));
|
|
}
|