test: modernize test-log and add test cases for log_format_iovec() (#39750)
This commit is contained in:
+1
-3
@@ -950,8 +950,6 @@ int log_format_iovec(
|
||||
const char *format,
|
||||
va_list ap) {
|
||||
|
||||
static const char nl = '\n';
|
||||
|
||||
while (format && *n + 1 < iovec_len) {
|
||||
va_list aq;
|
||||
char *m;
|
||||
@@ -975,7 +973,7 @@ int log_format_iovec(
|
||||
|
||||
iovec[(*n)++] = IOVEC_MAKE_STRING(m);
|
||||
if (newline_separator)
|
||||
iovec[(*n)++] = IOVEC_MAKE((char *)&nl, 1);
|
||||
iovec[(*n)++] = IOVEC_MAKE_STRING("\n");
|
||||
|
||||
format = va_arg(ap, char *);
|
||||
}
|
||||
|
||||
+7
-4
@@ -287,18 +287,21 @@ bool log_on_console(void) _pure_;
|
||||
|
||||
/* Helper to wrap the main message in structured logging. The macro doesn't do much,
|
||||
* except to provide visual grouping of the format string and its arguments. */
|
||||
#if LOG_MESSAGE_VERIFICATION || defined(__COVERITY__)
|
||||
#ifdef __COVERITY__
|
||||
/* Coverity does not like the concatenation of multiple formats and arguments. Let's replace each format
|
||||
* string with a dummy string. The validity of the formats is hopefully checked by other CIs. */
|
||||
# define LOG_ITEM(fmt, ...) "dummy", NULL, ##__VA_ARGS__
|
||||
#elif LOG_MESSAGE_VERIFICATION
|
||||
/* Do a fake formatting of the message string to let the scanner verify the arguments against the format
|
||||
* message. The variable will never be set to true, but we don't tell the compiler that :) */
|
||||
extern bool _log_message_dummy;
|
||||
# define LOG_ITEM(fmt, ...) "%.0d" fmt, (_log_message_dummy && printf(fmt, ##__VA_ARGS__)), ##__VA_ARGS__
|
||||
# define LOG_MESSAGE(fmt, ...) LOG_ITEM("MESSAGE=" fmt, ##__VA_ARGS__)
|
||||
#else
|
||||
# define LOG_ITEM(fmt, ...) fmt, ##__VA_ARGS__
|
||||
# define LOG_MESSAGE(fmt, ...) "MESSAGE=" fmt, ##__VA_ARGS__
|
||||
#endif
|
||||
|
||||
#define LOG_MESSAGE_ID(id) LOG_ITEM("MESSAGE_ID=" id)
|
||||
#define LOG_MESSAGE(fmt, ...) LOG_ITEM("MESSAGE=" fmt, ##__VA_ARGS__)
|
||||
#define LOG_MESSAGE_ID(id) LOG_ITEM("MESSAGE_ID=" id)
|
||||
|
||||
void log_received_signal(int level, const struct signalfd_siginfo *si);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user