static void test_log_proto_base(void) { LogProtoServer *proto; assert_gint(log_proto_get_char_size_for_fixed_encoding("iso-8859-2"), 1, NULL); assert_gint(log_proto_get_char_size_for_fixed_encoding("ucs-4"), 4, NULL); log_proto_server_options_set_encoding(&proto_server_options, "ucs-4"); proto = log_proto_binary_record_server_new( log_transport_mock_records_new( /* ucs4, terminated by record size */ "\x00\x00\x00\xe1\x00\x00\x00\x72\x00\x00\x00\x76\x00\x00\x00\xed" /* |...á...r...v...í| */ "\x00\x00\x00\x7a\x00\x00\x00\x74\x00\x00\x01\x71\x00\x00\x00\x72", 32, /* |...z...t...ű...r| */ LTM_EOF), get_inited_proto_server_options(), 32); /* check if error state is not forgotten unless reset_error is called */ proto->status = LPS_ERROR; assert_proto_server_status(proto, proto->status , LPS_ERROR); assert_proto_server_fetch_failure(proto, LPS_ERROR, NULL); log_proto_server_reset_error(proto); assert_proto_server_fetch(proto, "árvíztűr", -1); assert_proto_server_status(proto, proto->status, LPS_SUCCESS); log_proto_server_free(proto); log_proto_server_options_destroy(&proto_server_options); }
static void test_lines_separated_with_prefix_and_suffix(gboolean input_is_stream) { LogProtoServer *proto; MultiLineRegexp *re1, *re2; proto = log_proto_prefix_suffix_multiline_server_new( /* 32 bytes max line length, which means that the complete * multi-line block plus one additional line must fit into 32 * bytes. */ (0 && input_is_stream ? log_transport_mock_stream_new : log_transport_mock_records_new)( "prefix first suffix garbage\n" "prefix multi\n" "suffix garbage\n" "prefix final\n", -1, LTM_PADDING, LTM_EOF), get_inited_proto_server_options(), re1 = multi_line_regexp_compile("^prefix", NULL), re2 = multi_line_regexp_compile("suffix", NULL)); assert_proto_server_fetch(proto, "prefix first suffix", -1); assert_proto_server_fetch(proto, "prefix multi\nsuffix", -1); log_proto_server_free(proto); log_proto_server_options_destroy(&proto_server_options); multi_line_regexp_free(re1); multi_line_regexp_free(re2); };
static void test_lines_separated_with_prefix(gboolean input_is_stream) { LogProtoServer *proto; MultiLineRegexp *re; proto = log_proto_prefix_garbage_multiline_server_new( /* 32 bytes max line length, which means that the complete * multi-line block plus one additional line must fit into 32 * bytes. */ (input_is_stream ? log_transport_mock_stream_new : log_transport_mock_records_new)( "Foo First Line\n" "Foo Second Line\n" "Foo Third Line\n" "Foo Multiline\n" "multi\n" "Foo final\n", -1, LTM_PADDING, LTM_EOF), get_inited_proto_server_options(), re = multi_line_regexp_compile("^Foo", NULL), NULL); assert_proto_server_fetch(proto, "Foo First Line", -1); assert_proto_server_fetch(proto, "Foo Second Line", -1); assert_proto_server_fetch(proto, "Foo Third Line", -1); assert_proto_server_fetch(proto, "Foo Multiline\nmulti", -1); log_proto_server_free(proto); log_proto_server_options_destroy(&proto_server_options); multi_line_regexp_free(re); }
void log_reader_options_destroy(LogReaderOptions *options) { log_source_options_destroy(&options->super); log_proto_server_options_destroy(&options->proto_options.super); msg_format_options_destroy(&options->parse_options); options->initialized = FALSE; }