diff options
Diffstat (limited to 'src/armnn/test/GraphTests.cpp')
-rw-r--r-- | src/armnn/test/GraphTests.cpp | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/armnn/test/GraphTests.cpp b/src/armnn/test/GraphTests.cpp index 55a01fcc94..602575b352 100644 --- a/src/armnn/test/GraphTests.cpp +++ b/src/armnn/test/GraphTests.cpp @@ -590,4 +590,28 @@ BOOST_AUTO_TEST_CASE(DuplicateLayerNames) BOOST_TEST(((*std::next(it))->GetType() == armnn::LayerType::Output)); } +BOOST_AUTO_TEST_CASE(CheckGraphConstTensorSharing) +{ + armnn::Graph graph0; + const float* sharedWeightPtr; + + { + armnn::Graph graph1; + + armnn::FullyConnectedLayer* const fcLayer = + graph1.AddLayer<armnn::FullyConnectedLayer>(armnn::FullyConnectedDescriptor(), "fc"); + + float weight = 1.0f; + armnn::ConstTensor constTensor({{ 1, 1 }, armnn::DataType::Float32}, &weight); + fcLayer->m_Weight = std::make_shared<armnn::ScopedCpuTensorHandle>(constTensor);; + // point sharedWeightPtr to graph1's const tensor + sharedWeightPtr = fcLayer->m_Weight->GetConstTensor<float>(); + + graph0 = armnn::Graph(graph1); + // graph1 goes out of scope + } + + BOOST_TEST(*sharedWeightPtr == 1); +} + BOOST_AUTO_TEST_SUITE_END() |