Merge branch 'bugfix/linux_target_driver_mock' into 'master'

linux-target: fixed driver mock being broken due to changes in driver folder structure

Closes IDFGH-9375

See merge request espressif/esp-idf!22375
This commit is contained in:
Marius Vikhammer 2023-02-20 15:38:38 +08:00
commit eb40fc913a
6 changed files with 47 additions and 8 deletions

View File

@ -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)

View File

@ -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"

View File

@ -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)

View File

@ -0,0 +1,2 @@
| Supported Targets | Linux |
| ----------------- | ----- |

View File

@ -0,0 +1,3 @@
idf_component_register(SRCS "driver_mock_main.c"
INCLUDE_DIRS ""
REQUIRES driver)

View File

@ -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);
}