aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRob Hughes <robert.hughes@arm.com>2019-09-11 09:51:13 +0100
committerRob Hughes <robert.hughes@arm.com>2019-09-12 13:46:34 +0000
commit1e0466c4ab26e82abed7f8f263dfe6a2a543cc1a (patch)
tree6fa752c054f863e38e364d09e91cc8913f72f709 /src
parent9bab49686a091d61fd06a05bbf7286f559fdae3d (diff)
downloadarmnn-1e0466c4ab26e82abed7f8f263dfe6a2a543cc1a.tar.gz
Add "explicit" qualifier to Optional -> bool conversion method
This prevents unintended conversions that could lead to incorrect code compiling, e.g. Optional<a> == Optional<b> Also add comparison (==) operator to compare two Optionals. Update unit tests accordingly Change-Id: I6f975de7e666ba1ffe16c3ab50643116c6317135 Signed-off-by: Rob Hughes <robert.hughes@arm.com>
Diffstat (limited to 'src')
-rw-r--r--src/armnn/test/OptionalTest.cpp26
1 files changed, 15 insertions, 11 deletions
diff --git a/src/armnn/test/OptionalTest.cpp b/src/armnn/test/OptionalTest.cpp
index e2054399f1..f36ab34682 100644
--- a/src/armnn/test/OptionalTest.cpp
+++ b/src/armnn/test/OptionalTest.cpp
@@ -25,31 +25,33 @@ BOOST_AUTO_TEST_SUITE(OptionalTests)
BOOST_AUTO_TEST_CASE(SimpleStringTests)
{
armnn::Optional<std::string> optionalString;
- BOOST_TEST(optionalString == false);
+ BOOST_TEST(static_cast<bool>(optionalString) == false);
BOOST_TEST(optionalString.has_value() == false);
+ BOOST_TEST((optionalString == armnn::Optional<std::string>()));
optionalString = std::string("Hello World");
- BOOST_TEST(optionalString == true);
+ BOOST_TEST(static_cast<bool>(optionalString) == true);
BOOST_TEST(optionalString.has_value() == true);
BOOST_TEST(optionalString.value() == "Hello World");
+ BOOST_TEST((optionalString == armnn::Optional<std::string>("Hello World")));
armnn::Optional<std::string> otherString;
otherString = optionalString;
- BOOST_TEST(otherString == true);
+ BOOST_TEST(static_cast<bool>(otherString) == true);
BOOST_TEST(otherString.value() == "Hello World");
optionalString.reset();
- BOOST_TEST(optionalString == false);
+ BOOST_TEST(static_cast<bool>(optionalString) == false);
BOOST_TEST(optionalString.has_value() == false);
const std::string stringValue("Hello World");
armnn::Optional<std::string> optionalString2(stringValue);
- BOOST_TEST(optionalString2 == true);
+ BOOST_TEST(static_cast<bool>(optionalString2) == true);
BOOST_TEST(optionalString2.has_value() == true);
BOOST_TEST(optionalString2.value() == "Hello World");
armnn::Optional<std::string> optionalString3(std::move(optionalString2));
- BOOST_TEST(optionalString3 == true);
+ BOOST_TEST(static_cast<bool>(optionalString3) == true);
BOOST_TEST(optionalString3.has_value() == true);
BOOST_TEST(optionalString3.value() == "Hello World");
}
@@ -96,17 +98,19 @@ BOOST_AUTO_TEST_CASE(SimpleIntTests)
const int intValue = 123;
armnn::Optional<int> optionalInt;
- BOOST_TEST(optionalInt == false);
+ BOOST_TEST(static_cast<bool>(optionalInt) == false);
BOOST_TEST(optionalInt.has_value() == false);
+ BOOST_TEST((optionalInt == armnn::Optional<int>()));
optionalInt = intValue;
- BOOST_TEST(optionalInt == true);
+ BOOST_TEST(static_cast<bool>(optionalInt) == true);
BOOST_TEST(optionalInt.has_value() == true);
BOOST_TEST(optionalInt.value() == intValue);
+ BOOST_TEST((optionalInt == armnn::Optional<int>(intValue)));
armnn::Optional<int> otherOptionalInt;
otherOptionalInt = optionalInt;
- BOOST_TEST(otherOptionalInt == true);
+ BOOST_TEST(static_cast<bool>(otherOptionalInt) == true);
BOOST_TEST(otherOptionalInt.value() == intValue);
}
@@ -137,13 +141,13 @@ BOOST_AUTO_TEST_CASE(ObjectConstructedInPlaceTests)
// Use MakeOptional
armnn::Optional<SimpleObject> optionalObject1 = armnn::MakeOptional<SimpleObject>(objectName, objectValue);
- BOOST_CHECK(optionalObject1 == true);
+ BOOST_CHECK(static_cast<bool>(optionalObject1) == true);
BOOST_CHECK(optionalObject1.has_value() == true);
BOOST_CHECK(optionalObject1.value() == referenceObject);
// Call in-place constructor directly
armnn::Optional<SimpleObject> optionalObject2(CONSTRUCT_IN_PLACE, objectName, objectValue);
- BOOST_CHECK(optionalObject1 == true);
+ BOOST_CHECK(static_cast<bool>(optionalObject1) == true);
BOOST_CHECK(optionalObject1.has_value() == true);
BOOST_CHECK(optionalObject1.value() == referenceObject);
}