diff options
author | Andreas Stöckel <astoecke@techfak.uni-bielefeld.de> | 2015-02-17 18:45:19 +0100 |
---|---|---|
committer | Andreas Stöckel <astoecke@techfak.uni-bielefeld.de> | 2015-02-17 18:45:19 +0100 |
commit | bf5f5e97d7bb40fd8da4b45dde9aa1bb23105af4 (patch) | |
tree | 3629cb92b35589beac4b9185cab7bbb5a80d24ba | |
parent | 2662f67a6c3cf74bbefff26abeac2c67ee02a57c (diff) |
Added test for bug #79
-rw-r--r-- | test/formats/osml/OsmlParserTest.cpp | 15 | ||||
-rw-r--r-- | testdata/osmlparser/rollback_on_invalid_element.osml | 18 |
2 files changed, 33 insertions, 0 deletions
diff --git a/test/formats/osml/OsmlParserTest.cpp b/test/formats/osml/OsmlParserTest.cpp index a97573b..d12721e 100644 --- a/test/formats/osml/OsmlParserTest.cpp +++ b/test/formats/osml/OsmlParserTest.cpp @@ -91,6 +91,21 @@ TEST(OsmlParser, emptyTypesystem) ASSERT_TRUE(node->isa(&RttiTypes::Typesystem)); ASSERT_EQ("testTypesystem", node->getName()); } + +TEST(OsmlParser, rollbackOnInvalidElement) +{ + OsmlStandaloneEnvironment env(logger); + logger.reset(); + + ASSERT_FALSE(logger.hasError()); + Rooted<Node> node = + env.parse("rollback_on_invalid_element.osml", "", "", RttiSet{&RttiTypes::Node}); + ASSERT_TRUE(logger.hasError()); + + ASSERT_TRUE(node != nullptr); + ASSERT_TRUE(node->isa(&RttiTypes::Document)); +} + TEST(OsmlParser, inlineDomain) { OsmlStandaloneEnvironment env(logger); diff --git a/testdata/osmlparser/rollback_on_invalid_element.osml b/testdata/osmlparser/rollback_on_invalid_element.osml new file mode 100644 index 0000000..671c76d --- /dev/null +++ b/testdata/osmlparser/rollback_on_invalid_element.osml @@ -0,0 +1,18 @@ +\begin{document} + +\domain#testDomain + \struct#test[isRoot=true] + \field + \childRef[ref=a] + \struct#a + \field + \childRef[ref=b] + \struct#b + \primitive[type=string,optional=true] + +\begin{test} +\a{!} +\b +\a +\end{test} +\end{document} |