diff options
author | Richard Burton <richard.burton@arm.com> | 2020-04-08 16:39:05 +0100 |
---|---|---|
committer | Jim Flynn <jim.flynn@arm.com> | 2020-04-10 16:11:09 +0000 |
commit | dc0c6ed9f8b993e63f492f203d7d7080ab4c835c (patch) | |
tree | ea8541990b13ebf1a038009aa6b8b4b1ea8c3f55 /python/pyarmnn/test/test_setup.py | |
parent | fe5a24beeef6e9a41366e694f41093565e748048 (diff) | |
download | armnn-dc0c6ed9f8b993e63f492f203d7d7080ab4c835c.tar.gz |
Add PyArmNN to work with ArmNN API of 20.02
* Add Swig rules for generating python wrapper
* Add documentation
* Add tests and testing data
Change-Id: If48eda08931514fa21e72214dfead2835f07237c
Signed-off-by: Richard Burton <richard.burton@arm.com>
Signed-off-by: Derek Lamberti <derek.lamberti@arm.com>
Diffstat (limited to 'python/pyarmnn/test/test_setup.py')
-rw-r--r-- | python/pyarmnn/test/test_setup.py | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/python/pyarmnn/test/test_setup.py b/python/pyarmnn/test/test_setup.py new file mode 100644 index 0000000000..8396ca0587 --- /dev/null +++ b/python/pyarmnn/test/test_setup.py @@ -0,0 +1,100 @@ +# Copyright © 2020 Arm Ltd. All rights reserved. +# SPDX-License-Identifier: MIT +import os +import sys +import shutil + +import pytest + +sys.path.append(os.path.abspath('..')) +from setup import find_armnn, find_includes, linux_gcc_lib_search, check_armnn_version + + +@pytest.fixture(autouse=True) +def _setup_armnn(tmpdir): + includes = str(os.path.join(tmpdir, 'include')) + libs = str(os.path.join(tmpdir, 'lib')) + os.environ["TEST_ARMNN_INCLUDE"] = includes + os.environ["TEST_ARMNN_LIB"] = libs + os.environ["EMPTY_ARMNN_INCLUDE"] = '' + + os.mkdir(includes) + os.mkdir(libs) + + with open(os.path.join(libs, "libarmnn.so"), "w"): + pass + + with open(os.path.join(libs, "libarmnnSomeThing1.so"), "w"): + pass + with open(os.path.join(libs, "libarmnnSomeThing1.so.1"), "w"): + pass + with open(os.path.join(libs, "libarmnnSomeThing1.so.1.2"), "w"): + pass + + with open(os.path.join(libs, "libarmnnSomeThing2.so"), "w"): + pass + + with open(os.path.join(libs, "libSomeThing3.so"), "w"): + pass + + yield + + del os.environ["TEST_ARMNN_INCLUDE"] + del os.environ["TEST_ARMNN_LIB"] + del os.environ["EMPTY_ARMNN_INCLUDE"] + shutil.rmtree(includes) + shutil.rmtree(libs) + + +def test_find_armnn(tmpdir): + lib_names, lib_paths = find_armnn(lib_name='libarmnn*.so', + armnn_libs_env="TEST_ARMNN_LIB", + default_lib_search=("/lib",)) + armnn_includes = find_includes(armnn_include_env="TEST_ARMNN_INCLUDE") + + assert [':libarmnn.so', ':libarmnnSomeThing1.so', ':libarmnnSomeThing2.so'] == sorted(lib_names) + assert [os.path.join(tmpdir, 'lib')] == lib_paths + assert [os.path.join(tmpdir, 'include')] == armnn_includes + + +def test_find_armnn_default_path(tmpdir): + lib_names, lib_paths = find_armnn(lib_name='libarmnn*.so', + armnn_libs_env="RUBBISH_LIB", + default_lib_search=(os.environ["TEST_ARMNN_LIB"],)) + armnn_includes = find_includes('TEST_ARMNN_INCLUDE') + assert [':libarmnn.so', ':libarmnnSomeThing1.so', ':libarmnnSomeThing2.so'] == sorted(lib_names) + assert [os.path.join(tmpdir, 'lib')] == lib_paths + assert [os.path.join(tmpdir, 'include')] == armnn_includes + + +def test_not_find_armnn(tmpdir): + with pytest.raises(RuntimeError) as err: + find_armnn(lib_name='libarmnn*.so', armnn_libs_env="RUBBISH_LIB", + default_lib_search=("/lib",)) + + assert 'ArmNN library libarmnn*.so was not found in (\'/lib\',)' in str(err.value) + + +@pytest.mark.parametrize("env", ["RUBBISH_INCLUDE", "EMPTY_ARMNN_INCLUDE"]) +def test_rubbish_armnn_include(tmpdir, env): + includes = find_includes(armnn_include_env=env) + assert includes == ['/usr/local/include', '/usr/include'] + + +def test_gcc_serch_path(): + assert linux_gcc_lib_search() + + +def test_armnn_version(): + check_armnn_version('20190800', '20190800') + + +def test_incorrect_armnn_version(): + with pytest.raises(AssertionError) as err: + check_armnn_version('20190800', '20190500') + + assert 'Expected ArmNN version is 201905 but installed ArmNN version is 201908' in str(err.value) + + +def test_armnn_version_patch_does_not_matter(): + check_armnn_version('20190800', '20190801') |