mirror of
https://github.com/espressif/esp-idf.git
synced 2025-08-09 12:35:28 +00:00
fix: harden input parsing in component_requirements hint module
Currently we silently ignore when the original component is not found in a hope we can provide at least some meaningful hint. As it turned out it's not true. Instead of providing misleading hint, just return error. This adds several checks for situations, which should not happen, but when they do it should be easier to identify the root cause of the problem. For example when hint module received malformed output with extra new lines, e.g. caused by a bug in RunTool, it wrongly reported the original component as source component. This should also fix the tests on Windows. Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
This commit is contained in:
@@ -149,7 +149,7 @@ class TestNestedModuleComponentRequirements(unittest.TestCase):
|
||||
self.projectdir.mkdir(parents=True)
|
||||
(self.projectdir / 'CMakeLists.txt').write_text((
|
||||
'cmake_minimum_required(VERSION 3.16)\n'
|
||||
f'set(EXTRA_COMPONENT_DIRS "{components}")\n'
|
||||
f'set(EXTRA_COMPONENT_DIRS "{components.as_posix()}")\n'
|
||||
'set(COMPONENTS main)\n'
|
||||
'include($ENV{IDF_PATH}/tools/cmake/project.cmake)\n'
|
||||
'project(foo)'))
|
||||
@@ -164,7 +164,7 @@ class TestNestedModuleComponentRequirements(unittest.TestCase):
|
||||
# when components are nested. The main component should be identified as the
|
||||
# real source, not the component1 component.
|
||||
output = run_idf(['app'], self.projectdir)
|
||||
self.assertNotIn('BUG: esp_timer.h found in component esp_timer which is already in the requirements list of component1', output)
|
||||
self.assertNotIn('esp_timer.h found in component esp_timer which is already in the requirements list of component1', output)
|
||||
self.assertIn('To fix this, add esp_timer to PRIV_REQUIRES list of idf_component_register call', output)
|
||||
|
||||
def tearDown(self) -> None:
|
||||
|
Reference in New Issue
Block a user