From c42a987aa53d0fd842c34dee90abef5a9ff15fa4 Mon Sep 17 00:00:00 2001 From: Colm Donelan Date: Wed, 2 Feb 2022 16:35:09 +0000 Subject: 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 Change-Id: I8824f013d3656658ed0a2904bb79384e3af68641 --- src/backends/neon/test/NeonMemCopyTests.cpp | 40 +++++++++++++++++++++-------- 1 file changed, 30 insertions(+), 10 deletions(-) (limited to 'src/backends/neon/test/NeonMemCopyTests.cpp') 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 +#include +#include +#include +#include -#include +namespace +{ -#include +template <> +struct MemCopyTestHelper +{ + static armnn::IBackendInternal::IMemoryManagerSharedPtr GetMemoryManager() + { + armnn::NeonBackend backend; + return backend.CreateMemoryManager(); + } -#include -#include + static armnn::NeonWorkloadFactory GetFactory( + const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager, + const armnn::ModelOptions& modelOptions = {}) + { + armnn::NeonBackend backend; + return armnn::NeonWorkloadFactory(armnn::PolymorphicPointerDowncast(memoryManager), + backend.CreateBackendSpecificModelContext(modelOptions)); + } +}; +} // namespace -#include TEST_SUITE("NeonMemCopy") { TEST_CASE("CopyBetweenCpuAndNeon") { LayerTestResult result = - MemCopyTest(false); + MemCopyTest(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 result = - MemCopyTest(false); + MemCopyTest(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 result = - MemCopyTest(true); + MemCopyTest(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 result = - MemCopyTest(true); + MemCopyTest(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()); -- cgit v1.2.1