]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Add new torrc line continuation unit tests
authorSebastian Hahn <sebastian@torproject.org>
Thu, 23 Sep 2010 20:39:58 +0000 (22:39 +0200)
committerSebastian Hahn <sebastian@torproject.org>
Thu, 23 Sep 2010 20:46:13 +0000 (22:46 +0200)
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.

src/test/test_util.c

index 49823fde704d0a17f743e7237128c2a35d43f1d3..d90927b35f467bcc56e0e702935cc03e39d71f7c 100644 (file)
@@ -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: