From 673acc97b3aaf65d23582c4ec47fa53d98e6b51d Mon Sep 17 00:00:00 2001 From: Ladislas de Toldi Date: Wed, 26 May 2021 23:10:13 +0200 Subject: [PATCH 1/2] :wrench: (mbed): Add EXPERIMENTAL_API to target's features This is necessary to use the DigitalIn interface --- mbed_app.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/mbed_app.json b/mbed_app.json index 86f6e257fe..a105c5672e 100644 --- a/mbed_app.json +++ b/mbed_app.json @@ -18,7 +18,10 @@ "sd.SPI_MISO": "SD_SPI_MISO", "sd.SPI_MOSI": "SD_SPI_MOSI", "sd.SPI_CLK": "SD_SPI_SCK", - "target.printf_lib": "std" + "target.printf_lib": "std", + "target.features_add": [ + "EXPERIMENTAL_API" + ] }, "LEKA_DISCO": { "target_name": "\"LEKA_DISCO\"" From 395a1b953a8ad40263913ad0dd8873983707bb02 Mon Sep 17 00:00:00 2001 From: Ladislas de Toldi Date: Wed, 26 May 2021 18:05:43 +0200 Subject: [PATCH 2/2] :clown_face: (mbed): Mock mbed::interface::DigitalOut To work we need to also stub mbed::gpio_read and mbed::gpio_is_connected --- tests/unit/mbed-os/CMakeLists.txt | 1 + .../unit/mbed-os/include/mbed_target_config.h | 1 + tests/unit/mbed-os/mocks/mock_DigitalOut.h | 26 +++++++++++++++++++ tests/unit/mbed-os/stubs/stub_gpio_api.cpp | 10 +++++++ 4 files changed, 38 insertions(+) create mode 100644 tests/unit/mbed-os/mocks/mock_DigitalOut.h diff --git a/tests/unit/mbed-os/CMakeLists.txt b/tests/unit/mbed-os/CMakeLists.txt index f9fc94ca20..20680d418d 100644 --- a/tests/unit/mbed-os/CMakeLists.txt +++ b/tests/unit/mbed-os/CMakeLists.txt @@ -9,6 +9,7 @@ add_library(mbed-os INTERFACE) target_include_directories(mbed-os INTERFACE ${UNITTESTS_DIR}/mbed-os + ${UNITTESTS_DIR}/mbed-os/mocks ${UNITTESTS_DIR}/mbed-os/stubs ${UNITTESTS_DIR}/mbed-os/include diff --git a/tests/unit/mbed-os/include/mbed_target_config.h b/tests/unit/mbed-os/include/mbed_target_config.h index f6349282aa..1984e70f6d 100644 --- a/tests/unit/mbed-os/include/mbed_target_config.h +++ b/tests/unit/mbed-os/include/mbed_target_config.h @@ -62,3 +62,4 @@ #define __CORTEX_M7 1 #define __FPU_PRESENT 1 #define __MBED_CMSIS_RTOS_CM 1 +#define FEATURE_EXPERIMENTAL_API 1 diff --git a/tests/unit/mbed-os/mocks/mock_DigitalOut.h b/tests/unit/mbed-os/mocks/mock_DigitalOut.h new file mode 100644 index 0000000000..77e0642e44 --- /dev/null +++ b/tests/unit/mbed-os/mocks/mock_DigitalOut.h @@ -0,0 +1,26 @@ +// Leka - LekaOS +// Copyright 2021 APF France handicap +// SPDX-License-Identifier: Apache-2.0 + +#ifndef _LEKA_OS_MBED_MOCK_DIGITAL_OUT_H_ +#define _LEKA_OS_MBED_MOCK_DIGITAL_OUT_H_ + +#include "PinNames.h" + +#include "drivers/interfaces/InterfaceDigitalOut.h" + +#include "gmock/gmock.h" + +namespace mbed::mock { + +class DigitalOut : public mbed::interface::DigitalOut +{ + public: + MOCK_METHOD(void, write, (int value), (override)); + MOCK_METHOD(int, read, (), (override)); + MOCK_METHOD(int, is_connected, (), (override)); +}; + +} // namespace mbed::mock + +#endif // _LEKA_OS_MBED_MOCK_DIGITAL_OUT_H_ diff --git a/tests/unit/mbed-os/stubs/stub_gpio_api.cpp b/tests/unit/mbed-os/stubs/stub_gpio_api.cpp index 0eb6fa7bf3..ea4e74a1ba 100644 --- a/tests/unit/mbed-os/stubs/stub_gpio_api.cpp +++ b/tests/unit/mbed-os/stubs/stub_gpio_api.cpp @@ -13,3 +13,13 @@ void gpio_write(gpio_t *gpio, int value) { return; } + +auto gpio_read(gpio_t *obj) -> int +{ + return 0; +} + +auto gpio_is_connected(const gpio_t *obj) -> int +{ + return 1; +}