aboutsummaryrefslogtreecommitdiff
path: root/src/backends/backendsCommon/test/TestDynamicBackend.cpp
diff options
context:
space:
mode:
authorMatteo Martincigh <matteo.martincigh@arm.com>2019-07-24 14:56:13 +0100
committerMatteo Martincigh <matteo.martincigh@arm.com>2019-07-30 13:17:35 +0100
commitbc2e210785a63e8360839e4ded5d2c15c2dffaf5 (patch)
treee9e4e75bab72ce7c7e599cfb86a6508a001d86bc /src/backends/backendsCommon/test/TestDynamicBackend.cpp
parent986c186468e6023b234c24bd10ed9687f9eea0da (diff)
downloadarmnn-bc2e210785a63e8360839e4ded5d2c15c2dffaf5.tar.gz
IVGCVSW-3561 Test the DynamicBackend class
* Added unit test for valid dynamic backends * Added unit tests for various cases of invalid dynamic backends (invalid handle, malformed backends, incompatible version, etc.) Signed-off-by: Matteo Martincigh <matteo.martincigh@arm.com> Change-Id: I4c3b33702bb0faac2bbebe224f69908639b4fc54
Diffstat (limited to 'src/backends/backendsCommon/test/TestDynamicBackend.cpp')
-rw-r--r--src/backends/backendsCommon/test/TestDynamicBackend.cpp95
1 files changed, 95 insertions, 0 deletions
diff --git a/src/backends/backendsCommon/test/TestDynamicBackend.cpp b/src/backends/backendsCommon/test/TestDynamicBackend.cpp
new file mode 100644
index 0000000000..7fd996fae8
--- /dev/null
+++ b/src/backends/backendsCommon/test/TestDynamicBackend.cpp
@@ -0,0 +1,95 @@
+//
+// Copyright © 2017 Arm Ltd. All rights reserved.
+// SPDX-License-Identifier: MIT
+//
+
+#include "TestDynamicBackend.hpp"
+
+#include <backendsCommon/IBackendInternal.hpp>
+
+constexpr const char* TestDynamicBackendId()
+{
+#if defined(VALID_TEST_DYNAMIC_BACKEND)
+
+ return "ValidTestDynamicBackend";
+
+#else
+
+ return "InvalidTestDynamicBackend";
+
+#endif
+}
+
+class TestDynamicBackend : public armnn::IBackendInternal
+{
+public:
+ TestDynamicBackend()
+ : m_BackendId(TestDynamicBackendId())
+ {}
+
+ const armnn::BackendId& GetId() const override
+ {
+ return m_BackendId;
+ }
+ IWorkloadFactoryPtr CreateWorkloadFactory(const IMemoryManagerSharedPtr& memoryManager) const override
+ {
+ return IWorkloadFactoryPtr{};
+ }
+ ILayerSupportSharedPtr GetLayerSupport() const override
+ {
+ return ILayerSupportSharedPtr{};
+ }
+
+private:
+ armnn::BackendId m_BackendId;
+};
+
+const char* GetBackendId()
+{
+#if defined(INVALID_TEST_DYNAMIC_BACKEND_5)
+
+ // Return an invalid backend id
+ return nullptr;
+
+#else
+
+ // Return a valid backend id
+ return TestDynamicBackendId();
+
+#endif
+}
+
+void GetVersion(uint32_t* outMajor, uint32_t* outMinor)
+{
+ if (!outMajor || !outMinor)
+ {
+ return;
+ }
+
+#if defined(INVALID_TEST_DYNAMIC_BACKEND_7)
+
+ *outMajor = 0;
+ *outMinor = 7;
+
+#else
+
+ *outMajor = 1;
+ *outMinor = 0;
+
+#endif
+}
+
+void* BackendFactory()
+{
+#if defined(INVALID_TEST_DYNAMIC_BACKEND_6)
+
+ // Return an invalid backend instance
+ return nullptr;
+
+#else
+
+ // Return a non-null backend instance
+ return new TestDynamicBackend();
+
+#endif
+}