void test_rule_action_message_tag(const gchar *pattern, gint timeout, gint ndx, const gchar *tag, gboolean set) { LogMessage *msg = log_msg_new_empty(); gboolean found, result; PDBInput input; log_msg_set_value(msg, LM_V_MESSAGE, pattern, strlen(pattern)); log_msg_set_value(msg, LM_V_PROGRAM, "prog2", 5); log_msg_set_value(msg, LM_V_HOST, MYHOST, strlen(MYHOST)); log_msg_set_value(msg, LM_V_PID, MYPID, strlen(MYPID)); msg->timestamps[LM_TS_STAMP].tv_sec = msg->timestamps[LM_TS_RECVD].tv_sec; result = pattern_db_process(patterndb, PDB_INPUT_WRAP_MESSAGE(&input, msg)); if (timeout) timer_wheel_set_time(patterndb->timer_wheel, timer_wheel_get_time(patterndb->timer_wheel) + timeout + 5); if (ndx >= messages->len) { test_fail("Expected the %d. message, but no such message was returned by patterndb\n", ndx); goto exit; } found = log_msg_is_tag_by_name((LogMessage *) g_ptr_array_index(messages, ndx), tag); if (set ^ found) test_fail("Tag '%s' is %sset for pattern '%s' (%d), index %d\n", tag, found ? "" : "not ", pattern, !!result, ndx); exit: log_msg_unref(msg); test_clean_state(); }
void assert_log_msg_clear_clears_all_properties(LogMessage *msg) { log_msg_clear(msg); assert_string("", log_msg_get_value(msg, nv_handle, NULL), "Message still contains value after log_msg_clear"); assert_string("", log_msg_get_value(msg, sd_handle, NULL), "Message still contains sdata value after log_msg_clear"); assert_true(msg->saddr == NULL, "Message still contains an saddr after log_msg_clear"); assert_false(log_msg_is_tag_by_name(msg, tag_name), "Message still contains a valid tag after log_msg_clear"); }
void test_msg_tags() { LogMessage *msg = log_msg_new_empty(); gchar *name; gint i, set; test_msg("=== LogMessage tests ===\n"); for (set = 1; set != -1; set--) { for (i = NUM_TAGS; i > -1; i--) { name = get_tag_by_id(i); if (set) log_msg_set_tag_by_name(msg, name); else log_msg_clear_tag_by_name(msg, name); test_msg("%s tag %d %s\n", set ? "Setting" : "Clearing", i, name); if (set ^ log_msg_is_tag_by_id(msg, i)) test_fail("Tag is %sset now (by id) %d\n", set ? "not " : "", i); g_free(name); } for (i = 0; i < NUM_TAGS; i++) { name = get_tag_by_id(i); test_msg("Checking tag %d %s\n", i, name); if (set ^ log_msg_is_tag_by_id(msg, i)) test_fail("Tag is %sset (by id) %d\n", set ? "not " : "", i); if (set ^ log_msg_is_tag_by_name(msg, name)) test_fail("Tag is %sset (by name) %s\n", set ? "not " : "", name); g_free(name); } } log_msg_unref(msg); }
void test_rule_tag(const gchar *pattern, const gchar *tag, gboolean set) { LogMessage *msg = log_msg_new_empty(); gboolean found, result; PDBInput input; log_msg_set_value(msg, LM_V_MESSAGE, pattern, strlen(pattern)); log_msg_set_value(msg, LM_V_PROGRAM, "prog2", 5); log_msg_set_value(msg, LM_V_HOST, MYHOST, strlen(MYHOST)); log_msg_set_value(msg, LM_V_PID, MYPID, strlen(MYPID)); result = pattern_db_process(patterndb, PDB_INPUT_WRAP_MESSAGE(&input, msg)); found = log_msg_is_tag_by_name(msg, tag); if (set ^ found) test_fail("Tag '%s' is %sset for pattern '%s' (%d)\n", tag, found ? "" : "not ", pattern, !!result); log_msg_unref(msg); test_clean_state(); }
void assert_log_message_has_tag(LogMessage *log_message, const gchar *tag_name) { assert_true(log_msg_is_tag_by_name(log_message, tag_name), "Expected message to have '%s' tag", tag_name); }
void assert_log_message_doesnt_have_tag(LogMessage *log_message, const gchar *tag_name) { assert_false(log_msg_is_tag_by_name(log_message, tag_name), "Expected message not to have '%s' tag", tag_name); }