[or-cvs] [tor/master 4/6] Add new torrc line continuation unit tests

nickm at torproject.org nickm at torproject.org
Fri Sep 24 17:48:50 UTC 2010


Author: Sebastian Hahn <sebastian at torproject.org>
Date: Thu, 23 Sep 2010 22:39:58 +0200
Subject: Add new torrc line continuation unit tests
Commit: 1d29ad891e848dcb48120331e0d2f78bd6777746

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 at 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 |   24 ++++++++++++++++++++++++
 1 files changed, 24 insertions(+), 0 deletions(-)

diff --git a/src/test/test_util.c b/src/test/test_util.c
index 49823fd..d90927b 100644
--- a/src/test/test_util.c
+++ b/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:
-- 
1.7.1




More information about the tor-commits mailing list