From f0e36475d588c0e9d09d7f5bc24ab43ce9be41e8 Mon Sep 17 00:00:00 2001 From: Divyanshi Singh Date: Wed, 9 Sep 2026 22:59:58 +0530 Subject: [PATCH] Fix CORE-V CLI host test mocks --- .../CORE-V-MCU/cli-test/tests/CMakeLists.txt | 2 + .../cli-test/tests/mock/cli_core_mock.c | 12 ++++++ OpenHW/CORE-V-MCU/cli-test/tests/mock/gpio.h | 14 +++++++ .../cli-test/tests/mock/hardware_mock.c | 40 +++++++++++++++++++ .../cli-test/tests/mock/uart_driver.h | 4 ++ .../cli-test/tests/test_cli_commands.c | 22 ++++++++-- 6 files changed, 90 insertions(+), 4 deletions(-) create mode 100644 OpenHW/CORE-V-MCU/cli-test/tests/mock/cli_core_mock.c create mode 100644 OpenHW/CORE-V-MCU/cli-test/tests/mock/gpio.h create mode 100644 OpenHW/CORE-V-MCU/cli-test/tests/mock/hardware_mock.c create mode 100644 OpenHW/CORE-V-MCU/cli-test/tests/mock/uart_driver.h diff --git a/OpenHW/CORE-V-MCU/cli-test/tests/CMakeLists.txt b/OpenHW/CORE-V-MCU/cli-test/tests/CMakeLists.txt index eacd7218..9dc5be4b 100644 --- a/OpenHW/CORE-V-MCU/cli-test/tests/CMakeLists.txt +++ b/OpenHW/CORE-V-MCU/cli-test/tests/CMakeLists.txt @@ -20,6 +20,8 @@ set(CMAKE_C_STANDARD_REQUIRED ON) add_executable(cli_tests test_cli_commands.c mock/cli_mock.c + mock/cli_core_mock.c + mock/hardware_mock.c ../app/app_commands.c ) diff --git a/OpenHW/CORE-V-MCU/cli-test/tests/mock/cli_core_mock.c b/OpenHW/CORE-V-MCU/cli-test/tests/mock/cli_core_mock.c new file mode 100644 index 00000000..75ec71dc --- /dev/null +++ b/OpenHW/CORE-V-MCU/cli-test/tests/mock/cli_core_mock.c @@ -0,0 +1,12 @@ +#include "cli.h" + +void CLI_uint32_required(const char *name, uint32_t *puthere) +{ + (void)name; + *puthere = 0U; +} + +void CLI_submenu_handler(const struct cli_cmd_entry *pEntry) +{ + (void)pEntry; +} diff --git a/OpenHW/CORE-V-MCU/cli-test/tests/mock/gpio.h b/OpenHW/CORE-V-MCU/cli-test/tests/mock/gpio.h new file mode 100644 index 00000000..0b649314 --- /dev/null +++ b/OpenHW/CORE-V-MCU/cli-test/tests/mock/gpio.h @@ -0,0 +1,14 @@ +#ifndef GPIO_H +#define GPIO_H + +#include + +void gpio_setpinmux(uint8_t io_pad, uint8_t mux); +uint8_t gpio_getpinmux(uint8_t io_pad); +void gpio_set(unsigned long mask); +void gpio_clear(unsigned long mask); +void gpio_toggle(unsigned long mask); +void gpio_pin_set_dir(uint8_t pin, uint8_t mode); +uint32_t gpio_pin_read_status(uint8_t pin); + +#endif diff --git a/OpenHW/CORE-V-MCU/cli-test/tests/mock/hardware_mock.c b/OpenHW/CORE-V-MCU/cli-test/tests/mock/hardware_mock.c new file mode 100644 index 00000000..333cb9c1 --- /dev/null +++ b/OpenHW/CORE-V-MCU/cli-test/tests/mock/hardware_mock.c @@ -0,0 +1,40 @@ +#include "gpio.h" + +void gpio_setpinmux(uint8_t io_pad, uint8_t mux) +{ + (void)io_pad; + (void)mux; +} + +uint8_t gpio_getpinmux(uint8_t io_pad) +{ + (void)io_pad; + return 0U; +} + +void gpio_set(unsigned long mask) +{ + (void)mask; +} + +void gpio_clear(unsigned long mask) +{ + (void)mask; +} + +void gpio_toggle(unsigned long mask) +{ + (void)mask; +} + +void gpio_pin_set_dir(uint8_t pin, uint8_t mode) +{ + (void)pin; + (void)mode; +} + +uint32_t gpio_pin_read_status(uint8_t pin) +{ + (void)pin; + return 0U; +} diff --git a/OpenHW/CORE-V-MCU/cli-test/tests/mock/uart_driver.h b/OpenHW/CORE-V-MCU/cli-test/tests/mock/uart_driver.h new file mode 100644 index 00000000..47d531d5 --- /dev/null +++ b/OpenHW/CORE-V-MCU/cli-test/tests/mock/uart_driver.h @@ -0,0 +1,4 @@ +#ifndef UART_DRIVER_H +#define UART_DRIVER_H + +#endif diff --git a/OpenHW/CORE-V-MCU/cli-test/tests/test_cli_commands.c b/OpenHW/CORE-V-MCU/cli-test/tests/test_cli_commands.c index 93eecc53..dd5fc337 100644 --- a/OpenHW/CORE-V-MCU/cli-test/tests/test_cli_commands.c +++ b/OpenHW/CORE-V-MCU/cli-test/tests/test_cli_commands.c @@ -21,16 +21,23 @@ static int test_version_output(void) { const struct cli_cmd_entry *menu; + const struct cli_cmd_entry *misc_menu; const char *output; cli_mock_reset(); menu = app_get_menu(); - if ((menu == NULL) || (menu[0].pHandler == NULL)) + if ((menu == NULL) || (menu[0].pHandler == NULL) || (menu[0].cookie == 0)) { return 1; } - menu[0].pHandler(&menu[0]); + misc_menu = (const struct cli_cmd_entry *)(uintptr_t)menu[0].cookie; + if ((misc_menu == NULL) || (misc_menu[0].pHandler == NULL)) + { + return 1; + } + + misc_menu[0].pHandler(&misc_menu[0]); output = cli_mock_get_output(); if (strstr(output, "CORE-V MCU ThreadX") == NULL) { @@ -44,15 +51,22 @@ static int test_version_output(void) static int test_version_no_crash(void) { const struct cli_cmd_entry *menu; + const struct cli_cmd_entry *misc_menu; cli_mock_reset(); menu = app_get_menu(); - if ((menu == NULL) || (menu[0].pHandler == NULL)) + if ((menu == NULL) || (menu[0].pHandler == NULL) || (menu[0].cookie == 0)) + { + return 1; + } + + misc_menu = (const struct cli_cmd_entry *)(uintptr_t)menu[0].cookie; + if ((misc_menu == NULL) || (misc_menu[0].pHandler == NULL)) { return 1; } - menu[0].pHandler(&menu[0]); + misc_menu[0].pHandler(&misc_menu[0]); return 0; }