mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
feat(usb_host): Create USB Host mock for CMock host tests
This commit is contained in:
parent
91ad4bcbce
commit
d071bb4c56
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2015-2022 Espressif Systems (Shanghai) CO LTD
|
||||
* SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
@ -27,7 +27,7 @@ const usb_standard_desc_t *usb_parse_next_descriptor(const usb_standard_desc_t *
|
||||
return NULL; // Next descriptor is out of bounds
|
||||
}
|
||||
// Return the next descriptor, update offset
|
||||
const usb_standard_desc_t *ret_desc = (const usb_standard_desc_t *)(((uint32_t)cur_desc) + cur_desc->bLength);
|
||||
const usb_standard_desc_t *ret_desc = (const usb_standard_desc_t *)(((uintptr_t)cur_desc) + cur_desc->bLength);
|
||||
*offset += cur_desc->bLength;
|
||||
return ret_desc;
|
||||
}
|
||||
|
18
tools/mocks/usb/CMakeLists.txt
Normal file
18
tools/mocks/usb/CMakeLists.txt
Normal file
@ -0,0 +1,18 @@
|
||||
# NOTE: This kind of mocking currently works on Linux targets only.
|
||||
# On Espressif chips, too many dependencies are missing at the moment.
|
||||
message(STATUS "building USB HOST MOCKS")
|
||||
|
||||
idf_component_get_property(original_usb_dir usb COMPONENT_OVERRIDEN_DIR)
|
||||
|
||||
idf_component_mock(INCLUDE_DIRS "${original_usb_dir}/include"
|
||||
"${original_usb_dir}/include/esp_private"
|
||||
"${original_usb_dir}/include/usb"
|
||||
"${original_usb_dir}/private_include"
|
||||
MOCK_HEADER_FILES ${original_usb_dir}/include/usb/usb_host.h
|
||||
${original_usb_dir}/include/esp_private/usb_phy.h
|
||||
REQUIRES freertos)
|
||||
|
||||
|
||||
# We do not mock usb_helpers. We use the original implementation.
|
||||
# This way, we can test Class drivers descriptor parsing
|
||||
target_sources(${COMPONENT_LIB} PRIVATE "${original_usb_dir}/usb_helpers.c")
|
7
tools/mocks/usb/mock/mock_config.yaml
Normal file
7
tools/mocks/usb/mock/mock_config.yaml
Normal file
@ -0,0 +1,7 @@
|
||||
:cmock:
|
||||
:plugins:
|
||||
- expect
|
||||
- expect_any_args
|
||||
- return_thru_ptr
|
||||
- ignore
|
||||
- ignore_arg
|
Loading…
Reference in New Issue
Block a user