aboutsummaryrefslogtreecommitdiff
path: root/src/backends/backendsCommon/test/OptimizedNetworkTests.cpp
diff options
context:
space:
mode:
authorMike Kelly <mike.kelly@arm.com>2020-09-29 20:50:35 +0100
committerTeresaARM <teresa.charlinreyes@arm.com>2020-09-30 11:43:24 +0000
commit3a613cc9103484249ffcd7c63a7ae57783b1ea18 (patch)
tree62c0ed3ef0418494e8f9591a2442f52fde8b3af7 /src/backends/backendsCommon/test/OptimizedNetworkTests.cpp
parentae55dc7bb1ce52d83ccee14f94a5c1d9d218867f (diff)
downloadarmnn-3a613cc9103484249ffcd7c63a7ae57783b1ea18.tar.gz
Refactored Optimize(...) function to throw exceptions instead of returning null
* INetwork::Optimize(...) states that the function should throw an exception if it fails but the implementation in Network.cpp returned null in some scenarios instead. This has led to some confusion amongst users. Signed-off-by: Mike Kelly <mike.kelly@arm.com> Change-Id: I358d1293232c9464772aa0e39ab3355e3570c823
Diffstat (limited to 'src/backends/backendsCommon/test/OptimizedNetworkTests.cpp')
-rw-r--r--src/backends/backendsCommon/test/OptimizedNetworkTests.cpp28
1 files changed, 23 insertions, 5 deletions
diff --git a/src/backends/backendsCommon/test/OptimizedNetworkTests.cpp b/src/backends/backendsCommon/test/OptimizedNetworkTests.cpp
index d82ee0e2fc..c8986f5d4d 100644
--- a/src/backends/backendsCommon/test/OptimizedNetworkTests.cpp
+++ b/src/backends/backendsCommon/test/OptimizedNetworkTests.cpp
@@ -84,8 +84,18 @@ BOOST_AUTO_TEST_CASE(OptimizeValidateDeviceNonSupportLayerNoFallback)
armnn::IRuntimePtr runtime(armnn::IRuntime::Create(options));
std::vector<armnn::BackendId> backends = { armnn::Compute::CpuAcc };
- armnn::IOptimizedNetworkPtr optNet = armnn::Optimize(*net, backends, runtime->GetDeviceSpec());
- BOOST_CHECK(!optNet);
+ std::vector<std::string> errMessages;
+
+ try
+ {
+ Optimize(*net, backends, runtime->GetDeviceSpec(), armnn::OptimizerOptions(), errMessages);
+ BOOST_FAIL("Should have thrown an exception.");
+ }
+ catch (const armnn::InvalidArgumentException& e)
+ {
+ // Different exceptions are thrown on different backends
+ }
+ BOOST_CHECK(errMessages.size() > 0);
}
BOOST_AUTO_TEST_CASE(OptimizeValidateDeviceNonSupportLayerWithFallback)
@@ -190,10 +200,18 @@ BOOST_AUTO_TEST_CASE(OptimizeValidateWorkloadsUndefinedComputeDevice)
armnn::IRuntimePtr runtime(armnn::IRuntime::Create(options));
std::vector<armnn::BackendId> backends = { armnn::Compute::Undefined };
+ std::vector<std::string> errMessages;
- armnn::IOptimizedNetworkPtr optNet = armnn::Optimize(net, backends, runtime->GetDeviceSpec());
- BOOST_CHECK(!optNet);
-
+ try
+ {
+ Optimize(net, backends, runtime->GetDeviceSpec(), armnn::OptimizerOptions(), errMessages);
+ BOOST_FAIL("Should have thrown an exception.");
+ }
+ catch (const armnn::InvalidArgumentException& e)
+ {
+ // Different exceptions are thrown on different backends
+ }
+ BOOST_CHECK(errMessages.size() > 0);
}
BOOST_AUTO_TEST_CASE(OptimizeValidateWorkloadsUndefinedComputeDeviceWithFallback)