esp-idf/tools/test_build_system/test_component_manager.py

47 lines
1.5 KiB
Python

# SPDX-FileCopyrightText: 2022-2024 Espressif Systems (Shanghai) CO LTD
# SPDX-License-Identifier: Apache-2.0
import os.path
from pathlib import Path
from test_build_system_helpers import IdfPyFunc
from test_build_system_helpers import replace_in_file
def test_dependency_lock(idf_py: IdfPyFunc, test_app_copy: Path) -> None:
replace_in_file(
test_app_copy / 'CMakeLists.txt',
search='# placeholder_after_include_project_cmake',
replace='idf_build_set_property(DEPENDENCIES_LOCK dependencies.lock.${IDF_TARGET})',
)
idf_py('add-dependency', 'example/cmp')
idf_py('fullclean')
idf_py('reconfigure')
assert os.path.isfile(test_app_copy / 'dependencies.lock.esp32')
assert not os.path.isfile(test_app_copy / 'dependencies.lock')
def test_trimmed_components_still_passed_to_cmake(idf_py: IdfPyFunc, test_app_copy: Path) -> None:
replace_in_file(
test_app_copy / 'CMakeLists.txt',
search='# placeholder_after_include_project_cmake',
replace='set(COMPONENTS main)',
)
replace_in_file(
test_app_copy / 'main' / 'CMakeLists.txt',
search='# placeholder_inside_idf_component_register',
replace='REQUIRES foo',
)
os.makedirs(test_app_copy / 'components')
idf_py('create-component', '-C', 'components', 'foo')
idf_py('add-dependency', '--component', 'foo', 'example/cmp')
idf_py('reconfigure')
with open('dependencies.lock', 'r') as f:
fs = f.read()
assert ' example/cmp:' in fs