From b68b0ea714e664f39801121f2786f447e2252e9c Mon Sep 17 00:00:00 2001 From: Marius Vikhammer Date: Wed, 15 Feb 2023 11:10:23 +0800 Subject: [PATCH] linux-target: fixed driver mock being broken due to changes in driver folder structure Closes https://github.com/espressif/esp-idf/issues/10749 --- tools/mocks/driver/CMakeLists.txt | 19 +++++++++++-------- tools/test_apps/.build-test-rules.yml | 4 ++++ .../driver_mock/CMakeLists.txt | 10 ++++++++++ .../linux_compatible/driver_mock/README.md | 2 ++ .../driver_mock/main/CMakeLists.txt | 3 +++ .../driver_mock/main/driver_mock_main.c | 17 +++++++++++++++++ 6 files changed, 47 insertions(+), 8 deletions(-) create mode 100644 tools/test_apps/linux_compatible/driver_mock/CMakeLists.txt create mode 100644 tools/test_apps/linux_compatible/driver_mock/README.md create mode 100644 tools/test_apps/linux_compatible/driver_mock/main/CMakeLists.txt create mode 100644 tools/test_apps/linux_compatible/driver_mock/main/driver_mock_main.c diff --git a/tools/mocks/driver/CMakeLists.txt b/tools/mocks/driver/CMakeLists.txt index 1d81a73d76..c818e71dee 100644 --- a/tools/mocks/driver/CMakeLists.txt +++ b/tools/mocks/driver/CMakeLists.txt @@ -7,17 +7,20 @@ message(STATUS "building DRIVER MOCKS (only SPI, I2C and GPIO driver)") idf_component_get_property(original_driver_dir driver COMPONENT_OVERRIDEN_DIR) set(include_dirs - "${original_driver_dir}/include" - "${original_driver_dir}/include/driver" - "${CMAKE_CURRENT_SOURCE_DIR}/../hal/include" - "${CMAKE_CURRENT_SOURCE_DIR}/../esp_hw_support/include") + "${original_driver_dir}/i2c/include/driver" + "${original_driver_dir}/spi/include/driver" + "${original_driver_dir}/gpio/include/driver" + "${original_driver_dir}/i2c/include" + "${original_driver_dir}/spi/include" + "${original_driver_dir}/gpio/include" + "${CMAKE_CURRENT_SOURCE_DIR}/../hal/include") idf_component_mock(INCLUDE_DIRS ${include_dirs} REQUIRES freertos MOCK_HEADER_FILES - ${original_driver_dir}/include/driver/spi_master.h - ${original_driver_dir}/include/driver/spi_common.h - ${original_driver_dir}/include/driver/i2c.h - ${original_driver_dir}/include/driver/gpio.h) + ${original_driver_dir}/spi/include/driver/spi_master.h + ${original_driver_dir}/spi/include/driver/spi_common.h + ${original_driver_dir}/i2c/include/driver/i2c.h + ${original_driver_dir}/gpio/include/driver/gpio.h) target_compile_definitions(${COMPONENT_LIB} PUBLIC SOC_I2C_NUM=2) diff --git a/tools/test_apps/.build-test-rules.yml b/tools/test_apps/.build-test-rules.yml index 9311fe162b..6a975689d0 100644 --- a/tools/test_apps/.build-test-rules.yml +++ b/tools/test_apps/.build-test-rules.yml @@ -11,6 +11,10 @@ tools/test_apps/build_system/ldgen_test: temporary: true reason: target esp32c2 is not supported yet +tools/test_apps/linux_compatible/driver_mock: + enable: + - if: IDF_TARGET == "linux" + tools/test_apps/linux_compatible/hello_world_linux_compatible: enable: - if: INCLUDE_DEFAULT == 1 or IDF_TARGET == "linux" diff --git a/tools/test_apps/linux_compatible/driver_mock/CMakeLists.txt b/tools/test_apps/linux_compatible/driver_mock/CMakeLists.txt new file mode 100644 index 0000000000..9c08f37759 --- /dev/null +++ b/tools/test_apps/linux_compatible/driver_mock/CMakeLists.txt @@ -0,0 +1,10 @@ +# The following lines of boilerplate have to be in your project's +# CMakeLists in this exact order for cmake to work correctly +cmake_minimum_required(VERSION 3.16) + +include($ENV{IDF_PATH}/tools/cmake/project.cmake) + +set(COMPONENTS main) +list(APPEND EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/tools/mocks/driver) + +project(linux_driver_mock) diff --git a/tools/test_apps/linux_compatible/driver_mock/README.md b/tools/test_apps/linux_compatible/driver_mock/README.md new file mode 100644 index 0000000000..37c142df16 --- /dev/null +++ b/tools/test_apps/linux_compatible/driver_mock/README.md @@ -0,0 +1,2 @@ +| Supported Targets | Linux | +| ----------------- | ----- | diff --git a/tools/test_apps/linux_compatible/driver_mock/main/CMakeLists.txt b/tools/test_apps/linux_compatible/driver_mock/main/CMakeLists.txt new file mode 100644 index 0000000000..cb5f44d93c --- /dev/null +++ b/tools/test_apps/linux_compatible/driver_mock/main/CMakeLists.txt @@ -0,0 +1,3 @@ +idf_component_register(SRCS "driver_mock_main.c" + INCLUDE_DIRS "" + REQUIRES driver) diff --git a/tools/test_apps/linux_compatible/driver_mock/main/driver_mock_main.c b/tools/test_apps/linux_compatible/driver_mock/main/driver_mock_main.c new file mode 100644 index 0000000000..73b383da22 --- /dev/null +++ b/tools/test_apps/linux_compatible/driver_mock/main/driver_mock_main.c @@ -0,0 +1,17 @@ +/* + * SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: CC0-1.0 + */ + +/* Test that mock headers can be included */ +#include "driver/i2c.h" +#include "driver/i2c.h" +#include "driver/spi_master.h" +#include "driver/spi_common.h" + +void app_main(void) +{ + /*Test that mock functions exist*/ + i2c_driver_delete(0); +}