aboutsummaryrefslogtreecommitdiff
path: root/src/backends/reference/test/RefTensorHandleTests.cpp
diff options
context:
space:
mode:
authorFrancis Murtagh <francis.murtagh@arm.com>2021-04-20 16:37:55 +0100
committerFrancis Murtagh <francis.murtagh@arm.com>2021-04-20 16:38:04 +0100
commit4af561666b0ce5c12164447a5f7eb9722abb85f8 (patch)
tree8fc485d875aa91d6920c9104505541fb94b832b6 /src/backends/reference/test/RefTensorHandleTests.cpp
parentec8b333001808f532d17a7ca2efd563f4181ff40 (diff)
downloadarmnn-4af561666b0ce5c12164447a5f7eb9722abb85f8.tar.gz
IVGCVSW-5816 Constant memory access
* Add new class ManagedConstTensorHandle to Unmap when out of scope * Integrate into existing layers that have constants * Add unit tests Signed-off-by: Francis Murtagh <francis.murtagh@arm.com> Change-Id: I0a05e14e438804b37e9862e76b5ca329483f6b45
Diffstat (limited to 'src/backends/reference/test/RefTensorHandleTests.cpp')
-rw-r--r--src/backends/reference/test/RefTensorHandleTests.cpp33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/backends/reference/test/RefTensorHandleTests.cpp b/src/backends/reference/test/RefTensorHandleTests.cpp
index 1ef6de9b32..b04d9d6c52 100644
--- a/src/backends/reference/test/RefTensorHandleTests.cpp
+++ b/src/backends/reference/test/RefTensorHandleTests.cpp
@@ -167,6 +167,39 @@ BOOST_AUTO_TEST_CASE(RefTensorHandleSupportsInPlaceComputation)
ARMNN_ASSERT(!(handleFactory.SupportsInPlaceComputation()));
}
+BOOST_AUTO_TEST_CASE(TestManagedConstTensorHandle)
+{
+ // Initialize arguments
+ void* mem = nullptr;
+ TensorInfo info;
+
+ // Use PassthroughCpuTensor as others are abstract
+ auto passThroughHandle = std::make_shared<PassthroughCpuTensorHandle>(info, mem);
+
+ // Test managed handle is initialized with m_Mapped unset and once Map() called its set
+ ManagedConstTensorHandle managedHandle(passThroughHandle);
+ BOOST_CHECK(!managedHandle.IsMapped());
+ managedHandle.Map();
+ BOOST_CHECK(managedHandle.IsMapped());
+
+ // Test it can then be unmapped
+ managedHandle.Unmap();
+ BOOST_CHECK(!managedHandle.IsMapped());
+
+ // Test member function
+ BOOST_CHECK(managedHandle.GetTensorInfo() == info);
+
+ // Test that nullptr tensor handle doesn't get mapped
+ ManagedConstTensorHandle managedHandleNull(nullptr);
+ BOOST_CHECK(!managedHandleNull.IsMapped());
+ BOOST_CHECK_THROW(managedHandleNull.Map(), armnn::Exception);
+ BOOST_CHECK(!managedHandleNull.IsMapped());
+
+ // Check Unmap() when m_Mapped already false
+ managedHandleNull.Unmap();
+ BOOST_CHECK(!managedHandleNull.IsMapped());
+}
+
#if !defined(__ANDROID__)
// Only run these tests on non Android platforms
BOOST_AUTO_TEST_CASE(CheckSourceType)