about summary refs log tree commit diff stats
path: root/tangle/003tangle.test.cc
diff options
context:
space:
mode:
Diffstat (limited to 'tangle/003tangle.test.cc')
-rw-r--r--tangle/003tangle.test.cc392
1 files changed, 0 insertions, 392 deletions
diff --git a/tangle/003tangle.test.cc b/tangle/003tangle.test.cc
deleted file mode 100644
index c7cc96b4..00000000
--- a/tangle/003tangle.test.cc
+++ /dev/null
@@ -1,392 +0,0 @@
-void test_tangle() {
-  istringstream in("a\n"
-                   "b\n"
-                   "c\n"
-                   ":(before b)\n"
-                   "d\n");
-  list<Line> dummy;
-  tangle(in, dummy);
-  CHECK_TRACE_CONTENTS("tangle", "a\n"
-                                 "d\n"
-                                 "b\n"
-                                 "c\n");
-}
-
-void test_tangle_with_linenumber() {
-  istringstream in("a\n"
-                   "b\n"
-                   "c\n"
-                   ":(before b)\n"
-                   "d\n");
-  list<Line> dummy;
-  tangle(in, dummy);
-  CHECK_TRACE_CONTENTS("tangle", "#line 1\n"
-                                 "a\n"
-                                 "#line 5\n"
-                                 "d\n"
-                                 "#line 2\n"
-                                 "b\n"
-                                 "c\n");
-  // no other #line directives
-  CHECK_TRACE_DOESNT_CONTAIN("tangle", "#line 3");
-  CHECK_TRACE_DOESNT_CONTAIN("tangle", "#line 4");
-}
-
-void test_tangle_linenumbers_with_filename() {
-  istringstream in("a\n"
-                   "b\n"
-                   "c\n"
-                   ":(before b)\n"
-                   "d\n");
-  list<Line> dummy;
-  tangle(in, "foo", dummy);
-  CHECK_TRACE_CONTENTS("tangle", "a\n"
-                                 "#line 5 \"foo\"\n"
-                                 "d\n"
-                                 "b\n"
-                                 "c\n");
-}
-
-void test_tangle_line_numbers_with_multiple_filenames() {
-  istringstream in1("a\n"
-                    "b\n"
-                    "c");
-  list<Line> dummy;
-  tangle(in1, "foo", dummy);
-  CLEAR_TRACE;
-  istringstream in2(":(before b)\n"
-                    "d\n");
-  tangle(in2, "bar", dummy);
-  CHECK_TRACE_CONTENTS("tangle", "a\n"
-                                 "#line 2 \"bar\"\n"
-                                 "d\n"
-                                 "#line 2 \"foo\"\n"
-                                 "b\n"
-                                 "c\n");
-}
-
-void test_tangle_linenumbers_with_multiple_directives() {
-  istringstream in1("a\n"
-                    "b\n"
-                    "c");
-  list<Line> dummy;
-  tangle(in1, "foo", dummy);
-  CLEAR_TRACE;
-  istringstream in2(":(before b)\n"
-                    "d\n"
-                    ":(before c)\n"
-                    "e");
-  tangle(in2, "bar", dummy);
-  CHECK_TRACE_CONTENTS("tangle", "a\n"
-                                 "#line 2 \"bar\"\n"
-                                 "d\n"
-                                 "#line 2 \"foo\"\n"
-                                 "b\n"
-                                 "#line 4 \"bar\"\n"
-                                 "e\n"
-                                 "#line 3 \"foo\"\n"
-                                 "c\n");
-}
-
-void test_tangle_with_multiple_filenames_after() {
-  istringstream in1("a\n"
-                    "b\n"
-                    "c");
-  list<Line> dummy;
-  tangle(in1, "foo", dummy);
-  CLEAR_TRACE;
-  istringstream in2(":(after b)\n"
-                    "d\n");
-  tangle(in2, "bar", dummy);
-  CHECK_TRACE_CONTENTS("tangle", "a\n"
-                                 "b\n"
-                                 "#line 2 \"bar\"\n"
-                                 "d\n"
-                                 "#line 3 \"foo\"\n"
-                                 "c\n");
-}
-
-void test_tangle_skip_tanglecomments() {
-  istringstream in("a\n"
-                   "b\n"
-                   "c\n"
-                   "//: 1\n"
-                   "//: 2\n"
-                   "d\n");
-  list<Line> dummy;
-  tangle(in, dummy);
-  CHECK_TRACE_CONTENTS("tangle", "a\n"
-                                 "b\n"
-                                 "c\n"
-                                 "\n"
-                                 "\n"
-                                 "d\n");
-  CHECK_TRACE_DOESNT_CONTAIN("tangle", "//: 1");
-}
-
-void test_tangle_with_tanglecomments_and_directive() {
-  istringstream in("a\n"
-                   "//: 1\n"
-                   "b\n"
-                   "c\n"
-                   ":(before b)\n"
-                   "d\n"
-                   ":(code)\n"
-                   "e\n");
-  list<Line> dummy;
-  tangle(in, dummy);
-  CHECK_TRACE_CONTENTS("tangle", "a\n"
-                                 "#line 6\n"
-                                 "d\n"
-                                 "#line 3\n"
-                                 "b\n"
-                                 "c\n"
-                                 "#line 8\n"
-                                 "e\n");
-  CHECK_TRACE_DOESNT_CONTAIN("tangle", "//: 1");
-}
-
-void test_tangle_with_tanglecomments_inside_directive() {
-  istringstream in("a\n"
-                   "//: 1\n"
-                   "b\n"
-                   "c\n"
-                   ":(before b)\n"
-                   "//: abc\n"
-                   "d\n"
-                   ":(code)\n"
-                   "e\n");
-  list<Line> dummy;
-  tangle(in, dummy);
-  CHECK_TRACE_CONTENTS("tangle", "a\n"
-                                 "#line 7\n"
-                                 "d\n"
-                                 "#line 3\n"
-                                 "b\n"
-                                 "c\n"
-                                 "#line 9\n"
-                                 "e\n");
-  CHECK_TRACE_DOESNT_CONTAIN("tangle", "//: 1");
-}
-
-void test_tangle_with_multiword_directives() {
-  istringstream in("a b\n"
-                   "c\n"
-                   ":(after \"a b\")\n"
-                   "d\n");
-  list<Line> dummy;
-  tangle(in, dummy);
-  CHECK_TRACE_CONTENTS("tangle", "a b\n"
-                                 "d\n"
-                                 "c\n");
-}
-
-void test_tangle_with_quoted_multiword_directives() {
-  istringstream in("a \"b\"\n"
-                   "c\n"
-                   ":(after \"a \\\"b\\\"\")\n"
-                   "d\n");
-  list<Line> dummy;
-  tangle(in, dummy);
-  CHECK_TRACE_CONTENTS("tangle", "a \"b\"\n"
-                                 "d\n"
-                                 "c\n");
-}
-
-void test_tangle2() {
-  istringstream in("a\n"
-                   "b\n"
-                   "c\n"
-                   ":(after b)\n"
-                   "d\n");
-  list<Line> dummy;
-  tangle(in, dummy);
-  CHECK_TRACE_CONTENTS("tangle", "a\n"
-                                 "b\n"
-                                 "d\n"
-                                 "c\n");
-}
-
-void test_tangle_at_end() {
-  istringstream in("a\n"
-                   "b\n"
-                   "c\n"
-                   ":(after c)\n"
-                   "d\n");
-  list<Line> dummy;
-  tangle(in, dummy);
-  CHECK_TRACE_CONTENTS("tangle", "a\n"
-                                 "b\n"
-                                 "c\n"
-                                 "d\n");
-}
-
-void test_tangle_indents_hunks_correctly() {
-  istringstream in("a\n"
-                   "  b\n"
-                   "c\n"
-                   ":(after b)\n"
-                   "d\n");
-  list<Line> dummy;
-  tangle(in, dummy);
-  CHECK_TRACE_CONTENTS("tangle", "a\n"
-                                 "  b\n"
-                                 "  d\n"
-                                 "c\n");
-}
-
-void test_tangle_warns_on_missing_target() {
-  Hide_warnings = true;
-  istringstream in(":(before)\n"
-                   "abc def\n");
-  list<Line> lines;
-  tangle(in, lines);
-  CHECK_TRACE_WARNS();
-}
-
-void test_tangle_warns_on_unknown_target() {
-  Hide_warnings = true;
-  istringstream in(":(before \"foo\")\n"
-                   "abc def\n");
-  list<Line> lines;
-  tangle(in, lines);
-  CHECK_TRACE_WARNS();
-}
-
-void test_tangle_delete_range_of_lines() {
-  istringstream in("a\n"
-                   "b {\n"
-                   "c\n"
-                   "}\n"
-                   ":(delete{} \"b\")\n");
-  list<Line> dummy;
-  tangle(in, dummy);
-  CHECK_TRACE_CONTENTS("tangle", "a\n");
-  CHECK_TRACE_DOESNT_CONTAIN("tangle", "b");
-  CHECK_TRACE_DOESNT_CONTAIN("tangle", "c");
-}
-
-void test_tangle_replace() {
-  istringstream in("a\n"
-                   "b\n"
-                   "c\n"
-                   ":(replace b)\n"
-                   "d\n");
-  list<Line> dummy;
-  tangle(in, dummy);
-  CHECK_TRACE_CONTENTS("tangle", "a\n"
-                                 "d\n"
-                                 "c\n");
-  CHECK_TRACE_DOESNT_CONTAIN("tangle", "b");
-}
-
-void test_tangle_replace_range_of_lines() {
-  istringstream in("a\n"
-                   "b {\n"
-                   "c\n"
-                   "}\n"
-                   ":(replace{} \"b\")\n"
-                   "d\n"
-                   "e\n");
-  list<Line> dummy;
-  tangle(in, dummy);
-  CHECK_TRACE_CONTENTS("tangle", "a\n"
-                                 "d\n"
-                                 "e\n");
-  CHECK_TRACE_DOESNT_CONTAIN("tangle", "b {");
-  CHECK_TRACE_DOESNT_CONTAIN("tangle", "c");
-}
-
-void test_tangle_replace_tracks_old_lines() {
-  istringstream in("a\n"
-                   "b {\n"
-                   "c\n"
-                   "}\n"
-                   ":(replace{} \"b\")\n"
-                   "d\n"
-                   ":OLD_CONTENTS\n"
-                   "e\n");
-  list<Line> dummy;
-  tangle(in, dummy);
-  CHECK_TRACE_CONTENTS("tangle", "a\n"
-                                 "d\n"
-                                 "c\n"
-                                 "e\n");
-  CHECK_TRACE_DOESNT_CONTAIN("tangle", "b {");
-}
-
-void test_tangle_nested_patterns() {
-  istringstream in("a\n"
-                   "c\n"
-                   "b\n"
-                   "c\n"
-                   "d\n"
-                   ":(after \"b\" then \"c\")\n"
-                   "e");
-  list<Line> dummy;
-  tangle(in, dummy);
-  CHECK_TRACE_CONTENTS("tangle", "a\n"
-                                 "c\n"
-                                 "b\n"
-                                 "c\n"
-                                 "e\n"
-                                 "d\n");
-}
-
-void test_tangle_nested_patterns2() {
-  istringstream in("a\n"
-                   "c\n"
-                   "b\n"
-                   "c\n"
-                   "d\n"
-                   ":(after \"c\" following \"b\")\n"
-                   "e");
-  list<Line> dummy;
-  tangle(in, dummy);
-  CHECK_TRACE_CONTENTS("tangle", "a\n"
-                                 "c\n"
-                                 "b\n"
-                                 "c\n"
-                                 "e\n"
-                                 "d\n");
-}
-
-// todo: include line numbers in tangle errors
-
-//// helpers
-
-void test_trim() {
-  CHECK_EQ(trim(""), "");
-  CHECK_EQ(trim(" "), "");
-  CHECK_EQ(trim("  "), "");
-  CHECK_EQ(trim("a"), "a");
-  CHECK_EQ(trim(" a"), "a");
-  CHECK_EQ(trim("  a"), "a");
-  CHECK_EQ(trim("  ab"), "ab");
-  CHECK_EQ(trim("a "), "a");
-  CHECK_EQ(trim("a  "), "a");
-  CHECK_EQ(trim("ab  "), "ab");
-  CHECK_EQ(trim(" a "), "a");
-  CHECK_EQ(trim("  a  "), "a");
-  CHECK_EQ(trim("  ab  "), "ab");
-}
-
-void test_strip_indent() {
-  CHECK_EQ(strip_indent("", 0), "");
-  CHECK_EQ(strip_indent("", 1), "");
-  CHECK_EQ(strip_indent("", 3), "");
-  CHECK_EQ(strip_indent(" ", 0), " ");
-  CHECK_EQ(strip_indent(" a", 0), " a");
-  CHECK_EQ(strip_indent(" ", 1), "");
-  CHECK_EQ(strip_indent(" a", 1), "a");
-  CHECK_EQ(strip_indent(" ", 2), "");
-  CHECK_EQ(strip_indent(" a", 2), "a");
-  CHECK_EQ(strip_indent("  ", 0), "  ");
-  CHECK_EQ(strip_indent("  a", 0), "  a");
-  CHECK_EQ(strip_indent("  ", 1), " ");
-  CHECK_EQ(strip_indent("  a", 1), " a");
-  CHECK_EQ(strip_indent("  ", 2), "");
-  CHECK_EQ(strip_indent("  a", 2), "a");
-  CHECK_EQ(strip_indent("  ", 3), "");
-  CHECK_EQ(strip_indent("  a", 3), "a");
-}