mbed-os/tools/python/python_tests/mbed_tools/regression/test_configure.py

62 lines
2.2 KiB
Python

#
# Copyright (c) 2020-2021 Arm Limited and Contributors. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
#
import tempfile
import pathlib
import json
from unittest import TestCase
from click.testing import CliRunner
from mbed_tools.cli.configure import configure
target_json = json.dumps(
{
"TARGET": {
"core": None,
"trustzone": False,
"default_toolchain": "ARM",
"supported_toolchains": None,
"extra_labels": [],
"supported_form_factors": [],
"components": [],
"is_disk_virtual": False,
"macros": [],
"device_has": [],
"features": [],
"detect_code": [],
"c_lib": "std",
"bootloader_supported": False,
"static_memory_defines": True,
"printf_lib": "minimal-printf",
"supported_c_libs": {"arm": ["std"], "gcc_arm": ["std", "small"], "iar": ["std"]},
"supported_application_profiles": ["full"],
}
}
)
mbed_app_json = json.dumps(
{"target_overrides": {"*": {"target.c_lib": "small", "target.printf_lib": "minimal-printf"}}}
)
class TestConfigureRegression(TestCase):
def test_generate_config_called_with_correct_arguments(self):
with tempfile.TemporaryDirectory() as tmpDir:
tmpDirPath = pathlib.Path(tmpDir)
pathlib.Path(tmpDirPath / "mbed-os.lib").write_text("https://github.com/ARMmbed/mbed-os")
pathlib.Path(tmpDirPath / "mbed_app.json").write_text(mbed_app_json)
pathlib.Path(tmpDirPath / "mbed-os").mkdir()
pathlib.Path(tmpDirPath / "mbed-os" / "targets").mkdir()
pathlib.Path(tmpDirPath / "mbed-os" / "targets" / "targets.json5").write_text(target_json)
pathlib.Path(tmpDirPath / "mbed-os" / "targets" / "cmsis_mcu_descriptions.json5").write_text("{}")
pathlib.Path(tmpDirPath / "cmake-build-debug").mkdir()
result = CliRunner().invoke(
configure, ["-m", "Target", "-t", "gcc_arm", "-p", tmpDir, "-o", str(tmpDirPath / "cmake-build-debug")], catch_exceptions=False
)
self.assertIn("mbed_config.cmake has been generated and written to", result.output)