void test_cloning_with_log_message(gchar *msg) { LogMessage *original_log_message, *log_message, *cloned_log_message; regex_t bad_hostname; GSockAddr *addr = g_sockaddr_inet_new("10.10.10.10", 1010); LogPathOptions path_options = LOG_PATH_OPTIONS_INIT; testcase_begin("Testing log message cloning; msg='%s'", msg); parse_options.flags = LP_SYSLOG_PROTOCOL; parse_options.bad_hostname = &bad_hostname; original_log_message = log_msg_new(msg, strlen(msg), addr, &parse_options); log_message = log_msg_new(msg, strlen(msg), addr, &parse_options); log_msg_set_tag_by_name(log_message, "newtag"); path_options.ack_needed = FALSE; cloned_log_message = log_msg_clone_cow(log_message, &path_options); assert_log_messages_equal(cloned_log_message, original_log_message); set_new_log_message_attributes(cloned_log_message); assert_log_messages_equal(log_message, original_log_message); assert_new_log_message_attributes(cloned_log_message); assert_log_message_has_tag(cloned_log_message, "newtag"); log_msg_unref(cloned_log_message); log_msg_unref(log_message); log_msg_unref(original_log_message); testcase_end(); }
static void test_log_message_merge_with_empty_context(void) { LogMessage *msg, *msg_clone; LogMessage *context[] = {}; msg = construct_log_message_with_all_bells_and_whistles(); msg_clone = clone_cow_log_message(msg); log_msg_merge_context(msg, context, 0); log_msg_unref(msg); assert_log_messages_equal(msg, msg_clone); }