Test config line parsing errors

Add tests for lower-level syntax errors in config file lines.
Fixes #22177.
This commit is contained in:
Taylor Yu 2017-05-10 16:45:04 -04:00
parent ee3ccd2fac
commit 3156392e9b

View File

@ -186,7 +186,8 @@ test_options_validate_impl(const char *configuration,
expect_log, msg)) expect_log, msg))
goto done; goto done;
} }
tt_int_op((r == 0), OP_EQ, (msg == NULL)); if (r)
goto done;
r = config_assign(&options_format, opt, cl, 0, &msg); r = config_assign(&options_format, opt, cl, 0, &msg);
if (phase == PH_ASSIGN) { if (phase == PH_ASSIGN) {
@ -261,6 +262,13 @@ test_options_validate(void *arg)
OK("HeartbeatPeriod 1 hour", PH_VALIDATE); OK("HeartbeatPeriod 1 hour", PH_VALIDATE);
OK("LogTimeGranularity 100 milliseconds", 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(); close_temp_logs();
clear_log_messages(); clear_log_messages();
return; return;