about summary refs log tree commit diff stats
path: root/tangle/003tangle.test.cc
diff options
context:
space:
mode:
authorKartik Agaram <vc@akkartik.com>2018-07-25 15:26:58 -0700
committerKartik Agaram <vc@akkartik.com>2018-07-25 15:26:58 -0700
commit00c2ca083e004e9fdf3176f3362fd3b1091370ae (patch)
tree7ab794a0983ac20dac936ff0d05db87cfc0494b6 /tangle/003tangle.test.cc
parenta18f5328ebe8d5cb878c90bf9ca03c1ab864a7d2 (diff)
downloadmu-00c2ca083e004e9fdf3176f3362fd3b1091370ae.tar.gz
4406
Fix CI.
Diffstat (limited to 'tangle/003tangle.test.cc')
-rw-r--r--tangle/003tangle.test.cc23
1 files changed, 23 insertions, 0 deletions
diff --git a/tangle/003tangle.test.cc b/tangle/003tangle.test.cc
index 4a1dc8de..732c8f2e 100644
--- a/tangle/003tangle.test.cc
+++ b/tangle/003tangle.test.cc
@@ -660,6 +660,29 @@ void test_tangle_can_handle_mu_comments_in_scenario() {
   CHECK(lines.empty());
 }
 
+void test_tangle_can_interleave_present_and_absent_lines_to_kludgily_avoid_specifying_order() {
+  istringstream in(":(scenario does_bar)\n"
+                   "abc def\n"
+                   "+layer1: pqr\n"
+                   "-absent\n"
+                   "+layer2: xyz");
+  list<Line> lines;
+  tangle(in, lines);
+  CHECK_EQ(lines.front().contents, "void test_does_bar() {");  lines.pop_front();
+  CHECK_EQ(lines.front().contents, "  run(");  lines.pop_front();
+  CHECK_EQ(lines.front().contents, "      \"abc def\\n\"");  lines.pop_front();
+  CHECK_EQ(lines.front().contents, "  );");  lines.pop_front();
+  CHECK_EQ(lines.front().contents, "  CHECK_TRACE_CONTENTS(");  lines.pop_front();
+  CHECK_EQ(lines.front().contents, "      \"layer1: pqr\"");  lines.pop_front();
+  CHECK_EQ(lines.front().contents, "  );");  lines.pop_front();
+  CHECK_EQ(lines.front().contents, "  CHECK_TRACE_DOESNT_CONTAIN(\"absent\");");  lines.pop_front();
+  CHECK_EQ(lines.front().contents, "  CHECK_TRACE_CONTENTS(");  lines.pop_front();
+  CHECK_EQ(lines.front().contents, "      \"layer2: xyz\"");  lines.pop_front();
+  CHECK_EQ(lines.front().contents, "  );");  lines.pop_front();
+  CHECK_EQ(lines.front().contents, "}");  lines.pop_front();
+  CHECK(lines.empty());
+}
+
 //// helpers
 
 void test_trim() {