aboutsummaryrefslogtreecommitdiff
path: root/tests/framework
diff options
context:
space:
mode:
authorAnthony Barbier <anthony.barbier@arm.com>2017-11-09 19:40:42 +0000
committerAnthony Barbier <anthony.barbier@arm.com>2018-11-02 16:35:24 +0000
commit4a4a1649522ae837746d2bd195050621e176f451 (patch)
tree8b5cfda415364485c402a3b01a738d402646aad2 /tests/framework
parent6e4334962913a4b4d88d3d2b9d76ef2b7850a56c (diff)
downloadComputeLibrary-4a4a1649522ae837746d2bd195050621e176f451.tar.gz
COMPMID-556: When an EnumListOption contains some invalid values: still keep the valid ones
Change-Id: I4f5acc9af09587f0ec46482f6aea737fa42f35fc Reviewed-on: http://mpd-gerrit.cambridge.arm.com/95186 Tested-by: Kaizen <jeremy.johnson+kaizengerrit@arm.com> Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com>
Diffstat (limited to 'tests/framework')
-rw-r--r--tests/framework/command_line/EnumListOption.h26
1 files changed, 13 insertions, 13 deletions
diff --git a/tests/framework/command_line/EnumListOption.h b/tests/framework/command_line/EnumListOption.h
index d19bfbdc0f..6155a5da4c 100644
--- a/tests/framework/command_line/EnumListOption.h
+++ b/tests/framework/command_line/EnumListOption.h
@@ -87,12 +87,12 @@ bool EnumListOption<T>::parse(std::string value)
_values.clear();
_is_set = true;
- try
- {
- std::stringstream stream{ value };
- std::string item;
+ std::stringstream stream{ value };
+ std::string item;
- while(!std::getline(stream, item, ',').fail())
+ while(!std::getline(stream, item, ',').fail())
+ {
+ try
{
std::stringstream item_stream(item);
T typed_value{};
@@ -103,8 +103,8 @@ bool EnumListOption<T>::parse(std::string value)
{
if(_allowed_values.count(typed_value) == 0)
{
- _values.clear();
- return false;
+ _is_set = false;
+ continue;
}
_values.emplace_back(typed_value);
@@ -112,13 +112,13 @@ bool EnumListOption<T>::parse(std::string value)
_is_set = _is_set && !item_stream.fail();
}
-
- return _is_set;
- }
- catch(const std::invalid_argument &)
- {
- return false;
+ catch(const std::invalid_argument &)
+ {
+ _is_set = false;
+ }
}
+
+ return _is_set;
}
template <typename T>