aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorDmitrii Agibov <dmitrii.agibov@arm.com>2023-02-15 14:58:37 +0000
committerDmitrii Agibov <dmitrii.agibov@arm.com>2023-02-16 10:44:22 +0000
commita01e0e1229e30f9e2ebf3cd921ffe0dbef1cbea9 (patch)
tree811585649f513c2182f26a64751c986c7a66be83 /tests
parentdf856cc9f20670ade3e84511f0fcbcc11425705d (diff)
downloadmlia-a01e0e1229e30f9e2ebf3cd921ffe0dbef1cbea9.tar.gz
MLIA-812 Show error message for unsupported functionality0.6.0-rc.2
Change-Id: I68fb8c4e51046e9fc2d91ad8338718ba545209cd
Diffstat (limited to 'tests')
-rw-r--r--tests/test_target_cortex_a_advisor.py32
-rw-r--r--tests/test_target_ethos_u_advisor.py24
-rw-r--r--tests/test_target_tosa_advisor.py28
3 files changed, 82 insertions, 2 deletions
diff --git a/tests/test_target_cortex_a_advisor.py b/tests/test_target_cortex_a_advisor.py
index 1788a6d..9e0082f 100644
--- a/tests/test_target_cortex_a_advisor.py
+++ b/tests/test_target_cortex_a_advisor.py
@@ -1,8 +1,11 @@
-# SPDX-FileCopyrightText: Copyright 2022, Arm Limited and/or its affiliates.
+# SPDX-FileCopyrightText: Copyright 2022-2023, Arm Limited and/or its affiliates.
# SPDX-License-Identifier: Apache-2.0
"""Tests for Cortex-A MLIA module."""
from pathlib import Path
+import pytest
+
+from mlia.core.common import AdviceCategory
from mlia.core.context import ExecutionContext
from mlia.core.workflow import DefaultWorkflowExecutor
from mlia.target.cortex_a.advisor import configure_and_get_cortexa_advisor
@@ -32,3 +35,30 @@ def test_configure_and_get_cortex_a_advisor(test_tflite_model: Path) -> None:
}
assert isinstance(workflow, DefaultWorkflowExecutor)
+
+
+@pytest.mark.parametrize(
+ "category, expected_error",
+ [
+ [
+ AdviceCategory.PERFORMANCE,
+ "Performance estimation is currently not supported for Cortex-A.",
+ ],
+ [
+ AdviceCategory.OPTIMIZATION,
+ "Model optimizations are currently not supported for Cortex-A.",
+ ],
+ ],
+)
+def test_unsupported_advice_categories(
+ tmp_path: Path,
+ category: AdviceCategory,
+ expected_error: str,
+ test_tflite_model: Path,
+) -> None:
+ """Test that advisor should throw an exception for unsupported categories."""
+ with pytest.raises(Exception, match=expected_error):
+ ctx = ExecutionContext(output_dir=tmp_path, advice_category={category})
+
+ advisor = configure_and_get_cortexa_advisor(ctx, "cortex-a", test_tflite_model)
+ advisor.configure(ctx)
diff --git a/tests/test_target_ethos_u_advisor.py b/tests/test_target_ethos_u_advisor.py
index fb68800..11aefc7 100644
--- a/tests/test_target_ethos_u_advisor.py
+++ b/tests/test_target_ethos_u_advisor.py
@@ -1,9 +1,31 @@
-# SPDX-FileCopyrightText: Copyright 2022, Arm Limited and/or its affiliates.
+# SPDX-FileCopyrightText: Copyright 2022-2023, Arm Limited and/or its affiliates.
# SPDX-License-Identifier: Apache-2.0
"""Tests for Ethos-U MLIA module."""
+from pathlib import Path
+
+import pytest
+
+from mlia.core.common import AdviceCategory
+from mlia.core.context import ExecutionContext
+from mlia.target.ethos_u.advisor import configure_and_get_ethosu_advisor
from mlia.target.ethos_u.advisor import EthosUInferenceAdvisor
def test_advisor_metadata() -> None:
"""Test advisor metadata."""
assert EthosUInferenceAdvisor.name() == "ethos_u_inference_advisor"
+
+
+def test_unsupported_advice_categories(tmp_path: Path, test_tflite_model: Path) -> None:
+ """Test that advisor should throw an exception for unsupported categories."""
+ with pytest.raises(
+ Exception, match="Optimizations are not supported for TensorFlow Lite files."
+ ):
+ ctx = ExecutionContext(
+ output_dir=tmp_path, advice_category={AdviceCategory.OPTIMIZATION}
+ )
+
+ advisor = configure_and_get_ethosu_advisor(
+ ctx, "ethos-u55-256", str(test_tflite_model)
+ )
+ advisor.configure(ctx)
diff --git a/tests/test_target_tosa_advisor.py b/tests/test_target_tosa_advisor.py
index 9646c96..f4f1e36 100644
--- a/tests/test_target_tosa_advisor.py
+++ b/tests/test_target_tosa_advisor.py
@@ -6,6 +6,7 @@ from unittest.mock import MagicMock
import pytest
+from mlia.core.common import AdviceCategory
from mlia.core.context import ExecutionContext
from mlia.core.workflow import DefaultWorkflowExecutor
from mlia.target.tosa.advisor import configure_and_get_tosa_advisor
@@ -38,3 +39,30 @@ def test_configure_and_get_tosa_advisor(
}
assert isinstance(workflow, DefaultWorkflowExecutor)
+
+
+@pytest.mark.parametrize(
+ "category, expected_error",
+ [
+ [
+ AdviceCategory.PERFORMANCE,
+ "Performance estimation is currently not supported for TOSA.",
+ ],
+ [
+ AdviceCategory.OPTIMIZATION,
+ "Model optimizations are currently not supported for TOSA.",
+ ],
+ ],
+)
+def test_unsupported_advice_categories(
+ tmp_path: Path,
+ category: AdviceCategory,
+ expected_error: str,
+ test_tflite_model: Path,
+) -> None:
+ """Test that advisor should throw an exception for unsupported categories."""
+ with pytest.raises(Exception, match=expected_error):
+ ctx = ExecutionContext(output_dir=tmp_path, advice_category={category})
+
+ advisor = configure_and_get_tosa_advisor(ctx, "tosa", test_tflite_model)
+ advisor.configure(ctx)