fluentd 1.17.0-x86-mingw32 → 1.17.1-x86-mingw32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +46 -0
- data/README.md +1 -0
- data/SECURITY.md +2 -2
- data/fluent.conf +14 -14
- data/lib/fluent/command/cap_ctl.rb +4 -4
- data/lib/fluent/compat/call_super_mixin.rb +3 -3
- data/lib/fluent/compat/propagate_default.rb +4 -4
- data/lib/fluent/config/yaml_parser/parser.rb +4 -0
- data/lib/fluent/log/console_adapter.rb +4 -2
- data/lib/fluent/plugin/in_exec.rb +14 -2
- data/lib/fluent/plugin/in_http.rb +1 -1
- data/lib/fluent/plugin/in_sample.rb +13 -7
- data/lib/fluent/plugin/in_tail.rb +65 -23
- data/lib/fluent/plugin/out_copy.rb +1 -1
- data/lib/fluent/plugin/out_file.rb +8 -0
- data/lib/fluent/plugin/out_http.rb +12 -0
- data/lib/fluent/plugin/parser_json.rb +4 -12
- data/lib/fluent/plugin_helper/http_server/server.rb +1 -1
- data/lib/fluent/version.rb +1 -1
- data/templates/new_gem/fluent-plugin.gemspec.erb +6 -5
- metadata +25 -472
- data/.github/DISCUSSION_TEMPLATE/q-a-japanese.yml +0 -50
- data/.github/DISCUSSION_TEMPLATE/q-a.yml +0 -47
- data/.github/ISSUE_TEMPLATE/bug_report.yml +0 -71
- data/.github/ISSUE_TEMPLATE/config.yml +0 -5
- data/.github/ISSUE_TEMPLATE/feature_request.yml +0 -39
- data/.github/ISSUE_TEMPLATE.md +0 -17
- data/.github/PULL_REQUEST_TEMPLATE.md +0 -14
- data/.github/workflows/stale-actions.yml +0 -24
- data/.github/workflows/test-ruby-head.yml +0 -31
- data/.github/workflows/test.yml +0 -32
- data/.gitignore +0 -30
- data/Gemfile +0 -9
- data/fluentd.gemspec +0 -62
- data/test/command/test_binlog_reader.rb +0 -362
- data/test/command/test_ca_generate.rb +0 -70
- data/test/command/test_cap_ctl.rb +0 -100
- data/test/command/test_cat.rb +0 -128
- data/test/command/test_ctl.rb +0 -56
- data/test/command/test_fluentd.rb +0 -1291
- data/test/command/test_plugin_config_formatter.rb +0 -397
- data/test/command/test_plugin_generator.rb +0 -109
- data/test/compat/test_calls_super.rb +0 -166
- data/test/compat/test_parser.rb +0 -92
- data/test/config/assertions.rb +0 -42
- data/test/config/test_config_parser.rb +0 -551
- data/test/config/test_configurable.rb +0 -1784
- data/test/config/test_configure_proxy.rb +0 -604
- data/test/config/test_dsl.rb +0 -415
- data/test/config/test_element.rb +0 -518
- data/test/config/test_literal_parser.rb +0 -309
- data/test/config/test_plugin_configuration.rb +0 -56
- data/test/config/test_section.rb +0 -191
- data/test/config/test_system_config.rb +0 -195
- data/test/config/test_types.rb +0 -408
- data/test/counter/test_client.rb +0 -563
- data/test/counter/test_error.rb +0 -44
- data/test/counter/test_mutex_hash.rb +0 -179
- data/test/counter/test_server.rb +0 -589
- data/test/counter/test_store.rb +0 -258
- data/test/counter/test_validator.rb +0 -137
- data/test/helper.rb +0 -155
- data/test/helpers/fuzzy_assert.rb +0 -89
- data/test/helpers/process_extenstion.rb +0 -33
- data/test/log/test_console_adapter.rb +0 -117
- data/test/plugin/data/2010/01/20100102-030405.log +0 -0
- data/test/plugin/data/2010/01/20100102-030406.log +0 -0
- data/test/plugin/data/2010/01/20100102.log +0 -0
- data/test/plugin/data/log/bar +0 -0
- data/test/plugin/data/log/foo/bar.log +0 -0
- data/test/plugin/data/log/foo/bar2 +0 -0
- data/test/plugin/data/log/test.log +0 -0
- data/test/plugin/data/log_numeric/01.log +0 -0
- data/test/plugin/data/log_numeric/02.log +0 -0
- data/test/plugin/data/log_numeric/12.log +0 -0
- data/test/plugin/data/log_numeric/14.log +0 -0
- data/test/plugin/data/sd_file/config +0 -11
- data/test/plugin/data/sd_file/config.json +0 -17
- data/test/plugin/data/sd_file/config.yaml +0 -11
- data/test/plugin/data/sd_file/config.yml +0 -11
- data/test/plugin/data/sd_file/invalid_config.yml +0 -7
- data/test/plugin/in_tail/test_fifo.rb +0 -121
- data/test/plugin/in_tail/test_io_handler.rb +0 -150
- data/test/plugin/in_tail/test_position_file.rb +0 -346
- data/test/plugin/out_forward/test_ack_handler.rb +0 -140
- data/test/plugin/out_forward/test_connection_manager.rb +0 -145
- data/test/plugin/out_forward/test_handshake_protocol.rb +0 -112
- data/test/plugin/out_forward/test_load_balancer.rb +0 -106
- data/test/plugin/out_forward/test_socket_cache.rb +0 -174
- data/test/plugin/test_bare_output.rb +0 -131
- data/test/plugin/test_base.rb +0 -247
- data/test/plugin/test_buf_file.rb +0 -1314
- data/test/plugin/test_buf_file_single.rb +0 -898
- data/test/plugin/test_buf_memory.rb +0 -42
- data/test/plugin/test_buffer.rb +0 -1493
- data/test/plugin/test_buffer_chunk.rb +0 -209
- data/test/plugin/test_buffer_file_chunk.rb +0 -871
- data/test/plugin/test_buffer_file_single_chunk.rb +0 -611
- data/test/plugin/test_buffer_memory_chunk.rb +0 -339
- data/test/plugin/test_compressable.rb +0 -87
- data/test/plugin/test_file_util.rb +0 -96
- data/test/plugin/test_filter.rb +0 -368
- data/test/plugin/test_filter_grep.rb +0 -697
- data/test/plugin/test_filter_parser.rb +0 -731
- data/test/plugin/test_filter_record_transformer.rb +0 -577
- data/test/plugin/test_filter_stdout.rb +0 -207
- data/test/plugin/test_formatter_csv.rb +0 -136
- data/test/plugin/test_formatter_hash.rb +0 -38
- data/test/plugin/test_formatter_json.rb +0 -61
- data/test/plugin/test_formatter_ltsv.rb +0 -70
- data/test/plugin/test_formatter_msgpack.rb +0 -28
- data/test/plugin/test_formatter_out_file.rb +0 -116
- data/test/plugin/test_formatter_single_value.rb +0 -44
- data/test/plugin/test_formatter_tsv.rb +0 -76
- data/test/plugin/test_in_debug_agent.rb +0 -49
- data/test/plugin/test_in_exec.rb +0 -261
- data/test/plugin/test_in_forward.rb +0 -1178
- data/test/plugin/test_in_gc_stat.rb +0 -62
- data/test/plugin/test_in_http.rb +0 -1124
- data/test/plugin/test_in_monitor_agent.rb +0 -922
- data/test/plugin/test_in_object_space.rb +0 -66
- data/test/plugin/test_in_sample.rb +0 -190
- data/test/plugin/test_in_syslog.rb +0 -505
- data/test/plugin/test_in_tail.rb +0 -3429
- data/test/plugin/test_in_tcp.rb +0 -328
- data/test/plugin/test_in_udp.rb +0 -296
- data/test/plugin/test_in_unix.rb +0 -181
- data/test/plugin/test_input.rb +0 -137
- data/test/plugin/test_metadata.rb +0 -89
- data/test/plugin/test_metrics.rb +0 -294
- data/test/plugin/test_metrics_local.rb +0 -96
- data/test/plugin/test_multi_output.rb +0 -204
- data/test/plugin/test_out_copy.rb +0 -308
- data/test/plugin/test_out_exec.rb +0 -312
- data/test/plugin/test_out_exec_filter.rb +0 -606
- data/test/plugin/test_out_file.rb +0 -1038
- data/test/plugin/test_out_forward.rb +0 -1349
- data/test/plugin/test_out_http.rb +0 -557
- data/test/plugin/test_out_null.rb +0 -105
- data/test/plugin/test_out_relabel.rb +0 -28
- data/test/plugin/test_out_roundrobin.rb +0 -146
- data/test/plugin/test_out_secondary_file.rb +0 -458
- data/test/plugin/test_out_stdout.rb +0 -205
- data/test/plugin/test_out_stream.rb +0 -103
- data/test/plugin/test_output.rb +0 -1334
- data/test/plugin/test_output_as_buffered.rb +0 -2024
- data/test/plugin/test_output_as_buffered_backup.rb +0 -363
- data/test/plugin/test_output_as_buffered_compress.rb +0 -179
- data/test/plugin/test_output_as_buffered_overflow.rb +0 -250
- data/test/plugin/test_output_as_buffered_retries.rb +0 -966
- data/test/plugin/test_output_as_buffered_secondary.rb +0 -882
- data/test/plugin/test_output_as_standard.rb +0 -374
- data/test/plugin/test_owned_by.rb +0 -34
- data/test/plugin/test_parser.rb +0 -399
- data/test/plugin/test_parser_apache.rb +0 -42
- data/test/plugin/test_parser_apache2.rb +0 -47
- data/test/plugin/test_parser_apache_error.rb +0 -45
- data/test/plugin/test_parser_csv.rb +0 -200
- data/test/plugin/test_parser_json.rb +0 -244
- data/test/plugin/test_parser_labeled_tsv.rb +0 -160
- data/test/plugin/test_parser_msgpack.rb +0 -127
- data/test/plugin/test_parser_multiline.rb +0 -111
- data/test/plugin/test_parser_nginx.rb +0 -88
- data/test/plugin/test_parser_none.rb +0 -52
- data/test/plugin/test_parser_regexp.rb +0 -284
- data/test/plugin/test_parser_syslog.rb +0 -650
- data/test/plugin/test_parser_tsv.rb +0 -122
- data/test/plugin/test_sd_file.rb +0 -228
- data/test/plugin/test_sd_srv.rb +0 -230
- data/test/plugin/test_storage.rb +0 -166
- data/test/plugin/test_storage_local.rb +0 -335
- data/test/plugin/test_string_util.rb +0 -26
- data/test/plugin_helper/data/cert/cert-key.pem +0 -27
- data/test/plugin_helper/data/cert/cert-with-CRLF.pem +0 -19
- data/test/plugin_helper/data/cert/cert-with-no-newline.pem +0 -19
- data/test/plugin_helper/data/cert/cert.pem +0 -19
- data/test/plugin_helper/data/cert/cert_chains/ca-cert-key.pem +0 -27
- data/test/plugin_helper/data/cert/cert_chains/ca-cert.pem +0 -20
- data/test/plugin_helper/data/cert/cert_chains/cert-key.pem +0 -27
- data/test/plugin_helper/data/cert/cert_chains/cert.pem +0 -40
- data/test/plugin_helper/data/cert/empty.pem +0 -0
- data/test/plugin_helper/data/cert/generate_cert.rb +0 -125
- data/test/plugin_helper/data/cert/with_ca/ca-cert-key-pass.pem +0 -30
- data/test/plugin_helper/data/cert/with_ca/ca-cert-key.pem +0 -27
- data/test/plugin_helper/data/cert/with_ca/ca-cert-pass.pem +0 -20
- data/test/plugin_helper/data/cert/with_ca/ca-cert.pem +0 -20
- data/test/plugin_helper/data/cert/with_ca/cert-key-pass.pem +0 -30
- data/test/plugin_helper/data/cert/with_ca/cert-key.pem +0 -27
- data/test/plugin_helper/data/cert/with_ca/cert-pass.pem +0 -21
- data/test/plugin_helper/data/cert/with_ca/cert.pem +0 -21
- data/test/plugin_helper/data/cert/without_ca/cert-key-pass.pem +0 -30
- data/test/plugin_helper/data/cert/without_ca/cert-key.pem +0 -27
- data/test/plugin_helper/data/cert/without_ca/cert-pass.pem +0 -20
- data/test/plugin_helper/data/cert/without_ca/cert.pem +0 -20
- data/test/plugin_helper/http_server/test_app.rb +0 -65
- data/test/plugin_helper/http_server/test_route.rb +0 -32
- data/test/plugin_helper/service_discovery/test_manager.rb +0 -93
- data/test/plugin_helper/service_discovery/test_round_robin_balancer.rb +0 -21
- data/test/plugin_helper/test_cert_option.rb +0 -25
- data/test/plugin_helper/test_child_process.rb +0 -862
- data/test/plugin_helper/test_compat_parameters.rb +0 -358
- data/test/plugin_helper/test_event_emitter.rb +0 -80
- data/test/plugin_helper/test_event_loop.rb +0 -52
- data/test/plugin_helper/test_extract.rb +0 -194
- data/test/plugin_helper/test_formatter.rb +0 -255
- data/test/plugin_helper/test_http_server_helper.rb +0 -372
- data/test/plugin_helper/test_inject.rb +0 -561
- data/test/plugin_helper/test_metrics.rb +0 -137
- data/test/plugin_helper/test_parser.rb +0 -264
- data/test/plugin_helper/test_record_accessor.rb +0 -238
- data/test/plugin_helper/test_retry_state.rb +0 -1006
- data/test/plugin_helper/test_server.rb +0 -1895
- data/test/plugin_helper/test_service_discovery.rb +0 -165
- data/test/plugin_helper/test_socket.rb +0 -146
- data/test/plugin_helper/test_storage.rb +0 -542
- data/test/plugin_helper/test_thread.rb +0 -164
- data/test/plugin_helper/test_timer.rb +0 -130
- data/test/scripts/exec_script.rb +0 -32
- data/test/scripts/fluent/plugin/formatter1/formatter_test1.rb +0 -7
- data/test/scripts/fluent/plugin/formatter2/formatter_test2.rb +0 -7
- data/test/scripts/fluent/plugin/formatter_known.rb +0 -8
- data/test/scripts/fluent/plugin/out_test.rb +0 -81
- data/test/scripts/fluent/plugin/out_test2.rb +0 -80
- data/test/scripts/fluent/plugin/parser_known.rb +0 -4
- data/test/test_capability.rb +0 -74
- data/test/test_clock.rb +0 -164
- data/test/test_config.rb +0 -369
- data/test/test_configdsl.rb +0 -148
- data/test/test_daemonizer.rb +0 -91
- data/test/test_engine.rb +0 -203
- data/test/test_event.rb +0 -531
- data/test/test_event_router.rb +0 -348
- data/test/test_event_time.rb +0 -199
- data/test/test_file_wrapper.rb +0 -53
- data/test/test_filter.rb +0 -121
- data/test/test_fluent_log_event_router.rb +0 -99
- data/test/test_formatter.rb +0 -369
- data/test/test_input.rb +0 -31
- data/test/test_log.rb +0 -1076
- data/test/test_match.rb +0 -148
- data/test/test_mixin.rb +0 -351
- data/test/test_msgpack_factory.rb +0 -50
- data/test/test_oj_options.rb +0 -55
- data/test/test_output.rb +0 -278
- data/test/test_plugin.rb +0 -251
- data/test/test_plugin_classes.rb +0 -370
- data/test/test_plugin_helper.rb +0 -81
- data/test/test_plugin_id.rb +0 -119
- data/test/test_process.rb +0 -14
- data/test/test_root_agent.rb +0 -951
- data/test/test_static_config_analysis.rb +0 -177
- data/test/test_supervisor.rb +0 -821
- data/test/test_test_drivers.rb +0 -136
- data/test/test_time_formatter.rb +0 -301
- data/test/test_time_parser.rb +0 -362
- data/test/test_tls.rb +0 -65
- data/test/test_unique_id.rb +0 -47
- data/test/test_variable_store.rb +0 -65
@@ -1,505 +0,0 @@
|
|
1
|
-
require_relative '../helper'
|
2
|
-
require 'fluent/test/driver/input'
|
3
|
-
require 'fluent/plugin/in_syslog'
|
4
|
-
|
5
|
-
class SyslogInputTest < Test::Unit::TestCase
|
6
|
-
def setup
|
7
|
-
Fluent::Test.setup
|
8
|
-
@port = unused_port
|
9
|
-
end
|
10
|
-
|
11
|
-
def teardown
|
12
|
-
@port = nil
|
13
|
-
end
|
14
|
-
|
15
|
-
def ipv4_config
|
16
|
-
%[
|
17
|
-
port #{@port}
|
18
|
-
bind 127.0.0.1
|
19
|
-
tag syslog
|
20
|
-
]
|
21
|
-
end
|
22
|
-
|
23
|
-
def ipv6_config
|
24
|
-
%[
|
25
|
-
port #{@port}
|
26
|
-
bind ::1
|
27
|
-
tag syslog
|
28
|
-
]
|
29
|
-
end
|
30
|
-
|
31
|
-
def create_driver(conf=ipv4_config)
|
32
|
-
Fluent::Test::Driver::Input.new(Fluent::Plugin::SyslogInput).configure(conf)
|
33
|
-
end
|
34
|
-
|
35
|
-
data(
|
36
|
-
ipv4: ['127.0.0.1', :ipv4, ::Socket::AF_INET],
|
37
|
-
ipv6: ['::1', :ipv6, ::Socket::AF_INET6],
|
38
|
-
)
|
39
|
-
def test_configure(data)
|
40
|
-
bind_addr, protocol, family = data
|
41
|
-
config = send("#{protocol}_config")
|
42
|
-
omit "IPv6 unavailable" if family == ::Socket::AF_INET6 && !ipv6_enabled?
|
43
|
-
|
44
|
-
d = create_driver(config)
|
45
|
-
assert_equal @port, d.instance.port
|
46
|
-
assert_equal bind_addr, d.instance.bind
|
47
|
-
end
|
48
|
-
|
49
|
-
sub_test_case 'source_hostname_key and source_address_key features' do
|
50
|
-
test 'resolve_hostname must be true with source_hostname_key' do
|
51
|
-
assert_raise(Fluent::ConfigError) {
|
52
|
-
create_driver(ipv4_config + <<EOS)
|
53
|
-
resolve_hostname false
|
54
|
-
source_hostname_key hostname
|
55
|
-
EOS
|
56
|
-
}
|
57
|
-
end
|
58
|
-
|
59
|
-
data('resolve_hostname' => 'resolve_hostname true',
|
60
|
-
'source_hostname_key' => 'source_hostname_key source_host')
|
61
|
-
def test_configure_resolve_hostname(param)
|
62
|
-
d = create_driver([ipv4_config, param].join("\n"))
|
63
|
-
assert_true d.instance.resolve_hostname
|
64
|
-
end
|
65
|
-
end
|
66
|
-
|
67
|
-
data('Use protocol_type' => ['protocol_type tcp', :tcp, :udp],
|
68
|
-
'Use transport' => ["<transport tcp>\n </transport>", nil, :tcp],
|
69
|
-
'Use transport and protocol' => ["protocol_type udp\n<transport tcp>\n </transport>", :udp, :tcp])
|
70
|
-
def test_configure_protocol(param)
|
71
|
-
conf, proto_type, transport_proto_type = *param
|
72
|
-
d = create_driver([ipv4_config, conf].join("\n"))
|
73
|
-
|
74
|
-
assert_equal(d.instance.protocol_type, proto_type)
|
75
|
-
assert_equal(d.instance.transport_config.protocol, transport_proto_type)
|
76
|
-
end
|
77
|
-
|
78
|
-
# For backward compat
|
79
|
-
def test_respect_protocol_type_than_transport
|
80
|
-
d = create_driver([ipv4_config, "<transport tcp> \n</transport>", "protocol_type udp"].join("\n"))
|
81
|
-
tests = create_test_case
|
82
|
-
|
83
|
-
d.run(expect_emits: 2) do
|
84
|
-
u = UDPSocket.new
|
85
|
-
u.connect('127.0.0.1', @port)
|
86
|
-
tests.each {|test|
|
87
|
-
u.send(test['msg'], 0)
|
88
|
-
}
|
89
|
-
end
|
90
|
-
|
91
|
-
assert(d.events.size > 0)
|
92
|
-
compare_test_result(d.events, tests)
|
93
|
-
end
|
94
|
-
|
95
|
-
|
96
|
-
data(
|
97
|
-
ipv4: ['127.0.0.1', :ipv4, ::Socket::AF_INET],
|
98
|
-
ipv6: ['::1', :ipv6, ::Socket::AF_INET6],
|
99
|
-
)
|
100
|
-
def test_time_format(data)
|
101
|
-
bind_addr, protocol, family = data
|
102
|
-
config = send("#{protocol}_config")
|
103
|
-
omit "IPv6 unavailable" if family == ::Socket::AF_INET6 && !ipv6_enabled?
|
104
|
-
|
105
|
-
d = create_driver(config)
|
106
|
-
|
107
|
-
tests = [
|
108
|
-
{'msg' => '<6>Dec 11 00:00:00 localhost logger: foo', 'expected' => Fluent::EventTime.from_time(Time.strptime('Dec 11 00:00:00', '%b %d %H:%M:%S'))},
|
109
|
-
{'msg' => '<6>Dec 1 00:00:00 localhost logger: foo', 'expected' => Fluent::EventTime.from_time(Time.strptime('Dec 1 00:00:00', '%b %d %H:%M:%S'))},
|
110
|
-
]
|
111
|
-
d.run(expect_emits: 2) do
|
112
|
-
u = UDPSocket.new(family)
|
113
|
-
u.connect(bind_addr, @port)
|
114
|
-
tests.each {|test|
|
115
|
-
u.send(test['msg'], 0)
|
116
|
-
}
|
117
|
-
end
|
118
|
-
|
119
|
-
events = d.events
|
120
|
-
assert(events.size > 0)
|
121
|
-
events.each_index {|i|
|
122
|
-
assert_equal_event_time(tests[i]['expected'], events[i][1])
|
123
|
-
}
|
124
|
-
end
|
125
|
-
|
126
|
-
def test_msg_size
|
127
|
-
d = create_driver
|
128
|
-
tests = create_test_case
|
129
|
-
|
130
|
-
d.run(expect_emits: 2) do
|
131
|
-
u = UDPSocket.new
|
132
|
-
u.connect('127.0.0.1', @port)
|
133
|
-
tests.each {|test|
|
134
|
-
u.send(test['msg'], 0)
|
135
|
-
}
|
136
|
-
end
|
137
|
-
|
138
|
-
assert(d.events.size > 0)
|
139
|
-
compare_test_result(d.events, tests)
|
140
|
-
end
|
141
|
-
|
142
|
-
def test_msg_size_udp_for_large_msg
|
143
|
-
d = create_driver(ipv4_config + %[
|
144
|
-
message_length_limit 5k
|
145
|
-
])
|
146
|
-
tests = create_test_case(large_message: true)
|
147
|
-
|
148
|
-
d.run(expect_emits: 3) do
|
149
|
-
u = UDPSocket.new
|
150
|
-
u.connect('127.0.0.1', @port)
|
151
|
-
tests.each {|test|
|
152
|
-
u.send(test['msg'], 0)
|
153
|
-
}
|
154
|
-
end
|
155
|
-
|
156
|
-
assert(d.events.size > 0)
|
157
|
-
compare_test_result(d.events, tests)
|
158
|
-
end
|
159
|
-
|
160
|
-
def test_msg_size_with_tcp
|
161
|
-
d = create_driver([ipv4_config, "<transport tcp> \n</transport>"].join("\n"))
|
162
|
-
tests = create_test_case
|
163
|
-
|
164
|
-
d.run(expect_emits: 2) do
|
165
|
-
tests.each {|test|
|
166
|
-
TCPSocket.open('127.0.0.1', @port) do |s|
|
167
|
-
s.send(test['msg'], 0)
|
168
|
-
end
|
169
|
-
}
|
170
|
-
end
|
171
|
-
|
172
|
-
assert(d.events.size > 0)
|
173
|
-
compare_test_result(d.events, tests)
|
174
|
-
end
|
175
|
-
|
176
|
-
def test_emit_rfc5452
|
177
|
-
d = create_driver([ipv4_config, "facility_key pri\n<parse>\n message_format rfc5424\nwith_priority true\n</parse>"].join("\n"))
|
178
|
-
msg = '<1>1 2017-02-06T13:14:15.003Z myhostname 02abaf0687f5 10339 02abaf0687f5 - method=POST db=0.00'
|
179
|
-
|
180
|
-
d.run(expect_emits: 1, timeout: 2) do
|
181
|
-
u = UDPSocket.new
|
182
|
-
u.connect('127.0.0.1', @port)
|
183
|
-
u.send(msg, 0)
|
184
|
-
end
|
185
|
-
|
186
|
-
tag, _, event = d.events[0]
|
187
|
-
assert_equal('syslog.kern.alert', tag)
|
188
|
-
assert_equal('kern', event['pri'])
|
189
|
-
end
|
190
|
-
|
191
|
-
def test_msg_size_with_same_tcp_connection
|
192
|
-
d = create_driver([ipv4_config, "<transport tcp> \n</transport>"].join("\n"))
|
193
|
-
tests = create_test_case
|
194
|
-
|
195
|
-
d.run(expect_emits: 2) do
|
196
|
-
TCPSocket.open('127.0.0.1', @port) do |s|
|
197
|
-
tests.each {|test|
|
198
|
-
s.send(test['msg'], 0)
|
199
|
-
}
|
200
|
-
end
|
201
|
-
end
|
202
|
-
|
203
|
-
assert(d.events.size > 0)
|
204
|
-
compare_test_result(d.events, tests)
|
205
|
-
end
|
206
|
-
|
207
|
-
def test_msg_size_with_json_format
|
208
|
-
d = create_driver([ipv4_config, 'format json'].join("\n"))
|
209
|
-
time = Time.parse('2013-09-18 12:00:00 +0900').to_i
|
210
|
-
tests = ['Hello!', 'Syslog!'].map { |msg|
|
211
|
-
event = {'time' => time, 'message' => msg}
|
212
|
-
{'msg' => '<6>' + event.to_json + "\n", 'expected' => msg}
|
213
|
-
}
|
214
|
-
|
215
|
-
d.run(expect_emits: 2) do
|
216
|
-
u = UDPSocket.new
|
217
|
-
u.connect('127.0.0.1', @port)
|
218
|
-
tests.each {|test|
|
219
|
-
u.send(test['msg'], 0)
|
220
|
-
}
|
221
|
-
end
|
222
|
-
|
223
|
-
assert(d.events.size > 0)
|
224
|
-
compare_test_result(d.events, tests)
|
225
|
-
end
|
226
|
-
|
227
|
-
def test_msg_size_with_include_source_host
|
228
|
-
d = create_driver([ipv4_config, 'include_source_host true'].join("\n"))
|
229
|
-
tests = create_test_case
|
230
|
-
|
231
|
-
host = nil
|
232
|
-
d.run(expect_emits: 2) do
|
233
|
-
u = UDPSocket.new
|
234
|
-
u.connect('127.0.0.1', @port)
|
235
|
-
host = u.peeraddr[2]
|
236
|
-
tests.each {|test|
|
237
|
-
u.send(test['msg'], 0)
|
238
|
-
}
|
239
|
-
end
|
240
|
-
|
241
|
-
assert(d.events.size > 0)
|
242
|
-
compare_test_result(d.events, tests, {host: host})
|
243
|
-
end
|
244
|
-
|
245
|
-
data(
|
246
|
-
severity_key: 'severity_key',
|
247
|
-
priority_key: 'priority_key',
|
248
|
-
)
|
249
|
-
def test_msg_size_with_severity_key(param_name)
|
250
|
-
d = create_driver([ipv4_config, "#{param_name} severity"].join("\n"))
|
251
|
-
tests = create_test_case
|
252
|
-
|
253
|
-
severity = 'info'
|
254
|
-
d.run(expect_emits: 2) do
|
255
|
-
u = UDPSocket.new
|
256
|
-
u.connect('127.0.0.1', @port)
|
257
|
-
tests.each {|test|
|
258
|
-
u.send(test['msg'], 0)
|
259
|
-
}
|
260
|
-
end
|
261
|
-
|
262
|
-
assert(d.events.size > 0)
|
263
|
-
compare_test_result(d.events, tests, {severity: severity})
|
264
|
-
end
|
265
|
-
|
266
|
-
def test_msg_size_with_facility_key
|
267
|
-
d = create_driver([ipv4_config, 'facility_key facility'].join("\n"))
|
268
|
-
tests = create_test_case
|
269
|
-
|
270
|
-
facility = 'kern'
|
271
|
-
d.run(expect_emits: 2) do
|
272
|
-
u = UDPSocket.new
|
273
|
-
u.connect('127.0.0.1', @port)
|
274
|
-
tests.each {|test|
|
275
|
-
u.send(test['msg'], 0)
|
276
|
-
}
|
277
|
-
end
|
278
|
-
|
279
|
-
assert(d.events.size > 0)
|
280
|
-
compare_test_result(d.events, tests, {facility: facility})
|
281
|
-
end
|
282
|
-
|
283
|
-
def test_msg_size_with_source_address_key
|
284
|
-
d = create_driver([ipv4_config, 'source_address_key source_address'].join("\n"))
|
285
|
-
tests = create_test_case
|
286
|
-
|
287
|
-
address = nil
|
288
|
-
d.run(expect_emits: 2) do
|
289
|
-
u = UDPSocket.new
|
290
|
-
u.connect('127.0.0.1', @port)
|
291
|
-
address = u.peeraddr[3]
|
292
|
-
tests.each {|test|
|
293
|
-
u.send(test['msg'], 0)
|
294
|
-
}
|
295
|
-
end
|
296
|
-
|
297
|
-
assert(d.events.size > 0)
|
298
|
-
compare_test_result(d.events, tests, {address: address})
|
299
|
-
end
|
300
|
-
|
301
|
-
def test_msg_size_with_source_hostname_key
|
302
|
-
d = create_driver([ipv4_config, 'source_hostname_key source_hostname'].join("\n"))
|
303
|
-
tests = create_test_case
|
304
|
-
|
305
|
-
hostname = nil
|
306
|
-
d.run(expect_emits: 2) do
|
307
|
-
u = UDPSocket.new
|
308
|
-
u.do_not_reverse_lookup = false
|
309
|
-
u.connect('127.0.0.1', @port)
|
310
|
-
hostname = u.peeraddr[2]
|
311
|
-
tests.each {|test|
|
312
|
-
u.send(test['msg'], 0)
|
313
|
-
}
|
314
|
-
end
|
315
|
-
|
316
|
-
assert(d.events.size > 0)
|
317
|
-
compare_test_result(d.events, tests, {hostname: hostname})
|
318
|
-
end
|
319
|
-
|
320
|
-
def create_test_case(large_message: false)
|
321
|
-
# actual syslog message has "\n"
|
322
|
-
if large_message
|
323
|
-
[
|
324
|
-
{'msg' => '<6>Sep 10 00:00:00 localhost logger: ' + 'x' * 100 + "\n", 'expected' => 'x' * 100},
|
325
|
-
{'msg' => '<6>Sep 10 00:00:00 localhost logger: ' + 'x' * 1024 + "\n", 'expected' => 'x' * 1024},
|
326
|
-
{'msg' => '<6>Sep 10 00:00:00 localhost logger: ' + 'x' * 4096 + "\n", 'expected' => 'x' * 4096},
|
327
|
-
]
|
328
|
-
else
|
329
|
-
[
|
330
|
-
{'msg' => '<6>Sep 10 00:00:00 localhost logger: ' + 'x' * 100 + "\n", 'expected' => 'x' * 100},
|
331
|
-
{'msg' => '<6>Sep 10 00:00:00 localhost logger: ' + 'x' * 1024 + "\n", 'expected' => 'x' * 1024},
|
332
|
-
]
|
333
|
-
end
|
334
|
-
end
|
335
|
-
|
336
|
-
def compare_test_result(events, tests, options = {})
|
337
|
-
events.each_index { |i|
|
338
|
-
assert_equal('syslog.kern.info', events[i][0]) # <6> means kern.info
|
339
|
-
assert_equal(tests[i]['expected'], events[i][2]['message'])
|
340
|
-
assert_equal(options[:host], events[i][2]['source_host']) if options[:host]
|
341
|
-
assert_equal(options[:address], events[i][2]['source_address']) if options[:address]
|
342
|
-
assert_equal(options[:hostname], events[i][2]['source_hostname']) if options[:hostname]
|
343
|
-
assert_equal(options[:severity], events[i][2]['severity']) if options[:severity]
|
344
|
-
assert_equal(options[:facility], events[i][2]['facility']) if options[:facility]
|
345
|
-
}
|
346
|
-
end
|
347
|
-
|
348
|
-
sub_test_case 'octet counting frame' do
|
349
|
-
def test_msg_size_with_tcp
|
350
|
-
d = create_driver([ipv4_config, "<transport tcp> \n</transport>", 'frame_type octet_count'].join("\n"))
|
351
|
-
tests = create_test_case
|
352
|
-
|
353
|
-
d.run(expect_emits: 2) do
|
354
|
-
tests.each {|test|
|
355
|
-
TCPSocket.open('127.0.0.1', @port) do |s|
|
356
|
-
s.send(test['msg'], 0)
|
357
|
-
end
|
358
|
-
}
|
359
|
-
end
|
360
|
-
|
361
|
-
assert(d.events.size > 0)
|
362
|
-
compare_test_result(d.events, tests)
|
363
|
-
end
|
364
|
-
|
365
|
-
def test_msg_size_with_same_tcp_connection
|
366
|
-
d = create_driver([ipv4_config, "<transport tcp> \n</transport>", 'frame_type octet_count'].join("\n"))
|
367
|
-
tests = create_test_case
|
368
|
-
|
369
|
-
d.run(expect_emits: 2) do
|
370
|
-
TCPSocket.open('127.0.0.1', @port) do |s|
|
371
|
-
tests.each {|test|
|
372
|
-
s.send(test['msg'], 0)
|
373
|
-
}
|
374
|
-
end
|
375
|
-
end
|
376
|
-
|
377
|
-
assert(d.events.size > 0)
|
378
|
-
compare_test_result(d.events, tests)
|
379
|
-
end
|
380
|
-
|
381
|
-
def create_test_case(large_message: false)
|
382
|
-
msgs = [
|
383
|
-
{'msg' => '<6>Sep 10 00:00:00 localhost logger: ' + 'x' * 100, 'expected' => 'x' * 100},
|
384
|
-
{'msg' => '<6>Sep 10 00:00:00 localhost logger: ' + 'x' * 1024, 'expected' => 'x' * 1024},
|
385
|
-
]
|
386
|
-
msgs.each { |msg|
|
387
|
-
m = msg['msg']
|
388
|
-
msg['msg'] = "#{m.size} #{m}"
|
389
|
-
}
|
390
|
-
msgs
|
391
|
-
end
|
392
|
-
end
|
393
|
-
|
394
|
-
def create_unmatched_lines_test_case
|
395
|
-
[
|
396
|
-
# valid message
|
397
|
-
{'msg' => '<6>Sep 10 00:00:00 localhost logger: xxx', 'expected' => {'host'=>'localhost', 'ident'=>'logger', 'message'=>'xxx'}},
|
398
|
-
# missing priority
|
399
|
-
{'msg' => 'hello world', 'expected' => {'unmatched_line' => 'hello world'}},
|
400
|
-
# timestamp parsing failure
|
401
|
-
{'msg' => '<6>ZZZ 99 99:99:99 localhost logger: xxx', 'expected' => {'unmatched_line' => '<6>ZZZ 99 99:99:99 localhost logger: xxx'}},
|
402
|
-
]
|
403
|
-
end
|
404
|
-
|
405
|
-
def compare_unmatched_lines_test_result(events, tests, options = {})
|
406
|
-
events.each_index { |i|
|
407
|
-
tests[i]['expected'].each { |k,v|
|
408
|
-
assert_equal v, events[i][2][k], "No key <#{k}> in response or value mismatch"
|
409
|
-
}
|
410
|
-
assert_equal('syslog.unmatched', events[i][0], 'tag does not match syslog.unmatched') unless i==0
|
411
|
-
assert_equal(options[:address], events[i][2]['source_address'], 'response has no source_address or mismatch') if options[:address]
|
412
|
-
assert_equal(options[:hostname], events[i][2]['source_hostname'], 'response has no source_hostname or mismatch') if options[:hostname]
|
413
|
-
}
|
414
|
-
end
|
415
|
-
|
416
|
-
def test_emit_unmatched_lines
|
417
|
-
d = create_driver([ipv4_config, 'emit_unmatched_lines true'].join("\n"))
|
418
|
-
tests = create_unmatched_lines_test_case
|
419
|
-
|
420
|
-
d.run(expect_emits: 3) do
|
421
|
-
u = UDPSocket.new
|
422
|
-
u.do_not_reverse_lookup = false
|
423
|
-
u.connect('127.0.0.1', @port)
|
424
|
-
tests.each {|test|
|
425
|
-
u.send(test['msg'], 0)
|
426
|
-
}
|
427
|
-
end
|
428
|
-
|
429
|
-
assert_equal tests.size, d.events.size
|
430
|
-
compare_unmatched_lines_test_result(d.events, tests)
|
431
|
-
end
|
432
|
-
|
433
|
-
def test_emit_unmatched_lines_with_hostname
|
434
|
-
d = create_driver([ipv4_config, 'emit_unmatched_lines true', 'source_hostname_key source_hostname'].join("\n"))
|
435
|
-
tests = create_unmatched_lines_test_case
|
436
|
-
|
437
|
-
hostname = nil
|
438
|
-
d.run(expect_emits: 3) do
|
439
|
-
u = UDPSocket.new
|
440
|
-
u.do_not_reverse_lookup = false
|
441
|
-
u.connect('127.0.0.1', @port)
|
442
|
-
hostname = u.peeraddr[2]
|
443
|
-
tests.each {|test|
|
444
|
-
u.send(test['msg'], 0)
|
445
|
-
}
|
446
|
-
end
|
447
|
-
|
448
|
-
assert_equal tests.size, d.events.size
|
449
|
-
compare_unmatched_lines_test_result(d.events, tests, {hostname: hostname})
|
450
|
-
end
|
451
|
-
|
452
|
-
def test_emit_unmatched_lines_with_address
|
453
|
-
d = create_driver([ipv4_config, 'emit_unmatched_lines true', 'source_address_key source_address'].join("\n"))
|
454
|
-
tests = create_unmatched_lines_test_case
|
455
|
-
|
456
|
-
address = nil
|
457
|
-
d.run(expect_emits: 3) do
|
458
|
-
u = UDPSocket.new
|
459
|
-
u.do_not_reverse_lookup = false
|
460
|
-
u.connect('127.0.0.1', @port)
|
461
|
-
address = u.peeraddr[3]
|
462
|
-
tests.each {|test|
|
463
|
-
u.send(test['msg'], 0)
|
464
|
-
}
|
465
|
-
end
|
466
|
-
|
467
|
-
assert_equal tests.size, d.events.size
|
468
|
-
compare_unmatched_lines_test_result(d.events, tests, {address: address})
|
469
|
-
end
|
470
|
-
|
471
|
-
def test_send_keepalive_packet_is_disabled_by_default
|
472
|
-
d = create_driver(ipv4_config + %[
|
473
|
-
<transport tcp>
|
474
|
-
</transport>
|
475
|
-
protocol tcp
|
476
|
-
])
|
477
|
-
assert_false d.instance.send_keepalive_packet
|
478
|
-
end
|
479
|
-
|
480
|
-
def test_send_keepalive_packet_can_be_enabled
|
481
|
-
addr = "127.0.0.1"
|
482
|
-
d = create_driver(ipv4_config + %[
|
483
|
-
<transport tcp>
|
484
|
-
</transport>
|
485
|
-
send_keepalive_packet true
|
486
|
-
])
|
487
|
-
assert_true d.instance.send_keepalive_packet
|
488
|
-
mock.proxy(d.instance).server_create_connection(
|
489
|
-
:in_syslog_tcp_server, @port,
|
490
|
-
bind: addr,
|
491
|
-
resolve_name: nil,
|
492
|
-
send_keepalive_packet: true)
|
493
|
-
d.run do
|
494
|
-
TCPSocket.open(addr, @port)
|
495
|
-
end
|
496
|
-
end
|
497
|
-
|
498
|
-
def test_send_keepalive_packet_can_not_be_enabled_for_udp
|
499
|
-
assert_raise(Fluent::ConfigError) do
|
500
|
-
create_driver(ipv4_config + %[
|
501
|
-
send_keepalive_packet true
|
502
|
-
])
|
503
|
-
end
|
504
|
-
end
|
505
|
-
end
|