7fd996fae84ecbe60b10c1ceb716d62740c5dfee
[platform/upstream/armnn.git] / src / backends / backendsCommon / test / TestDynamicBackend.cpp
1 //
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
10 constexpr 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
23 class TestDynamicBackend : public armnn::IBackendInternal
24 {
25 public:
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
43 private:
44     armnn::BackendId m_BackendId;
45 };
46
47 const 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
62 void 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
82 void* 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 }