diff options
Diffstat (limited to 'driver_library/python/test/test_capabilities.py')
-rw-r--r-- | driver_library/python/test/test_capabilities.py | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/driver_library/python/test/test_capabilities.py b/driver_library/python/test/test_capabilities.py new file mode 100644 index 0000000..ffb201c --- /dev/null +++ b/driver_library/python/test/test_capabilities.py @@ -0,0 +1,73 @@ +# +# SPDX-FileCopyrightText: Copyright 2021-2022 Arm Limited and/or its affiliates <open-source-office@arm.com> +# SPDX-License-Identifier: Apache-2.0 +# +from ethosu_driver._generated.driver import SemanticVersion +from ethosu_driver._generated.driver import HardwareId +from ethosu_driver._generated.driver import HardwareConfiguration +from ethosu_driver._generated.driver import Capabilities + + +def check_semantic_version(ma, mi, pa, sv): + assert ma == sv.major + assert mi == sv.minor + assert pa == sv.patch + + +def test_semantic_version(): + sv = SemanticVersion(1, 2, 3) + assert '{ major=1, minor=2, patch=3 }' == sv.__str__() + check_semantic_version(1, 2, 3, sv) + + +def test_hardware_id(): + version = SemanticVersion(1, 2, 3) + product = SemanticVersion(4, 5, 6) + architecture = SemanticVersion(7, 8, 9) + hw_id = HardwareId(1, version, product, architecture) + + assert 1 == hw_id.versionStatus + + check_semantic_version(1, 2, 3, hw_id.version) + check_semantic_version(4, 5, 6, hw_id.product) + check_semantic_version(7, 8, 9, hw_id.architecture) + + assert '{versionStatus=1, version={ major=1, minor=2, patch=3 }, product={ major=4, minor=5, patch=6 }, ' \ + 'architecture={ major=7, minor=8, patch=9 }}' == hw_id.__str__() + + +def test_hw_configuration(): + hw_cfg = HardwareConfiguration(128, 1, True) + + assert 1 == hw_cfg.cmdStreamVersion + assert 128 == hw_cfg.macsPerClockCycle + assert hw_cfg.customDma + + assert "{macsPerClockCycle=128, cmdStreamVersion=1, customDma=True}" == hw_cfg.__str__() + + +def test_capabilities(): + version = SemanticVersion(100, 200, 300) + product = SemanticVersion(400, 500, 600) + architecture = SemanticVersion(700, 800, 900) + hw_id = HardwareId(1, version, product, architecture) + hw_cfg = HardwareConfiguration(256, 1000, False) + driver_v = SemanticVersion(10, 20, 30) + + cap = Capabilities(hw_id, hw_cfg, driver_v) + + check_semantic_version(10, 20, 30, cap.driver) + + check_semantic_version(100, 200, 300, cap.hwId.version) + check_semantic_version(400, 500, 600, cap.hwId.product) + check_semantic_version(700, 800, 900, cap.hwId.architecture) + + assert 1000 == cap.hwCfg.cmdStreamVersion + assert 256 == cap.hwCfg.macsPerClockCycle + assert not cap.hwCfg.customDma + + assert '{hwId={versionStatus=1, version={ major=100, minor=200, patch=300 }, ' \ + 'product={ major=400, minor=500, patch=600 }, ' \ + 'architecture={ major=700, minor=800, patch=900 }}, ' \ + 'hwCfg={macsPerClockCycle=256, cmdStreamVersion=1000, customDma=False}, ' \ + 'driver={ major=10, minor=20, patch=30 }}' == cap.__str__() |