浏览代码

Add new torrc line continuation unit tests

We want to make sure that we don't break old torrc files that might have
used something like this made-up example:

    ContactInfo UberUser <uber@user.com> # /// Fake email! \\\
    Log info file /home/nick.mathewson/projects/tor-info.log

And we also want to support the following style of writing your torrc:

    ExcludeNodes \
    # Node1337 is run by the Bavarian Illuminati
      Node1337, \
    # The operator of Node99 looked at me funny
      Node99

The code already handles both cases, but the unit test should help prove
it.
Sebastian Hahn 13 年之前
父节点
当前提交
1d29ad891e
共有 1 个文件被更改,包括 24 次插入0 次删除
  1. 24 0
      src/test/test_util.c

+ 24 - 0
src/test/test_util.c

@@ -105,6 +105,10 @@ test_util_config_line(void)
           "k11  \\\ncontinuation at the start\n"
           "k12 line with a\\\n#comment\n embedded\n"
           "k13\\\ncontinuation at the very start\n"
+          "k14 a line that has a comment and # ends with a slash \\\n"
+          "k15 this should be the next new line\n"
+          "k16 a line that has a comment and # ends without a slash \n"
+          "k17 this should be the next new line\n"
           , sizeof(buf));
   str = buf;
 
@@ -192,6 +196,26 @@ test_util_config_line(void)
   test_streq(v, "continuation at the very start");
   tor_free(k); tor_free(v);
 
+  str = parse_config_line_from_str(str, &k, &v);
+  test_streq(k, "k14");
+  test_streq(v, "a line that has a comment and" );
+  tor_free(k); tor_free(v);
+
+  str = parse_config_line_from_str(str, &k, &v);
+  test_streq(k, "k15");
+  test_streq(v, "this should be the next new line");
+  tor_free(k); tor_free(v);
+
+  str = parse_config_line_from_str(str, &k, &v);
+  test_streq(k, "k16");
+  test_streq(v, "a line that has a comment and" );
+  tor_free(k); tor_free(v);
+
+  str = parse_config_line_from_str(str, &k, &v);
+  test_streq(k, "k17");
+  test_streq(v, "this should be the next new line");
+  tor_free(k); tor_free(v);
+
   test_streq(str, "");
 
  done: