mbed-os/tools/test_configs/__init__.py

62 lines
2.2 KiB
Python

"""
Copyright (c) 2018-2019 ARM Limited. All rights reserved.
SPDX-License-Identifier: Apache-2.0
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations
"""
from os.path import dirname, abspath, join, exists
from tools.utils import json_file_to_dict
from tools.targets import TARGET_MAP
from tools.config import Config
CONFIG_DIR = dirname(abspath(__file__))
CONFIG_MAP = json_file_to_dict(join(CONFIG_DIR, "config_paths.json"))
TARGET_CONFIGS = json_file_to_dict(join(CONFIG_DIR, "target_configs.json"))
def get_valid_configs(target_name):
if target_name in TARGET_CONFIGS:
target_config = TARGET_CONFIGS[target_name]
elif (target_name in TARGET_MAP and 'EMAC' in TARGET_MAP[target_name].device_has):
target_config = { "default_test_configuration": "ETHERNET", "test_configurations": ["ETHERNET"] }
else:
return {}
config_dict = {}
for attr in CONFIG_MAP:
if attr in target_config['test_configurations']:
config_dict[attr] = CONFIG_MAP[attr]
return config_dict
def get_config_path(conf_name, target_name):
configs = get_valid_configs(target_name)
if configs and conf_name.upper() in configs:
return join(CONFIG_DIR, configs[conf_name.upper()])
else:
return None
def get_default_config(source_dir, target_name):
if target_name in TARGET_CONFIGS:
config_name = TARGET_CONFIGS[target_name]['default_test_configuration']
if config_name == "NONE":
return None
return join(CONFIG_DIR, CONFIG_MAP[config_name])
elif Config.find_app_config(source_dir):
return None
elif (target_name in TARGET_MAP and 'EMAC' in TARGET_MAP[target_name].device_has):
return join(CONFIG_DIR, CONFIG_MAP["ETHERNET"])
else:
return None