blob: 7fd996fae84ecbe60b10c1ceb716d62740c5dfee [file] [log] [blame]
Matteo Martincighbc2e2102019-07-24 14:56:13 +01001//
2// Copyright © 2017 Arm Ltd. All rights reserved.
3// SPDX-License-Identifier: MIT
4//
5
6#include "TestDynamicBackend.hpp"
7
8#include <backendsCommon/IBackendInternal.hpp>
9
10constexpr const char* TestDynamicBackendId()
11{
12#if defined(VALID_TEST_DYNAMIC_BACKEND)
13
14 return "ValidTestDynamicBackend";
15
16#else
17
18 return "InvalidTestDynamicBackend";
19
20#endif
21}
22
23class TestDynamicBackend : public armnn::IBackendInternal
24{
25public:
26 TestDynamicBackend()
27 : m_BackendId(TestDynamicBackendId())
28 {}
29
30 const armnn::BackendId& GetId() const override
31 {
32 return m_BackendId;
33 }
34 IWorkloadFactoryPtr CreateWorkloadFactory(const IMemoryManagerSharedPtr& memoryManager) const override
35 {
36 return IWorkloadFactoryPtr{};
37 }
38 ILayerSupportSharedPtr GetLayerSupport() const override
39 {
40 return ILayerSupportSharedPtr{};
41 }
42
43private:
44 armnn::BackendId m_BackendId;
45};
46
47const char* GetBackendId()
48{
49#if defined(INVALID_TEST_DYNAMIC_BACKEND_5)
50
51 // Return an invalid backend id
52 return nullptr;
53
54#else
55
56 // Return a valid backend id
57 return TestDynamicBackendId();
58
59#endif
60}
61
62void GetVersion(uint32_t* outMajor, uint32_t* outMinor)
63{
64 if (!outMajor || !outMinor)
65 {
66 return;
67 }
68
69#if defined(INVALID_TEST_DYNAMIC_BACKEND_7)
70
71 *outMajor = 0;
72 *outMinor = 7;
73
74#else
75
76 *outMajor = 1;
77 *outMinor = 0;
78
79#endif
80}
81
82void* BackendFactory()
83{
84#if defined(INVALID_TEST_DYNAMIC_BACKEND_6)
85
86 // Return an invalid backend instance
87 return nullptr;
88
89#else
90
91 // Return a non-null backend instance
92 return new TestDynamicBackend();
93
94#endif
95}