diff options
-rw-r--r-- | mojo/public/cpp/bindings/tests/validation_test_input_parser.cc | 6 | ||||
-rw-r--r-- | mojo/public/cpp/bindings/tests/validation_unittest.cc | 2 |
2 files changed, 8 insertions, 0 deletions
diff --git a/mojo/public/cpp/bindings/tests/validation_test_input_parser.cc b/mojo/public/cpp/bindings/tests/validation_test_input_parser.cc index 49544ee..f5a5962 100644 --- a/mojo/public/cpp/bindings/tests/validation_test_input_parser.cc +++ b/mojo/public/cpp/bindings/tests/validation_test_input_parser.cc @@ -10,6 +10,7 @@ #include <limits> #include <map> +#include <set> #include <utility> #include "mojo/public/c/system/macros.h" @@ -112,6 +113,7 @@ class ValidationTestInputParser { std::string* error_message_; std::map<std::string, PendingDistanceItem> pending_distance_items_; + std::set<std::string> anchors_; }; #define DATA_TYPE(name, data_size, parse_data_func) \ @@ -329,6 +331,10 @@ bool ValidationTestInputParser::ParseDistance(const DataType& type, bool ValidationTestInputParser::ParseAnchor(const DataType& type, const std::string& value_string) { + if (anchors_.find(value_string) != anchors_.end()) + return false; + anchors_.insert(value_string); + std::map<std::string, PendingDistanceItem>::iterator iter = pending_distance_items_.find(value_string); if (iter == pending_distance_items_.end()) diff --git a/mojo/public/cpp/bindings/tests/validation_unittest.cc b/mojo/public/cpp/bindings/tests/validation_unittest.cc index 2dbbddb..1a1347a 100644 --- a/mojo/public/cpp/bindings/tests/validation_unittest.cc +++ b/mojo/public/cpp/bindings/tests/validation_unittest.cc @@ -364,6 +364,8 @@ TEST(ValidationTest, InputParser) { "[b]1111111k", "[dist4]unmatched", "[anchr]hello [dist8]hello", + "[dist4]a [dist4]a [anchr]a", + "[dist4]a [anchr]a [dist4]a [anchr]a", "0 [handles]50", NULL }; |