diff options
Diffstat (limited to 'tests/test_target_config.py')
-rw-r--r-- | tests/test_target_config.py | 63 |
1 files changed, 37 insertions, 26 deletions
diff --git a/tests/test_target_config.py b/tests/test_target_config.py index c6235a5..368d394 100644 --- a/tests/test_target_config.py +++ b/tests/test_target_config.py @@ -3,35 +3,28 @@ """Tests for the backend config module.""" from __future__ import annotations -from pathlib import Path - import pytest from mlia.backend.config import BackendConfiguration from mlia.backend.config import BackendType from mlia.backend.config import System from mlia.core.common import AdviceCategory -from mlia.target.config import copy_profile_file_to_output_dir +from mlia.target.config import BUILTIN_SUPPORTED_PROFILE_NAMES +from mlia.target.config import get_builtin_profile_path from mlia.target.config import get_builtin_supported_profile_names -from mlia.target.config import get_profile_file +from mlia.target.config import is_builtin_profile from mlia.target.config import load_profile from mlia.target.config import TargetInfo from mlia.target.config import TargetProfile +from mlia.target.cortex_a.advisor import CortexAInferenceAdvisor +from mlia.target.cortex_a.config import CortexAConfiguration from mlia.utils.registry import Registry -def test_copy_profile_file_to_output_dir(tmp_path: Path) -> None: - """Test if the profile file is copied into the output directory.""" - test_target_profile_name = "ethos-u55-128" - test_file_path = Path(f"{tmp_path}/{test_target_profile_name}.toml") - - copy_profile_file_to_output_dir(test_target_profile_name, tmp_path) - assert Path.is_file(test_file_path) - - -def test_get_builtin_supported_profile_names() -> None: - """Test profile names getter.""" - assert get_builtin_supported_profile_names() == [ +def test_builtin_supported_profile_names() -> None: + """Test built-in profile names.""" + assert BUILTIN_SUPPORTED_PROFILE_NAMES == get_builtin_supported_profile_names() + assert BUILTIN_SUPPORTED_PROFILE_NAMES == [ "cortex-a", "ethos-u55-128", "ethos-u55-256", @@ -39,23 +32,24 @@ def test_get_builtin_supported_profile_names() -> None: "ethos-u65-512", "tosa", ] + for profile_name in BUILTIN_SUPPORTED_PROFILE_NAMES: + assert is_builtin_profile(profile_name) + profile_file = get_builtin_profile_path(profile_name) + assert profile_file.is_file() -def test_get_profile_file() -> None: - """Test function 'get_profile_file'.""" - profile_file = get_profile_file("cortex-a") +def test_builtin_profile_files() -> None: + """Test function 'get_bulitin_profile_file'.""" + profile_file = get_builtin_profile_path("cortex-a") assert profile_file.is_file() - assert profile_file == get_profile_file(profile_file) - with pytest.raises(Exception): - get_profile_file("UNKNOWN") - with pytest.raises(Exception): - get_profile_file("") + profile_file = get_builtin_profile_path("UNKNOWN_FILE_THAT_DOES_NOT_EXIST") + assert not profile_file.exists() def test_load_profile() -> None: """Test getting profile data.""" - profile_file = get_profile_file("ethos-u55-256") + profile_file = get_builtin_profile_path("ethos-u55-256") assert load_profile(profile_file) == { "target": "ethos-u55", "mac": 256, @@ -80,6 +74,9 @@ def test_target_profile() -> None: profile = MyTargetProfile("AnyTarget") assert profile.target == "AnyTarget" + profile = MyTargetProfile.load_json_data({"target": "MySuperTarget"}) + assert profile.target == "MySuperTarget" + profile = MyTargetProfile("") with pytest.raises(ValueError): profile.verify() @@ -101,7 +98,12 @@ def test_target_info( supported: bool, ) -> None: """Test the class 'TargetInfo'.""" - info = TargetInfo(["backend"]) + info = TargetInfo( + ["backend"], + ["backend"], + CortexAInferenceAdvisor, + CortexAConfiguration, + ) backend_registry = Registry[BackendConfiguration]() backend_registry.register( @@ -116,3 +118,12 @@ def test_target_info( assert info.is_supported(advice, check_system) == supported assert bool(info.filter_supported_backends(advice, check_system)) == supported + + info = TargetInfo( + ["unknown_backend"], + ["unknown_backend"], + CortexAInferenceAdvisor, + CortexAConfiguration, + ) + assert not info.is_supported(advice, check_system) + assert not info.filter_supported_backends(advice, check_system) |