xref: /aosp_15_r20/external/armnn/src/backends/backendsCommon/test/TestDynamicBackend.hpp (revision 89c4ff92f2867872bb9e2354d150bf0c8c502810)
1 //
2 // Copyright © 2017 Arm Ltd. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 
6 #pragma once
7 
8 #include <cstdint>
9 
10 #if defined(VALID_TEST_DYNAMIC_BACKEND_1) || \
11     defined(VALID_TEST_DYNAMIC_BACKEND_2) || \
12     defined(VALID_TEST_DYNAMIC_BACKEND_3) || \
13     defined(VALID_TEST_DYNAMIC_BACKEND_4) || \
14     defined(VALID_TEST_DYNAMIC_BACKEND_5)
15 
16 // Correct dynamic backend interface
17 extern "C"
18 {
19 const char* GetBackendId();
20 void GetVersion(uint32_t* outMajor, uint32_t* outMinor);
21 void* BackendFactory();
22 }
23 
24 #elif defined(INVALID_TEST_DYNAMIC_BACKEND_1)
25 
26 // Wrong external linkage: expected C-style name mangling
27 extern const char* GetBackendId();
28 extern void GetVersion(uint32_t* outMajor, uint32_t* outMinor);
29 extern void* BackendFactory();
30 
31 #else
32 
33 extern "C"
34 {
35 
36 #if defined(INVALID_TEST_DYNAMIC_BACKEND_2)
37 
38 // Invalid interface: missing "GetBackendId()"
39 void GetVersion(uint32_t* outMajor, uint32_t* outMinor);
40 void* BackendFactory();
41 
42 #elif defined(INVALID_TEST_DYNAMIC_BACKEND_3)
43 
44 // Invalid interface: missing "GetVersion()"
45 const char* GetBackendId();
46 void* BackendFactory();
47 
48 #elif defined(INVALID_TEST_DYNAMIC_BACKEND_4)
49 
50 // Invalid interface: missing "BackendFactory()"
51 const char* GetBackendId();
52 void GetVersion(uint32_t* outMajor, uint32_t* outMinor);
53 
54 #elif defined(INVALID_TEST_DYNAMIC_BACKEND_5)  || \
55       defined(INVALID_TEST_DYNAMIC_BACKEND_6)  || \
56       defined(INVALID_TEST_DYNAMIC_BACKEND_7)  || \
57       defined(INVALID_TEST_DYNAMIC_BACKEND_8)  || \
58       defined(INVALID_TEST_DYNAMIC_BACKEND_9)  || \
59       defined(INVALID_TEST_DYNAMIC_BACKEND_10) || \
60       defined(INVALID_TEST_DYNAMIC_BACKEND_11)
61 
62 // The interface is correct, the corresponding invalid changes are in the TestDynamicBackend.cpp file
63 const char* GetBackendId();
64 void GetVersion(uint32_t* outMajor, uint32_t* outMinor);
65 void* BackendFactory();
66 
67 #else
68 
69 #error "Invalid or missing configuration macro for the TestDynamicBackend object"
70 
71 #endif
72 
73 }
74 
75 #endif
76