diff options
Diffstat (limited to 'delegate/python/test/test_external_delegate.py')
-rw-r--r-- | delegate/python/test/test_external_delegate.py | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/delegate/python/test/test_external_delegate.py b/delegate/python/test/test_external_delegate.py new file mode 100644 index 0000000000..995de8cd70 --- /dev/null +++ b/delegate/python/test/test_external_delegate.py @@ -0,0 +1,65 @@ +# Copyright © 2020 Arm Ltd and Contributors. All rights reserved. +# SPDX-License-Identifier: MIT + +import pytest +import tflite_runtime.interpreter as tflite +import os +from utils import run_mock_model + + +def test_external_delegate_unknown_options(delegate_dir): + print(delegate_dir) + with pytest.raises(ValueError): + tflite.load_delegate( + delegate_dir, + options={"wrong": "wrong"}) + + +def test_external_delegate_options_multiple_backends(delegate_dir): + tflite.load_delegate( + delegate_dir, + options={"backends": "GpuAcc,CpuAcc,CpuRef,Unknown"}) + + +@pytest.mark.GpuAccTest +def test_external_delegate_options_gpu_tuning(delegate_dir, test_data_folder, tmp_path): + + tuning_file = os.path.join(str(tmp_path), "test_gpu.tuning") + # cleanup previous test run if necessary + if os.path.exists(tuning_file): + os.remove(tuning_file) + + # with tuning level 2 a tuning file should be created + armnn_delegate = tflite.load_delegate( + delegate_dir, + options={ + "backends": "GpuAcc", + "gpu-tuning-level": "2", + "gpu-tuning-file": tuning_file, + "logging-severity": "info"}) + + run_mock_model(armnn_delegate, test_data_folder) + + # destroy delegate, otherwise tuning file won't be written to file + armnn_delegate.__del__() + assert (os.path.exists(tuning_file)) + + # if no tuning level is provided it defaults to 0 which means it will use the tuning parameters from a tuning + # file if one is provided + armnn_delegate2 = tflite.load_delegate( + delegate_dir, + options={ + "backends": "GpuAcc", + "gpu-tuning-file": tuning_file, + "logging-severity": "info"}) + + run_mock_model(armnn_delegate2, test_data_folder) + + # cleanup + os.remove(tuning_file) + +def test_external_delegate_options_wrong_logging_level(delegate_dir): + with pytest.raises(ValueError): + tflite.load_delegate( + delegate_dir, + options={"logging-severity": "wrong"}) |