blob: 6714a201229eabe4522873b94934c28976f94d3e [file] [log] [blame]
Aron Virginas-Tar29fe58b2018-10-26 15:37:23 +01001#
2# Copyright © 2017 Arm Ltd. All rights reserved.
3# SPDX-License-Identifier: MIT
4#
5
6list(APPEND armnnBackendsCommonUnitTests_sources
7 ActivationFixture.hpp
8 ActivationTestImpl.hpp
9 BackendIdTests.cpp
10 BackendRegistryTests.cpp
11 BatchNormTestImpl.hpp
Matteo Martincighf02e6cd2019-05-17 12:15:30 +010012 CommonTestUtils.cpp
narpra01b9546cf2018-11-20 15:21:28 +000013 CommonTestUtils.hpp
Aron Virginas-Tar29fe58b2018-10-26 15:37:23 +010014 Conv2dTestImpl.hpp
15 ConvertFp16ToFp32TestImpl.hpp
16 ConvertFp32ToFp16TestImpl.hpp
Nattapat Chaimanowongcfdcadf2018-12-06 11:54:33 +000017 DebugTestImpl.hpp
Nattapat Chaimanowong8a54ac02019-03-29 15:25:04 +000018 DequantizeTestImpl.hpp
Narumol Prangnawarat8c7324d2019-05-31 16:42:11 +010019 DequantizeEndToEndTestImpl.hpp
Narumol Prangnawarate0a4ad82019-02-04 19:05:27 +000020 DetectionPostProcessLayerTestImpl.hpp
Narumol Prangnawarat6d302bf2019-02-04 11:46:26 +000021 DetectionPostProcessTestImpl.hpp
Matteo Martincighac60d282019-07-25 15:25:44 +010022 DynamicBackendTests.cpp
23 DynamicBackendTests.hpp
Aron Virginas-Tar29fe58b2018-10-26 15:37:23 +010024 EndToEndTestImpl.hpp
25 FullyConnectedTestImpl.hpp
narpra01db2b1602019-01-23 15:23:11 +000026 GatherTestImpl.hpp
27 GatherEndToEndTestImpl.hpp
Aron Virginas-Tar29fe58b2018-10-26 15:37:23 +010028 IsLayerSupportedTestImpl.hpp
Aron Virginas-Tar69362cc2018-11-22 15:04:42 +000029 JsonPrinterTestImpl.cpp
Aron Virginas-Tar29fe58b2018-10-26 15:37:23 +010030 JsonPrinterTestImpl.hpp
31 LayerReleaseConstantDataTest.cpp
32 LayerTests.cpp
33 LayerTests.hpp
34 LstmTestImpl.hpp
35 NormTestImpl.hpp
Jim Flynne242f2d2019-05-22 14:24:13 +010036 ConcatTestImpl.hpp
Matteo Martincigh88054f82019-05-17 12:15:30 +010037 MockBackend.cpp
38 MockBackend.hpp
39 MockBackendId.hpp
Aron Virginas-Tar29fe58b2018-10-26 15:37:23 +010040 OptimizedNetworkTests.cpp
Matteo Martincighf02e6cd2019-05-17 12:15:30 +010041 OptimizeSubgraphViewTests.cpp
David Monahan005288d2019-05-14 10:42:38 +010042 OptimizationViewsTests.cpp
Aron Virginas-Tar29fe58b2018-10-26 15:37:23 +010043 PermuteTestImpl.hpp
44 Pooling2dTestImpl.hpp
Nikhil Raj747f5862019-07-19 15:15:23 +010045 PreluEndToEndTestImpl.hpp
Aron Virginas-Tar29fe58b2018-10-26 15:37:23 +010046 QuantizeHelper.hpp
Nattapat Chaimanowonga0beb3b2019-04-01 17:04:53 +010047 QuantizeTestImpl.hpp
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +010048 ResizeEndToEndTestImpl.hpp
Aron Virginas-Tar29fe58b2018-10-26 15:37:23 +010049 RuntimeTestImpl.hpp
50 SoftmaxTestImpl.hpp
Keith Davisa57eccb2019-06-14 17:33:22 +010051 SpaceToDepthTestImpl.hpp
Keith Davis9515c7e2019-06-21 09:33:59 +010052 SpaceToDepthEndToEndTestImpl.hpp
Narumol Prangnawarat0be43382019-05-27 11:29:59 +010053 SplitterEndToEndTestImpl.hpp
Aron Virginas-Tar29fe58b2018-10-26 15:37:23 +010054 SplitterTestImpl.hpp
Nattapat Chaimanowong1216b582018-11-23 15:33:41 +000055 StridedSliceTestImpl.hpp
Aron Virginas-Tar29fe58b2018-10-26 15:37:23 +010056 TensorCopyUtils.cpp
57 TensorCopyUtils.hpp
58 WorkloadDataValidation.cpp
Aron Virginas-Tar56055192018-11-12 18:10:43 +000059 WorkloadFactoryHelper.hpp
Aron Virginas-Tar29fe58b2018-10-26 15:37:23 +010060 WorkloadTestUtils.hpp
61)
62
63add_library(armnnBackendsCommonUnitTests OBJECT ${armnnBackendsCommonUnitTests_sources})
Aron Virginas-Tar29fe58b2018-10-26 15:37:23 +010064target_include_directories(armnnBackendsCommonUnitTests PRIVATE ${PROJECT_SOURCE_DIR}/src/armnn)
Aron Virginas-Tarc9cc8042018-11-01 16:15:57 +000065target_include_directories(armnnBackendsCommonUnitTests PRIVATE ${PROJECT_SOURCE_DIR}/src/armnnUtils)
Nattapat Chaimanowong1216b582018-11-23 15:33:41 +000066target_include_directories(armnnBackendsCommonUnitTests PRIVATE ${PROJECT_SOURCE_DIR}/src/backends)
Matteo Martincigh986c1862019-07-26 15:12:47 +010067
68# Dummy shared object for testing.
69# This is a simple library used to test the utility functions that will be used to handle the shared objects.
70
Matteo Martincighd0dc7702019-08-01 17:09:03 +010071list(APPEND testSharedObject_sources
Matteo Martincigh986c1862019-07-26 15:12:47 +010072 TestSharedObject.cpp
73 TestSharedObject.hpp
74)
75
Matteo Martincighd0dc7702019-08-01 17:09:03 +010076add_library_ex(TestSharedObject MODULE ${testSharedObject_sources})
77set_target_properties(TestSharedObject PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/testSharedObject)
78file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/testSharedObject/libNoSharedObject.txt "This is not a shared object")
Matteo Martincighbc2e2102019-07-24 14:56:13 +010079
80# Dummy dynamic backends for testing.
81# Both a valid and a number of invalid dummy dynamic backends (covering various use cases) share the
82# same source code. The various test cases are put together in the code using compiler directives.
83
Matteo Martincighd0dc7702019-08-01 17:09:03 +010084list(APPEND testDynamicBackend_sources
Matteo Martincighbc2e2102019-07-24 14:56:13 +010085 TestDynamicBackend.cpp
86 TestDynamicBackend.hpp
87)
88
Matteo Martincighd0dc7702019-08-01 17:09:03 +010089add_library_ex(ValidTestDynamicBackend MODULE ${testDynamicBackend_sources})
Matteo Martincighe54aa062019-08-05 14:12:11 +010090target_compile_definitions(ValidTestDynamicBackend PRIVATE -DVALID_TEST_DYNAMIC_BACKEND_1)
Matteo Martincighd0dc7702019-08-01 17:09:03 +010091target_include_directories(ValidTestDynamicBackend PRIVATE ${PROJECT_SOURCE_DIR}/src/armnn)
92target_include_directories(ValidTestDynamicBackend PRIVATE ${PROJECT_SOURCE_DIR}/src/backends)
93target_link_libraries(ValidTestDynamicBackend armnn)
94set_target_properties(ValidTestDynamicBackend PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/testDynamicBackend)
Matteo Martincighbc2e2102019-07-24 14:56:13 +010095
Matteo Martincighd0dc7702019-08-01 17:09:03 +010096add_library_ex(InvalidTestDynamicBackend1 MODULE ${testDynamicBackend_sources})
97target_compile_definitions(InvalidTestDynamicBackend1 PRIVATE -DINVALID_TEST_DYNAMIC_BACKEND_1)
98target_include_directories(InvalidTestDynamicBackend1 PRIVATE ${PROJECT_SOURCE_DIR}/src/armnn)
99target_include_directories(InvalidTestDynamicBackend1 PRIVATE ${PROJECT_SOURCE_DIR}/src/backends)
100target_link_libraries(InvalidTestDynamicBackend1 armnn)
101set_target_properties(InvalidTestDynamicBackend1 PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/testDynamicBackend)
Matteo Martincighbc2e2102019-07-24 14:56:13 +0100102
Matteo Martincighd0dc7702019-08-01 17:09:03 +0100103add_library_ex(InvalidTestDynamicBackend2 MODULE ${testDynamicBackend_sources})
104target_compile_definitions(InvalidTestDynamicBackend2 PRIVATE -DINVALID_TEST_DYNAMIC_BACKEND_2)
105target_include_directories(InvalidTestDynamicBackend2 PRIVATE ${PROJECT_SOURCE_DIR}/src/armnn)
106target_include_directories(InvalidTestDynamicBackend2 PRIVATE ${PROJECT_SOURCE_DIR}/src/backends)
107target_link_libraries(InvalidTestDynamicBackend2 armnn)
108set_target_properties(InvalidTestDynamicBackend2 PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/testDynamicBackend)
Matteo Martincighbc2e2102019-07-24 14:56:13 +0100109
Matteo Martincighd0dc7702019-08-01 17:09:03 +0100110add_library_ex(InvalidTestDynamicBackend3 MODULE ${testDynamicBackend_sources})
111target_compile_definitions(InvalidTestDynamicBackend3 PRIVATE -DINVALID_TEST_DYNAMIC_BACKEND_3)
112target_include_directories(InvalidTestDynamicBackend3 PRIVATE ${PROJECT_SOURCE_DIR}/src/armnn)
113target_include_directories(InvalidTestDynamicBackend3 PRIVATE ${PROJECT_SOURCE_DIR}/src/backends)
114target_link_libraries(InvalidTestDynamicBackend3 armnn)
115set_target_properties(InvalidTestDynamicBackend3 PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/testDynamicBackend)
Matteo Martincighbc2e2102019-07-24 14:56:13 +0100116
Matteo Martincighd0dc7702019-08-01 17:09:03 +0100117add_library_ex(InvalidTestDynamicBackend4 MODULE ${testDynamicBackend_sources})
118target_compile_definitions(InvalidTestDynamicBackend4 PRIVATE -DINVALID_TEST_DYNAMIC_BACKEND_4)
119target_include_directories(InvalidTestDynamicBackend4 PRIVATE ${PROJECT_SOURCE_DIR}/src/armnn)
120target_include_directories(InvalidTestDynamicBackend4 PRIVATE ${PROJECT_SOURCE_DIR}/src/backends)
121target_link_libraries(InvalidTestDynamicBackend4 armnn)
122set_target_properties(InvalidTestDynamicBackend4 PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/testDynamicBackend)
Matteo Martincighbc2e2102019-07-24 14:56:13 +0100123
Matteo Martincighd0dc7702019-08-01 17:09:03 +0100124add_library_ex(InvalidTestDynamicBackend5 MODULE ${testDynamicBackend_sources})
125target_compile_definitions(InvalidTestDynamicBackend5 PRIVATE -DINVALID_TEST_DYNAMIC_BACKEND_5)
126target_include_directories(InvalidTestDynamicBackend5 PRIVATE ${PROJECT_SOURCE_DIR}/src/armnn)
127target_include_directories(InvalidTestDynamicBackend5 PRIVATE ${PROJECT_SOURCE_DIR}/src/backends)
128target_link_libraries(InvalidTestDynamicBackend5 armnn)
129set_target_properties(InvalidTestDynamicBackend5 PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/testDynamicBackend)
Matteo Martincighbc2e2102019-07-24 14:56:13 +0100130
Matteo Martincighd0dc7702019-08-01 17:09:03 +0100131add_library_ex(InvalidTestDynamicBackend6 MODULE ${testDynamicBackend_sources})
132target_compile_definitions(InvalidTestDynamicBackend6 PRIVATE -DINVALID_TEST_DYNAMIC_BACKEND_6)
133target_include_directories(InvalidTestDynamicBackend6 PRIVATE ${PROJECT_SOURCE_DIR}/src/armnn)
134target_include_directories(InvalidTestDynamicBackend6 PRIVATE ${PROJECT_SOURCE_DIR}/src/backends)
135target_link_libraries(InvalidTestDynamicBackend6 armnn)
136set_target_properties(InvalidTestDynamicBackend6 PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/testDynamicBackend)
Matteo Martincighbc2e2102019-07-24 14:56:13 +0100137
Matteo Martincighd0dc7702019-08-01 17:09:03 +0100138add_library_ex(InvalidTestDynamicBackend7 MODULE ${testDynamicBackend_sources})
139target_compile_definitions(InvalidTestDynamicBackend7 PRIVATE -DINVALID_TEST_DYNAMIC_BACKEND_7)
140target_include_directories(InvalidTestDynamicBackend7 PRIVATE ${PROJECT_SOURCE_DIR}/src/armnn)
141target_include_directories(InvalidTestDynamicBackend7 PRIVATE ${PROJECT_SOURCE_DIR}/src/backends)
142target_link_libraries(InvalidTestDynamicBackend7 armnn)
143set_target_properties(InvalidTestDynamicBackend7 PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/testDynamicBackend)
Matteo Martincighf0a0a9e2019-08-05 15:27:55 +0100144
145# Dummy files and directories for testing the dynamic backend file parsing.
146
147file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/backendsTestPath1/Arm_GpuAcc_backend.so "Test file for dynamic backend file parsing")
148file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/backendsTestPath1/Arm_GpuAcc_backend.so.1 "Test file for dynamic backend file parsing")
149file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/backendsTestPath1/Arm_GpuAcc_backend.so.1.2 "Test file for dynamic backend file parsing")
150file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/backendsTestPath1/Arm_GpuAcc_backend.so.1.2.3 "Test file for dynamic backend file parsing")
151file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/backendsTestPath1/Arm_GpuAcc_backend.so.10.1.27 "Test file for dynamic backend file parsing")
152file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/backendsTestPath1/Arm_GpuAcc_backend.so.10.1.33. "Test file for dynamic backend file parsing")
153file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/backendsTestPath1/Arm_GpuAcc_backend.so.3.4..5 "Test file for dynamic backend file parsing")
154file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/backendsTestPath1/Arm_GpuAcc_backend.so.1,1.1 "Test file for dynamic backend file parsing")
155
156file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/backendsTestPath1/Arm123_GpuAcc_backend.so "Test file for dynamic backend file parsing")
157file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/backendsTestPath1/Arm_GpuAcc456_backend.so "Test file for dynamic backend file parsing")
158file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/backendsTestPath1/Arm%Co_GpuAcc_backend.so "Test file for dynamic backend file parsing")
159file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/backendsTestPath1/Arm_Gpu.Acc_backend.so "Test file for dynamic backend file parsing")
160
161file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/backendsTestPath1/GpuAcc_backend.so "Test file for dynamic backend file parsing")
162file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/backendsTestPath1/_GpuAcc_backend.so "Test file for dynamic backend file parsing")
163file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/backendsTestPath1/Arm__backend.so "Test file for dynamic backend file parsing")
164file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/backendsTestPath1/Arm_GpuAcc.so "Test file for dynamic backend file parsing")
165file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/backendsTestPath1/__backend.so "Test file for dynamic backend file parsing")
166file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/backendsTestPath1/__.so "Test file for dynamic backend file parsing")
167
168file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/backendsTestPath1/Arm_GpuAcc_backend "Test file for dynamic backend file parsing")
169file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/backendsTestPath1/Arm_GpuAcc_backend_v1.2.so "Test file for dynamic backend file parsing")
170
171file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/backendsTestPath2/Arm_CpuAcc_backend.so "Test file for dynamic backend file parsing")
172add_custom_target(link_dummy_dynamic_backend ALL
173 COMMAND ${CMAKE_COMMAND} -E create_symlink Arm_CpuAcc_backend.so backendsTestPath2/Arm_CpuAcc_backend.so.1
174 COMMAND ${CMAKE_COMMAND} -E create_symlink Arm_CpuAcc_backend.so.1 backendsTestPath2/Arm_CpuAcc_backend.so.1.2
175 COMMAND ${CMAKE_COMMAND} -E create_symlink Arm_CpuAcc_backend.so.1.2 backendsTestPath2/Arm_CpuAcc_backend.so.1.2.3
176 COMMAND ${CMAKE_COMMAND} -E create_symlink nothing backendsTestPath2/Arm_no_backend.so)
177file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/backendsTestPath2/Arm_GpuAcc_backend.so "Test file for dynamic backend file parsing")
178
179file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/backendsTestPath3)
Matteo Martincighe54aa062019-08-05 14:12:11 +0100180
181# Dummy dynamic backends for testing.
182# These shared objects are used to test the creation of dynamic backend instances in ArmNN.
183
184add_library_ex(Arm_TestValid2_backend MODULE ${testDynamicBackend_sources})
185target_compile_definitions(Arm_TestValid2_backend PRIVATE -DVALID_TEST_DYNAMIC_BACKEND_2)
186target_include_directories(Arm_TestValid2_backend PRIVATE ${PROJECT_SOURCE_DIR}/src/armnn)
187target_include_directories(Arm_TestValid2_backend PRIVATE ${PROJECT_SOURCE_DIR}/src/backends)
188target_link_libraries(Arm_TestValid2_backend armnn)
189set_target_properties(Arm_TestValid2_backend PROPERTIES PREFIX "")
190set_target_properties(Arm_TestValid2_backend PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/backendsTestPath5)
191add_custom_command(TARGET Arm_TestValid2_backend POST_BUILD
192 COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:Arm_TestValid2_backend> ${CMAKE_CURRENT_BINARY_DIR}/backendsTestPath6)
193
194add_library_ex(Arm_TestValid3_backend MODULE ${testDynamicBackend_sources})
195target_compile_definitions(Arm_TestValid3_backend PRIVATE -DVALID_TEST_DYNAMIC_BACKEND_3)
196target_include_directories(Arm_TestValid3_backend PRIVATE ${PROJECT_SOURCE_DIR}/src/armnn)
197target_include_directories(Arm_TestValid3_backend PRIVATE ${PROJECT_SOURCE_DIR}/src/backends)
198target_link_libraries(Arm_TestValid3_backend armnn)
199set_target_properties(Arm_TestValid3_backend PROPERTIES PREFIX "")
200set_target_properties(Arm_TestValid3_backend PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/backendsTestPath5)
201
202add_library_ex(Arm_TestInvalid8_backend MODULE ${testDynamicBackend_sources})
203target_compile_definitions(Arm_TestInvalid8_backend PRIVATE -DINVALID_TEST_DYNAMIC_BACKEND_8)
204target_include_directories(Arm_TestInvalid8_backend PRIVATE ${PROJECT_SOURCE_DIR}/src/armnn)
205target_include_directories(Arm_TestInvalid8_backend PRIVATE ${PROJECT_SOURCE_DIR}/src/backends)
206target_link_libraries(Arm_TestInvalid8_backend armnn)
207set_target_properties(Arm_TestInvalid8_backend PROPERTIES PREFIX "")
208set_target_properties(Arm_TestInvalid8_backend PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/backendsTestPath5)
209
210add_library_ex(Arm_TestValid4_backend MODULE ${testDynamicBackend_sources})
211target_compile_definitions(Arm_TestValid4_backend PRIVATE -DVALID_TEST_DYNAMIC_BACKEND_4)
212target_include_directories(Arm_TestValid4_backend PRIVATE ${PROJECT_SOURCE_DIR}/src/armnn)
213target_include_directories(Arm_TestValid4_backend PRIVATE ${PROJECT_SOURCE_DIR}/src/backends)
214target_link_libraries(Arm_TestValid4_backend armnn)
215set_target_properties(Arm_TestValid4_backend PROPERTIES PREFIX "")
216set_target_properties(Arm_TestValid4_backend PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/backendsTestPath6)
217
218add_library_ex(Arm_TestInvalid9_backend MODULE ${testDynamicBackend_sources})
219target_compile_definitions(Arm_TestInvalid9_backend PRIVATE -DINVALID_TEST_DYNAMIC_BACKEND_9)
220target_include_directories(Arm_TestInvalid9_backend PRIVATE ${PROJECT_SOURCE_DIR}/src/armnn)
221target_include_directories(Arm_TestInvalid9_backend PRIVATE ${PROJECT_SOURCE_DIR}/src/backends)
222target_link_libraries(Arm_TestInvalid9_backend armnn)
223set_target_properties(Arm_TestInvalid9_backend PROPERTIES PREFIX "")
224set_target_properties(Arm_TestInvalid9_backend PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/backendsTestPath6)
225
226file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/backendsTestPath7)