Преглед изворни кода

Merge branch 'bugfix/console_init_caps' into 'master'

fix(console): fixed esp_console_init not working if heap_alloc_caps was 0

See merge request espressif/esp-idf!25294
Marius Vikhammer пре 2 година
родитељ
комит
9bb6a04e87

+ 2 - 2
components/console/commands.c

@@ -62,8 +62,8 @@ esp_err_t esp_console_init(const esp_console_config_t *config)
     if (s_config.hint_color == 0) {
         s_config.hint_color = ANSI_COLOR_DEFAULT;
     }
-    if (config->heap_alloc_caps != 0) {
-        s_config.heap_alloc_caps = config->heap_alloc_caps;
+    if (s_config.heap_alloc_caps == 0) {
+        s_config.heap_alloc_caps = MALLOC_CAP_DEFAULT;
     }
     s_tmp_line_buf = heap_caps_calloc(1, config->max_cmdline_length, s_config.heap_alloc_caps);
     if (s_tmp_line_buf == NULL) {

+ 21 - 0
components/console/test_apps/console/main/test_console.c

@@ -67,3 +67,24 @@ TEST_CASE("esp console repl test", "[console][ignore]")
     TEST_ESP_OK(esp_console_start_repl(s_repl));
     vTaskDelay(pdMS_TO_TICKS(2000));
 }
+
+TEST_CASE("esp console init/deinit test, minimal config", "[console]")
+{
+    /* Test with minimal init config */
+    esp_console_config_t console_config = {
+        .max_cmdline_length = 100,
+    };
+
+    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());
+}