summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mojo/public/cpp/bindings/tests/validation_test_input_parser.cc6
-rw-r--r--mojo/public/cpp/bindings/tests/validation_unittest.cc2
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
};