IVGCVSW-2081: Move generic backend tests to the backend related CMake files

Change-Id: Ib642b0c983fed21cf38be8233bd13d86f4bf413d
diff --git a/CMakeLists.txt b/CMakeLists.txt
index b33d4b6..dcd097c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -353,31 +353,7 @@
         src/armnn/test/GraphUtils.hpp
         src/armnn/test/InstrumentTests.cpp
         src/armnn/test/ObservableTest.cpp
-        src/armnn/test/OptionalTest.cpp
-        src/backends/test/BackendIdTests.cpp
-        src/backends/test/BackendRegistryTests.cpp
-        src/backends/test/IsLayerSupportedTestImpl.hpp
-        src/backends/test/WorkloadDataValidation.cpp
-        src/backends/test/TensorCopyUtils.hpp
-        src/backends/test/TensorCopyUtils.cpp
-        src/backends/test/LayerTests.hpp
-        src/backends/test/LayerTests.cpp
-        src/backends/test/LayerReleaseConstantDataTest.cpp
-        src/backends/test/Conv2dTestImpl.hpp
-        src/backends/test/ActivationTestImpl.hpp
-        src/backends/test/ActivationFixture.hpp
-        src/backends/test/EndToEndTestImpl.hpp
-        src/backends/test/JsonPrinterTestImpl.hpp
-        src/backends/test/Pooling2dTestImpl.hpp
-        src/backends/test/ReshapeTestImpl.hpp
-        src/backends/test/PermuteTestImpl.hpp
-        src/backends/test/FullyConnectedTestImpl.hpp
-        src/backends/test/SplitterTestImpl.hpp
-        src/backends/test/NormTestImpl.hpp
-        src/backends/test/BatchNormTestImpl.hpp
-        src/backends/test/OptimizedNetworkTests.cpp
-        src/backends/test/WorkloadTestUtils.hpp
-        src/backends/test/QuantizeHelper.hpp)
+        src/armnn/test/OptionalTest.cpp)
 
     if(BUILD_TF_PARSER)
         list(APPEND unittest_sources
diff --git a/src/backends/CMakeLists.txt b/src/backends/CMakeLists.txt
index 843e567..481d21a 100644
--- a/src/backends/CMakeLists.txt
+++ b/src/backends/CMakeLists.txt
@@ -36,6 +36,10 @@
     WorkloadUtils.hpp
 )
 
+if(BUILD_UNIT_TESTS)
+    add_subdirectory(test)
+endif()
+
 add_library(armnnBackendsCommon OBJECT ${armnnBackendsCommon_sources})
 target_include_directories(armnnBackendsCommon PRIVATE ${PROJECT_SOURCE_DIR}/src)
 target_include_directories(armnnBackendsCommon PRIVATE ${PROJECT_SOURCE_DIR}/src/armnn)
diff --git a/src/backends/backends.cmake b/src/backends/backends.cmake
index 57f5a00..caa8b8a 100644
--- a/src/backends/backends.cmake
+++ b/src/backends/backends.cmake
@@ -5,6 +5,7 @@
 
 add_subdirectory(${PROJECT_SOURCE_DIR}/src/backends)
 list(APPEND armnnLibraries armnnBackendsCommon)
+list(APPEND armnnUnitTestLibraries armnnBackendsCommonUnitTests)
 
 # single place to use wildcards, so we can include
 # yet unknown backend modules and corresponding common libraries
diff --git a/src/backends/test/CMakeLists.txt b/src/backends/test/CMakeLists.txt
new file mode 100644
index 0000000..39038cf
--- /dev/null
+++ b/src/backends/test/CMakeLists.txt
@@ -0,0 +1,41 @@
+#
+# Copyright © 2017 Arm Ltd. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
+
+list(APPEND armnnBackendsCommonUnitTests_sources
+    ActivationFixture.hpp
+    ActivationTestImpl.hpp
+    BackendIdTests.cpp
+    BackendRegistryTests.cpp
+    BatchNormTestImpl.hpp
+    Conv2dTestImpl.hpp
+    ConvertFp16ToFp32TestImpl.hpp
+    ConvertFp32ToFp16TestImpl.hpp
+    EndToEndTestImpl.hpp
+    FullyConnectedTestImpl.hpp
+    IsLayerSupportedTestImpl.hpp
+    JsonPrinterTestImpl.hpp
+    LayerReleaseConstantDataTest.cpp
+    LayerTests.cpp
+    LayerTests.hpp
+    LstmTestImpl.hpp
+    NormTestImpl.hpp
+    OptimizedNetworkTests.cpp
+    PermuteTestImpl.hpp
+    Pooling2dTestImpl.hpp
+    QuantizeHelper.hpp
+    ReshapeTestImpl.hpp
+    RuntimeTestImpl.hpp
+    SoftmaxTestImpl.hpp
+    SplitterTestImpl.hpp
+    TensorCopyUtils.cpp
+    TensorCopyUtils.hpp
+    WorkloadDataValidation.cpp
+    WorkloadTestUtils.hpp
+)
+
+add_library(armnnBackendsCommonUnitTests OBJECT ${armnnBackendsCommonUnitTests_sources})
+target_include_directories(armnnBackendsCommonUnitTests PRIVATE ${PROJECT_SOURCE_DIR}/src)
+target_include_directories(armnnBackendsCommonUnitTests PRIVATE ${PROJECT_SOURCE_DIR}/src/armnn)
+target_include_directories(armnnBackendsCommonUnitTests PRIVATE ${PROJECT_SOURCE_DIR}/src/armnnUtils)
\ No newline at end of file