// // Copyright © 2023 Arm Ltd and Contributors. All rights reserved. // SPDX-License-Identifier: MIT // #define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN #include #include #include #include #include namespace armnnOpaqueDelegate { TEST_SUITE("ArmnnOpaqueDelegate") { TEST_CASE ("DelegateOptions_OpaqueDelegateDefault") { // Check default options can be created auto options = armnnOpaqueDelegate::TfLiteArmnnDelegateOptionsDefault(); armnnOpaqueDelegate::ArmnnOpaqueDelegate delegate(options); // Check version returns correctly auto version = delegate.GetVersion(); CHECK_EQ(version, OPAQUE_DELEGATE_VERSION); auto* builder = delegate.GetDelegateBuilder(); CHECK(builder); // Check Opaque delegate created auto opaqueDelegate = armnnOpaqueDelegate::TfLiteArmnnOpaqueDelegateCreate(&options); CHECK(opaqueDelegate); // Check Opaque Delegate can be deleted CHECK(opaqueDelegate->opaque_delegate_builder->data); armnnOpaqueDelegate::TfLiteArmnnOpaqueDelegateDelete(opaqueDelegate); } TEST_CASE ("DelegatePluginTest") { // Use default settings until options have been enabled. flatbuffers::FlatBufferBuilder flatBufferBuilder; tflite::TFLiteSettingsBuilder tfliteSettingsBuilder(flatBufferBuilder); flatbuffers::Offset tfliteSettings = tfliteSettingsBuilder.Finish(); flatBufferBuilder.Finish(tfliteSettings); const tflite::TFLiteSettings* settings = flatbuffers::GetRoot( flatBufferBuilder.GetBufferPointer()); std::unique_ptr delegatePlugin = tflite::delegates::DelegatePluginRegistry::CreateByName("armnn_delegate", *settings); // Plugin is created correctly using armnn_delegate name. CHECK((delegatePlugin != nullptr)); tflite::delegates::TfLiteDelegatePtr armnnDelegate = delegatePlugin->Create(); // Armnn Opaque Delegate is created correctly. CHECK((armnnDelegate != nullptr)); CHECK((armnnDelegate->opaque_delegate_builder != nullptr)); } } } // namespace armnnDelegate