[tor-commits] [tor/master] Test config line parsing errors

nickm at torproject.org nickm at torproject.org
Thu May 11 11:42:39 UTC 2017


commit 3156392e9bec5f5df350bbfd992f2269007a7abb
Author: Taylor Yu <catalyst at torproject.org>
Date:   Wed May 10 16:45:04 2017 -0400

    Test config line parsing errors
    
    Add tests for lower-level syntax errors in config file lines.
    Fixes #22177.
---
 src/test/test_options.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/src/test/test_options.c b/src/test/test_options.c
index f8acc2e..ad735b7 100644
--- a/src/test/test_options.c
+++ b/src/test/test_options.c
@@ -186,7 +186,8 @@ test_options_validate_impl(const char *configuration,
                                expect_log, msg))
       goto done;
   }
-  tt_int_op((r == 0), OP_EQ, (msg == NULL));
+  if (r)
+    goto done;
 
   r = config_assign(&options_format, opt, cl, 0, &msg);
   if (phase == PH_ASSIGN) {
@@ -261,6 +262,13 @@ test_options_validate(void *arg)
   OK("HeartbeatPeriod 1 hour", PH_VALIDATE);
   OK("LogTimeGranularity 100 milliseconds", PH_VALIDATE);
 
+  WANT_LOG("ControlSocket \"string with trailing garbage\" bogus", LOG_WARN,
+           "Error while parsing configuration: "
+           "Excess data after quoted string", PH_GETLINES);
+  WANT_LOG("ControlSocket \"bogus escape \\@\"", LOG_WARN,
+           "Error while parsing configuration: "
+           "Invalid escape sequence in quoted string", PH_GETLINES);
+
   close_temp_logs();
   clear_log_messages();
   return;





More information about the tor-commits mailing list