diff options
author | Colm Donelan <colm.donelan@arm.com> | 2022-02-02 16:35:09 +0000 |
---|---|---|
committer | Francis Murtagh <francis.murtagh@arm.com> | 2022-02-07 20:07:44 +0000 |
commit | c42a987aa53d0fd842c34dee90abef5a9ff15fa4 (patch) | |
tree | d049993d38a8db54dc18e4c76c998e0598015f18 /src/backends/neon/test/NeonMemCopyTests.cpp | |
parent | 16829713a5d2096c8f0dc989fbb0964a9280777a (diff) | |
download | armnn-c42a987aa53d0fd842c34dee90abef5a9ff15fa4.tar.gz |
IVGCVSW-6635 Move MemCopyTestImpl from acl to armnnTestUtils.
* Move MemCopyTestImpl.hpp from src/backends/aclCommon/test/ to
include/armnnTestutils.
* Refactor MemCopyTests in aclCommon, cl and Neon.
* Introduce RefMemCopyTests to exercise this utility in x86 builds.
Signed-off-by: Colm Donelan <colm.donelan@arm.com>
Change-Id: I8824f013d3656658ed0a2904bb79384e3af68641
Diffstat (limited to 'src/backends/neon/test/NeonMemCopyTests.cpp')
-rw-r--r-- | src/backends/neon/test/NeonMemCopyTests.cpp | 40 |
1 files changed, 30 insertions, 10 deletions
diff --git a/src/backends/neon/test/NeonMemCopyTests.cpp b/src/backends/neon/test/NeonMemCopyTests.cpp index 048509224b..de4195d771 100644 --- a/src/backends/neon/test/NeonMemCopyTests.cpp +++ b/src/backends/neon/test/NeonMemCopyTests.cpp @@ -3,23 +3,43 @@ // SPDX-License-Identifier: MIT // -#include "NeonWorkloadFactoryHelper.hpp" +#include "../NeonWorkloadFactory.hpp" +#include <neon/NeonBackend.hpp> +#include <armnnTestUtils/LayerTestResult.hpp> +#include <armnnTestUtils/MemCopyTestImpl.hpp> +#include <armnnTestUtils/MockBackend.hpp> +#include <doctest/doctest.h> -#include <aclCommon/test/MemCopyTestImpl.hpp> +namespace +{ -#include <neon/NeonWorkloadFactory.hpp> +template <> +struct MemCopyTestHelper<armnn::NeonWorkloadFactory> +{ + static armnn::IBackendInternal::IMemoryManagerSharedPtr GetMemoryManager() + { + armnn::NeonBackend backend; + return backend.CreateMemoryManager(); + } -#include <reference/RefWorkloadFactory.hpp> -#include <reference/test/RefWorkloadFactoryHelper.hpp> + static armnn::NeonWorkloadFactory GetFactory( + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, + const armnn::ModelOptions& modelOptions = {}) + { + armnn::NeonBackend backend; + return armnn::NeonWorkloadFactory(armnn::PolymorphicPointerDowncast<armnn::NeonMemoryManager>(memoryManager), + backend.CreateBackendSpecificModelContext(modelOptions)); + } +}; +} // namespace -#include <doctest/doctest.h> TEST_SUITE("NeonMemCopy") { TEST_CASE("CopyBetweenCpuAndNeon") { LayerTestResult<float, 4> result = - MemCopyTest<armnn::RefWorkloadFactory, armnn::NeonWorkloadFactory, armnn::DataType::Float32>(false); + MemCopyTest<armnn::MockWorkloadFactory, armnn::NeonWorkloadFactory, armnn::DataType::Float32>(false); auto predResult = CompareTensors(result.m_ActualData, result.m_ExpectedData, result.m_ActualShape, result.m_ExpectedShape); CHECK_MESSAGE(predResult.m_Result, predResult.m_Message.str()); @@ -28,7 +48,7 @@ TEST_CASE("CopyBetweenCpuAndNeon") TEST_CASE("CopyBetweenNeonAndCpu") { LayerTestResult<float, 4> result = - MemCopyTest<armnn::NeonWorkloadFactory, armnn::RefWorkloadFactory, armnn::DataType::Float32>(false); + MemCopyTest<armnn::NeonWorkloadFactory, armnn::MockWorkloadFactory, armnn::DataType::Float32>(false); auto predResult = CompareTensors(result.m_ActualData, result.m_ExpectedData, result.m_ActualShape, result.m_ExpectedShape); CHECK_MESSAGE(predResult.m_Result, predResult.m_Message.str()); @@ -37,7 +57,7 @@ TEST_CASE("CopyBetweenNeonAndCpu") TEST_CASE("CopyBetweenCpuAndNeonWithSubtensors") { LayerTestResult<float, 4> result = - MemCopyTest<armnn::RefWorkloadFactory, armnn::NeonWorkloadFactory, armnn::DataType::Float32>(true); + MemCopyTest<armnn::MockWorkloadFactory, armnn::NeonWorkloadFactory, armnn::DataType::Float32>(true); auto predResult = CompareTensors(result.m_ActualData, result.m_ExpectedData, result.m_ActualShape, result.m_ExpectedShape); CHECK_MESSAGE(predResult.m_Result, predResult.m_Message.str()); @@ -46,7 +66,7 @@ TEST_CASE("CopyBetweenCpuAndNeonWithSubtensors") TEST_CASE("CopyBetweenNeonAndCpuWithSubtensors") { LayerTestResult<float, 4> result = - MemCopyTest<armnn::NeonWorkloadFactory, armnn::RefWorkloadFactory, armnn::DataType::Float32>(true); + MemCopyTest<armnn::NeonWorkloadFactory, armnn::MockWorkloadFactory, armnn::DataType::Float32>(true); auto predResult = CompareTensors(result.m_ActualData, result.m_ExpectedData, result.m_ActualShape, result.m_ExpectedShape); CHECK_MESSAGE(predResult.m_Result, predResult.m_Message.str()); |