diff options
author | Finn Williams <Finn.Williams@arm.com> | 2021-05-26 18:38:12 +0100 |
---|---|---|
committer | Finn Williams <Finn.Williams@arm.com> | 2021-06-09 17:18:10 +0100 |
commit | b9af86ea42568ade799ee5529137e4756977b6c6 (patch) | |
tree | 261003078fd2191b22ee7465e07668cbed666553 /src/backends/backendsCommon/test/CompatibilityTests.cpp | |
parent | 5b1bcc93820b442bc4035c1e030a8d4a0983df91 (diff) | |
download | armnn-b9af86ea42568ade799ee5529137e4756977b6c6.tar.gz |
IVGCVSW-5855 Refactor the reporting of capabilities from backends
Signed-off-by: Finn Williams <Finn.Williams@arm.com>
Change-Id: I05fc331a8e91bdcb6b8a2f32cfb555060fc5d797
Diffstat (limited to 'src/backends/backendsCommon/test/CompatibilityTests.cpp')
-rw-r--r-- | src/backends/backendsCommon/test/CompatibilityTests.cpp | 61 |
1 files changed, 55 insertions, 6 deletions
diff --git a/src/backends/backendsCommon/test/CompatibilityTests.cpp b/src/backends/backendsCommon/test/CompatibilityTests.cpp index 0f889f416c..ed00088549 100644 --- a/src/backends/backendsCommon/test/CompatibilityTests.cpp +++ b/src/backends/backendsCommon/test/CompatibilityTests.cpp @@ -8,6 +8,7 @@ #include <cl/ClBackend.hpp> #include <neon/NeonBackend.hpp> #include <reference/RefBackend.hpp> +#include <armnn/BackendHelper.hpp> #include <Network.hpp> @@ -18,6 +19,7 @@ using namespace armnn; BOOST_AUTO_TEST_SUITE(BackendsCompatibility, * boost::unit_test::disabled()) +#if defined(ARMCOMPUTENEON_ENABLED) BOOST_AUTO_TEST_CASE(Neon_Cl_DirectCompatibility_Test) { auto neonBackend = std::make_unique<NeonBackend>(); @@ -114,7 +116,7 @@ BOOST_AUTO_TEST_CASE(Neon_Cl_DirectCompatibility_Test) }); BOOST_TEST(importCount == 0); } - +#endif BOOST_AUTO_TEST_SUITE_END() BOOST_AUTO_TEST_SUITE(BackendCapability) @@ -124,9 +126,38 @@ BOOST_AUTO_TEST_SUITE(BackendCapability) BOOST_AUTO_TEST_CASE(Ref_Backends_Capability_Test) { auto refBackend = std::make_unique<RefBackend>(); - BOOST_CHECK(refBackend->HasCapability(armnn::BackendCapability::NonConstWeights)); + auto refCapabilities = refBackend->GetCapabilities(); - BOOST_CHECK(!refBackend->HasCapability(armnn::BackendCapability::AsyncExecution)); + BOOST_CHECK(armnn::HasCapability("NonConstWeights", refCapabilities)); + BOOST_CHECK(armnn::HasCapability("AsyncExecution", refCapabilities)); + + armnn::BackendOptions::BackendOption nonConstWeights{"NonConstWeights", true}; + armnn::BackendOptions::BackendOption AsyncExecution{"AsyncExecution", true}; + + BOOST_CHECK(armnn::HasCapability(nonConstWeights, refCapabilities)); + BOOST_CHECK(armnn::HasCapability(AsyncExecution, refCapabilities)); +} + +BOOST_AUTO_TEST_CASE(Ref_Backends_Unkown_Capability_Test) +{ + auto refBackend = std::make_unique<RefBackend>(); + auto refCapabilities = refBackend->GetCapabilities(); + + armnn::BackendOptions::BackendOption AsyncExecutionFalse{"AsyncExecution", false}; + BOOST_CHECK(!armnn::HasCapability(AsyncExecutionFalse, refCapabilities)); + + armnn::BackendOptions::BackendOption AsyncExecutionInt{"AsyncExecution", 50}; + BOOST_CHECK(!armnn::HasCapability(AsyncExecutionFalse, refCapabilities)); + + armnn::BackendOptions::BackendOption AsyncExecutionFloat{"AsyncExecution", 0.0f}; + BOOST_CHECK(!armnn::HasCapability(AsyncExecutionFloat, refCapabilities)); + + armnn::BackendOptions::BackendOption AsyncExecutionString{"AsyncExecution", "true"}; + BOOST_CHECK(!armnn::HasCapability(AsyncExecutionString, refCapabilities)); + + BOOST_CHECK(!armnn::HasCapability("Telekinesis", refCapabilities)); + armnn::BackendOptions::BackendOption unkownCapability{"Telekinesis", true}; + BOOST_CHECK(!armnn::HasCapability(unkownCapability, refCapabilities)); } #endif @@ -136,7 +167,16 @@ BOOST_AUTO_TEST_CASE(Ref_Backends_Capability_Test) BOOST_AUTO_TEST_CASE(Neon_Backends_Capability_Test) { auto neonBackend = std::make_unique<NeonBackend>(); - BOOST_CHECK(!neonBackend->HasCapability(armnn::BackendCapability::NonConstWeights)); + auto neonCapabilities = neonBackend->GetCapabilities(); + + BOOST_CHECK(armnn::HasCapability("NonConstWeights", neonCapabilities)); + BOOST_CHECK(armnn::HasCapability("AsyncExecution", neonCapabilities)); + + armnn::BackendOptions::BackendOption nonConstWeights{"NonConstWeights", false}; + armnn::BackendOptions::BackendOption AsyncExecution{"AsyncExecution", false}; + + BOOST_CHECK(armnn::HasCapability(nonConstWeights, neonCapabilities)); + BOOST_CHECK(armnn::HasCapability(AsyncExecution, neonCapabilities)); } #endif @@ -145,8 +185,17 @@ BOOST_AUTO_TEST_CASE(Neon_Backends_Capability_Test) BOOST_AUTO_TEST_CASE(Cl_Backends_Capability_Test) { - auto clBackend = std::make_unique<ClBackend>(); - BOOST_CHECK(!clBackend->HasCapability(armnn::BackendCapability::NonConstWeights)); + auto clBackend = std::make_unique<ClBackend>(); + auto clCapabilities = clBackend->GetCapabilities(); + + BOOST_CHECK(armnn::HasCapability("NonConstWeights", clCapabilities)); + BOOST_CHECK(armnn::HasCapability("AsyncExecution", clCapabilities)); + + armnn::BackendOptions::BackendOption nonConstWeights{"NonConstWeights", false}; + armnn::BackendOptions::BackendOption AsyncExecution{"AsyncExecution", false}; + + BOOST_CHECK(armnn::HasCapability(nonConstWeights, clCapabilities)); + BOOST_CHECK(armnn::HasCapability(AsyncExecution, clCapabilities)); } #endif |