summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--test/formats/osml/OsmlParserTest.cpp27
-rw-r--r--testdata/osmlparser/include_child.osml4
-rw-r--r--testdata/osmlparser/include_recursive.osml1
-rw-r--r--testdata/osmlparser/include_recursive_root.osml10
-rw-r--r--testdata/osmlparser/include_root.osml20
5 files changed, 62 insertions, 0 deletions
diff --git a/test/formats/osml/OsmlParserTest.cpp b/test/formats/osml/OsmlParserTest.cpp
index d12721e..50e0dcb 100644
--- a/test/formats/osml/OsmlParserTest.cpp
+++ b/test/formats/osml/OsmlParserTest.cpp
@@ -120,5 +120,32 @@ TEST(OsmlParser, inlineDomain)
ASSERT_TRUE(node->isa(&RttiTypes::Document));
}
+TEST(OsmlParser, include)
+{
+ OsmlStandaloneEnvironment env(logger);
+ logger.reset();
+
+ ASSERT_FALSE(logger.hasError());
+ Rooted<Node> node =
+ env.parse("include_root.osml", "", "", RttiSet{&RttiTypes::Node});
+ ASSERT_FALSE(logger.hasError());
+
+ ASSERT_TRUE(node != nullptr);
+ ASSERT_TRUE(node->isa(&RttiTypes::Document));
+}
+
+TEST(OsmlParser, includeRecursive)
+{
+ OsmlStandaloneEnvironment env(logger);
+ logger.reset();
+
+ ASSERT_FALSE(logger.hasError());
+ Rooted<Node> node = env.parse("include_recursive_root.osml", "", "",
+ RttiSet{&RttiTypes::Node});
+ ASSERT_TRUE(logger.hasError());
+
+ ASSERT_TRUE(node != nullptr);
+ ASSERT_TRUE(node->isa(&RttiTypes::Document));
+}
}
diff --git a/testdata/osmlparser/include_child.osml b/testdata/osmlparser/include_child.osml
new file mode 100644
index 0000000..1a47dc9
--- /dev/null
+++ b/testdata/osmlparser/include_child.osml
@@ -0,0 +1,4 @@
+Test
+\b
+Test
+
diff --git a/testdata/osmlparser/include_recursive.osml b/testdata/osmlparser/include_recursive.osml
new file mode 100644
index 0000000..27eabe0
--- /dev/null
+++ b/testdata/osmlparser/include_recursive.osml
@@ -0,0 +1 @@
+\include{include_recursive.osml}
diff --git a/testdata/osmlparser/include_recursive_root.osml b/testdata/osmlparser/include_recursive_root.osml
new file mode 100644
index 0000000..b3e433f
--- /dev/null
+++ b/testdata/osmlparser/include_recursive_root.osml
@@ -0,0 +1,10 @@
+\begin{document}
+
+\domain#testDomain
+ \struct#test[isRoot=true]
+
+\begin{test}
+\include{./include_recursive.osml}
+\end{test}
+\end{document}
+
diff --git a/testdata/osmlparser/include_root.osml b/testdata/osmlparser/include_root.osml
new file mode 100644
index 0000000..1d1d660
--- /dev/null
+++ b/testdata/osmlparser/include_root.osml
@@ -0,0 +1,20 @@
+\begin{document}
+
+\domain#testDomain
+ \struct#test[isRoot=true]
+ \field
+ \childRef[ref=a]
+ \childRef[ref=b]
+ \struct#a
+ \field
+ \childRef[ref=b]
+ \struct#b[transparent=true]
+ \primitive[type=string,optional=true]
+
+\begin{test}
+\a
+\include{./include_child.osml}
+\b
+Test
+\end{test}
+\end{document}