Browse Source

Test config line parsing errors

Add tests for lower-level syntax errors in config file lines.
Fixes #22177.
Taylor Yu 7 years ago
parent
commit
3156392e9b
1 changed files with 9 additions and 1 deletions
  1. 9 1
      src/test/test_options.c

+ 9 - 1
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;