fluentd 1.16.7-x64-mingw-ucrt → 1.17.0-x64-mingw-ucrt
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/DISCUSSION_TEMPLATE/q-a-japanese.yml +50 -0
- data/.github/DISCUSSION_TEMPLATE/q-a.yml +47 -0
- data/.github/workflows/test-ruby-head.yml +31 -0
- data/.github/workflows/test.yml +2 -9
- data/CHANGELOG.md +34 -42
- data/README.md +3 -1
- data/Rakefile +1 -1
- data/fluentd.gemspec +9 -9
- data/lib/fluent/command/binlog_reader.rb +1 -1
- data/lib/fluent/command/fluentd.rb +1 -1
- data/lib/fluent/config/configure_proxy.rb +2 -2
- data/lib/fluent/config/types.rb +1 -1
- data/lib/fluent/config/yaml_parser/parser.rb +0 -4
- data/lib/fluent/configurable.rb +2 -2
- data/lib/fluent/counter/mutex_hash.rb +1 -1
- data/lib/fluent/fluent_log_event_router.rb +0 -2
- data/lib/fluent/plugin/buf_file.rb +1 -1
- data/lib/fluent/plugin/buffer/file_chunk.rb +1 -1
- data/lib/fluent/plugin/buffer/file_single_chunk.rb +2 -3
- data/lib/fluent/plugin/filter_parser.rb +26 -8
- data/lib/fluent/plugin/in_http.rb +18 -53
- data/lib/fluent/plugin/in_tail.rb +34 -2
- data/lib/fluent/plugin/out_file.rb +0 -8
- data/lib/fluent/plugin/out_http.rb +125 -13
- data/lib/fluent/plugin/owned_by_mixin.rb +0 -1
- data/lib/fluent/plugin/parser_json.rb +34 -9
- data/lib/fluent/plugin/parser_msgpack.rb +24 -3
- data/lib/fluent/plugin_helper/metrics.rb +2 -2
- data/lib/fluent/registry.rb +6 -6
- data/lib/fluent/supervisor.rb +1 -1
- data/lib/fluent/test/output_test.rb +1 -1
- data/lib/fluent/unique_id.rb +1 -1
- data/lib/fluent/version.rb +1 -1
- data/lib/fluent/winsvc.rb +3 -28
- data/test/command/test_cat.rb +2 -2
- data/test/command/test_fluentd.rb +10 -57
- data/test/helper.rb +7 -27
- data/test/log/test_console_adapter.rb +10 -3
- 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/in_tail/test_io_handler.rb +14 -13
- data/test/plugin/in_tail/test_position_file.rb +7 -6
- data/test/plugin/out_forward/test_ack_handler.rb +3 -3
- data/test/plugin/out_forward/test_socket_cache.rb +3 -3
- data/test/plugin/test_in_forward.rb +1 -2
- data/test/plugin/test_in_http.rb +24 -2
- data/test/plugin/test_in_monitor_agent.rb +6 -6
- data/test/plugin/test_in_syslog.rb +18 -25
- data/test/plugin/test_in_tail.rb +153 -4
- data/test/plugin/test_in_tcp.rb +1 -1
- data/test/plugin/test_in_udp.rb +10 -16
- data/test/plugin/test_out_exec_filter.rb +7 -12
- data/test/plugin/test_out_file.rb +2 -22
- data/test/plugin/test_out_forward.rb +3 -2
- data/test/plugin/test_out_http.rb +128 -0
- data/test/plugin/test_out_stream.rb +1 -1
- data/test/plugin/test_owned_by.rb +0 -1
- data/test/plugin/test_parser_json.rb +106 -31
- data/test/plugin/test_parser_msgpack.rb +127 -0
- data/test/plugin/test_storage.rb +0 -1
- data/test/plugin_helper/test_child_process.rb +4 -4
- data/test/plugin_helper/test_http_server_helper.rb +1 -1
- data/test/plugin_helper/test_server.rb +41 -64
- data/test/plugin_helper/test_socket.rb +1 -1
- data/test/test_config.rb +0 -6
- data/test/test_event_router.rb +2 -2
- metadata +90 -21
@@ -128,14 +128,11 @@ class TestFluentdCommand < ::Test::Unit::TestCase
|
|
128
128
|
|
129
129
|
# ATTENTION: This stops taking logs when all `pattern_list` match or timeout,
|
130
130
|
# so `patterns_not_match` can test only logs up to that point.
|
131
|
-
# You can pass a block to assert something after log matching.
|
132
131
|
def assert_log_matches(cmdline, *pattern_list, patterns_not_match: [], timeout: 20, env: {})
|
133
132
|
matched = false
|
134
133
|
matched_wrongly = false
|
135
|
-
|
134
|
+
assert_error_msg = ""
|
136
135
|
stdio_buf = ""
|
137
|
-
succeeded_block = true
|
138
|
-
error_msg_block = ""
|
139
136
|
begin
|
140
137
|
execute_command(cmdline, @tmp_dir, env) do |pid, stdout|
|
141
138
|
begin
|
@@ -166,13 +163,6 @@ class TestFluentdCommand < ::Test::Unit::TestCase
|
|
166
163
|
end
|
167
164
|
end
|
168
165
|
end
|
169
|
-
|
170
|
-
begin
|
171
|
-
yield if block_given?
|
172
|
-
rescue => e
|
173
|
-
succeeded_block = false
|
174
|
-
error_msg_block = "failed block execution after matching: #{e}"
|
175
|
-
end
|
176
166
|
ensure
|
177
167
|
if SUPERVISOR_PID_PATTERN =~ stdio_buf
|
178
168
|
@supervisor_pid = $1.to_i
|
@@ -183,19 +173,19 @@ class TestFluentdCommand < ::Test::Unit::TestCase
|
|
183
173
|
end
|
184
174
|
end
|
185
175
|
rescue Timeout::Error
|
186
|
-
|
176
|
+
assert_error_msg = "execution timeout"
|
187
177
|
# https://github.com/fluent/fluentd/issues/4095
|
188
178
|
# On Windows, timeout without `@supervisor_pid` means that the test is invalid,
|
189
179
|
# since the supervisor process will survive without being killed correctly.
|
190
180
|
flunk("Invalid test: The pid of supervisor could not be taken, which is necessary on Windows.") if Fluent.windows? && @supervisor_pid.nil?
|
191
181
|
rescue => e
|
192
|
-
|
182
|
+
assert_error_msg = "unexpected error in launching fluentd: #{e.inspect}"
|
193
183
|
else
|
194
|
-
|
184
|
+
assert_error_msg = "log doesn't match" unless matched
|
195
185
|
end
|
196
186
|
|
197
187
|
if patterns_not_match.empty?
|
198
|
-
|
188
|
+
assert_error_msg = build_message(assert_error_msg,
|
199
189
|
"<?>\nwas expected to include:\n<?>",
|
200
190
|
stdio_buf, pattern_list)
|
201
191
|
else
|
@@ -207,17 +197,16 @@ class TestFluentdCommand < ::Test::Unit::TestCase
|
|
207
197
|
lines.any?{|line| line.include?(ptn) }
|
208
198
|
end
|
209
199
|
if matched_wrongly
|
210
|
-
|
211
|
-
|
200
|
+
assert_error_msg << "\n" unless assert_error_msg.empty?
|
201
|
+
assert_error_msg << "pattern exists in logs wrongly: #{ptn}"
|
212
202
|
end
|
213
203
|
end
|
214
|
-
|
204
|
+
assert_error_msg = build_message(assert_error_msg,
|
215
205
|
"<?>\nwas expected to include:\n<?>\nand not include:\n<?>",
|
216
206
|
stdio_buf, pattern_list, patterns_not_match)
|
217
207
|
end
|
218
208
|
|
219
|
-
assert matched && !matched_wrongly,
|
220
|
-
assert succeeded_block, error_msg_block if block_given?
|
209
|
+
assert matched && !matched_wrongly, assert_error_msg
|
221
210
|
end
|
222
211
|
|
223
212
|
def assert_fluentd_fails_to_start(cmdline, *pattern_list, timeout: 20)
|
@@ -1175,7 +1164,7 @@ CONF
|
|
1175
1164
|
end
|
1176
1165
|
end
|
1177
1166
|
|
1178
|
-
sub_test_case '
|
1167
|
+
sub_test_case 'sahred socket options' do
|
1179
1168
|
test 'enable shared socket by default' do
|
1180
1169
|
conf = ""
|
1181
1170
|
conf_path = create_conf_file('empty.conf', conf)
|
@@ -1299,40 +1288,4 @@ CONF
|
|
1299
1288
|
"[debug]")
|
1300
1289
|
end
|
1301
1290
|
end
|
1302
|
-
|
1303
|
-
sub_test_case "plugin option" do
|
1304
|
-
test "should be the default value when not specifying" do
|
1305
|
-
conf_path = create_conf_file('test.conf', <<~CONF)
|
1306
|
-
<source>
|
1307
|
-
@type monitor_agent
|
1308
|
-
</source>
|
1309
|
-
CONF
|
1310
|
-
assert File.exist?(conf_path)
|
1311
|
-
cmdline = create_cmdline(conf_path)
|
1312
|
-
|
1313
|
-
assert_log_matches(cmdline, "fluentd worker is now running") do
|
1314
|
-
response = Net::HTTP.get(URI.parse("http://localhost:24220/api/config.json"))
|
1315
|
-
actual_conf = JSON.parse(response)
|
1316
|
-
assert_equal Fluent::Supervisor.default_options[:plugin_dirs], actual_conf["plugin_dirs"]
|
1317
|
-
end
|
1318
|
-
end
|
1319
|
-
|
1320
|
-
data(short: "-p")
|
1321
|
-
data(long: "--plugin")
|
1322
|
-
test "can be added by specifying the option" do |option_name|
|
1323
|
-
conf_path = create_conf_file('test.conf', <<~CONF)
|
1324
|
-
<source>
|
1325
|
-
@type monitor_agent
|
1326
|
-
</source>
|
1327
|
-
CONF
|
1328
|
-
assert File.exist?(conf_path)
|
1329
|
-
cmdline = create_cmdline(conf_path, option_name, @tmp_dir, option_name, @tmp_dir)
|
1330
|
-
|
1331
|
-
assert_log_matches(cmdline, "fluentd worker is now running") do
|
1332
|
-
response = Net::HTTP.get(URI.parse("http://localhost:24220/api/config.json"))
|
1333
|
-
actual_conf = JSON.parse(response)
|
1334
|
-
assert_equal Fluent::Supervisor.default_options[:plugin_dirs] + [@tmp_dir, @tmp_dir], actual_conf["plugin_dirs"]
|
1335
|
-
end
|
1336
|
-
end
|
1337
|
-
end
|
1338
1291
|
end
|
data/test/helper.rb
CHANGED
@@ -71,31 +71,17 @@ end
|
|
71
71
|
|
72
72
|
include Fluent::Test::Helpers
|
73
73
|
|
74
|
-
def unused_port(num = 1, protocol
|
74
|
+
def unused_port(num = 1, protocol: :tcp, bind: "0.0.0.0")
|
75
75
|
case protocol
|
76
|
-
when :tcp
|
76
|
+
when :tcp
|
77
77
|
unused_port_tcp(num)
|
78
78
|
when :udp
|
79
79
|
unused_port_udp(num, bind: bind)
|
80
|
-
when :all
|
81
|
-
unused_port_tcp_udp(num)
|
82
80
|
else
|
83
81
|
raise ArgumentError, "unknown protocol: #{protocol}"
|
84
82
|
end
|
85
83
|
end
|
86
84
|
|
87
|
-
def unused_port_tcp_udp(num = 1)
|
88
|
-
raise "not support num > 1" if num > 1
|
89
|
-
|
90
|
-
# The default maximum number of file descriptors in macOS is 256.
|
91
|
-
# It might need to set num to a smaller value than that.
|
92
|
-
tcp_ports = unused_port_tcp(200)
|
93
|
-
port = unused_port_udp(1, port_list: tcp_ports)
|
94
|
-
raise "can't find unused port" unless port
|
95
|
-
|
96
|
-
port
|
97
|
-
end
|
98
|
-
|
99
85
|
def unused_port_tcp(num = 1)
|
100
86
|
ports = []
|
101
87
|
sockets = []
|
@@ -104,7 +90,7 @@ def unused_port_tcp(num = 1)
|
|
104
90
|
sockets << s
|
105
91
|
ports << s.addr[1]
|
106
92
|
end
|
107
|
-
sockets.each
|
93
|
+
sockets.each{|s| s.close }
|
108
94
|
if num == 1
|
109
95
|
return ports.first
|
110
96
|
else
|
@@ -114,15 +100,12 @@ end
|
|
114
100
|
|
115
101
|
PORT_RANGE_AVAILABLE = (1024...65535)
|
116
102
|
|
117
|
-
def unused_port_udp(num = 1,
|
103
|
+
def unused_port_udp(num = 1, bind: "0.0.0.0")
|
118
104
|
family = IPAddr.new(IPSocket.getaddress(bind)).ipv4? ? ::Socket::AF_INET : ::Socket::AF_INET6
|
119
105
|
ports = []
|
120
106
|
sockets = []
|
121
|
-
|
122
|
-
|
123
|
-
i = 0
|
124
|
-
loop do
|
125
|
-
port = use_random_port ? rand(PORT_RANGE_AVAILABLE) : port_list[i]
|
107
|
+
while ports.size < num
|
108
|
+
port = rand(PORT_RANGE_AVAILABLE)
|
126
109
|
u = UDPSocket.new(family)
|
127
110
|
if (u.bind(bind, port) rescue nil)
|
128
111
|
ports << port
|
@@ -130,11 +113,8 @@ def unused_port_udp(num = 1, port_list: [], bind: "0.0.0.0")
|
|
130
113
|
else
|
131
114
|
u.close
|
132
115
|
end
|
133
|
-
i += 1
|
134
|
-
break if ports.size >= num
|
135
|
-
break if !use_random_port && i >= port_list.size
|
136
116
|
end
|
137
|
-
sockets.each
|
117
|
+
sockets.each{|s| s.close }
|
138
118
|
if num == 1
|
139
119
|
return ports.first
|
140
120
|
else
|
@@ -72,11 +72,18 @@ class ConsoleAdapterTest < Test::Unit::TestCase
|
|
72
72
|
fatal: :fatal)
|
73
73
|
def test_options(level)
|
74
74
|
@console_logger.send(level, "subject", kwarg1: "opt1", kwarg2: "opt2")
|
75
|
+
lines = @logdev.logs[0].split("\n")
|
76
|
+
args = JSON.load(lines[1..].collect { |str| str.sub(/\s+\|/, "") }.join("\n"));
|
75
77
|
assert_equal([
|
76
|
-
|
77
|
-
"
|
78
|
+
1,
|
79
|
+
"#{@timestamp_str} [#{level}]: 0.0s: subject",
|
80
|
+
{ "kwarg1" => "opt1", "kwarg2" => "opt2" }
|
78
81
|
],
|
79
|
-
|
82
|
+
[
|
83
|
+
@logdev.logs.size,
|
84
|
+
lines[0],
|
85
|
+
args
|
86
|
+
])
|
80
87
|
end
|
81
88
|
|
82
89
|
data(debug: :debug,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -5,19 +5,20 @@ require 'fluent/plugin/metrics_local'
|
|
5
5
|
require 'tempfile'
|
6
6
|
|
7
7
|
class IntailIOHandlerTest < Test::Unit::TestCase
|
8
|
-
|
9
|
-
Tempfile.
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
8
|
+
setup do
|
9
|
+
@file = Tempfile.new('intail_io_handler').binmode
|
10
|
+
opened_file_metrics = Fluent::Plugin::LocalMetrics.new
|
11
|
+
opened_file_metrics.configure(config_element('metrics', '', {}))
|
12
|
+
closed_file_metrics = Fluent::Plugin::LocalMetrics.new
|
13
|
+
closed_file_metrics.configure(config_element('metrics', '', {}))
|
14
|
+
rotated_file_metrics = Fluent::Plugin::LocalMetrics.new
|
15
|
+
rotated_file_metrics.configure(config_element('metrics', '', {}))
|
16
|
+
@metrics = Fluent::Plugin::TailInput::MetricsInfo.new(opened_file_metrics, closed_file_metrics, rotated_file_metrics)
|
17
|
+
end
|
18
|
+
|
19
|
+
teardown do
|
20
|
+
@file.close rescue nil
|
21
|
+
@file.unlink rescue nil
|
21
22
|
end
|
22
23
|
|
23
24
|
def create_target_info
|
@@ -6,12 +6,13 @@ require 'fileutils'
|
|
6
6
|
require 'tempfile'
|
7
7
|
|
8
8
|
class IntailPositionFileTest < Test::Unit::TestCase
|
9
|
-
|
10
|
-
Tempfile.
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
9
|
+
setup do
|
10
|
+
@file = Tempfile.new('intail_position_file_test').binmode
|
11
|
+
end
|
12
|
+
|
13
|
+
teardown do
|
14
|
+
@file.close rescue nil
|
15
|
+
@file.unlink rescue nil
|
15
16
|
end
|
16
17
|
|
17
18
|
UNWATCHED_STR = '%016x' % Fluent::Plugin::TailInput::PositionFile::UNWATCHED_POSITION
|
@@ -111,11 +111,11 @@ class AckHandlerTest < Test::Unit::TestCase
|
|
111
111
|
r, w = IO.pipe
|
112
112
|
begin
|
113
113
|
w.write(chunk_id)
|
114
|
-
|
114
|
+
stub(r).recv { |_|
|
115
115
|
sleep(1) # To ensure that multiple threads select the socket before closing.
|
116
|
-
raise IOError, 'stream closed in another thread' if
|
116
|
+
raise IOError, 'stream closed in another thread' if r.closed?
|
117
117
|
MessagePack.pack({ 'ack' => Base64.encode64('chunk_id 111') })
|
118
|
-
|
118
|
+
}
|
119
119
|
ack.enqueue(r)
|
120
120
|
|
121
121
|
threads = []
|
@@ -17,7 +17,7 @@ class SocketCacheTest < Test::Unit::TestCase
|
|
17
17
|
assert_equal(socket, c.checkout_or('key') { socket })
|
18
18
|
c.checkin(socket)
|
19
19
|
|
20
|
-
sock = mock
|
20
|
+
sock = dont_allow(mock!).open
|
21
21
|
assert_equal(socket, c.checkout_or('key') { sock.open })
|
22
22
|
end
|
23
23
|
|
@@ -130,7 +130,7 @@ class SocketCacheTest < Test::Unit::TestCase
|
|
130
130
|
|
131
131
|
c = Fluent::Plugin::ForwardOutput::SocketCache.new(10, $log)
|
132
132
|
sock = mock!.close { 'closed' }.subject
|
133
|
-
sock2 = mock
|
133
|
+
sock2 = dont_allow(mock!).close
|
134
134
|
stub(sock).inspect
|
135
135
|
stub(sock2).inspect
|
136
136
|
|
@@ -154,7 +154,7 @@ class SocketCacheTest < Test::Unit::TestCase
|
|
154
154
|
Timecop.freeze(Time.parse('2016-04-13 14:00:00 +0900'))
|
155
155
|
|
156
156
|
c = Fluent::Plugin::ForwardOutput::SocketCache.new(10, $log)
|
157
|
-
sock = mock
|
157
|
+
sock = dont_allow(mock!).close
|
158
158
|
stub(sock).inspect
|
159
159
|
c.checkout_or('key') { sock }
|
160
160
|
|
@@ -18,8 +18,7 @@ class ForwardInputTest < Test::Unit::TestCase
|
|
18
18
|
Fluent::Test.setup
|
19
19
|
@responses = [] # for testing responses after sending data
|
20
20
|
@d = nil
|
21
|
-
|
22
|
-
@port = unused_port(protocol: :all)
|
21
|
+
@port = unused_port
|
23
22
|
end
|
24
23
|
|
25
24
|
def teardown
|
data/test/plugin/test_in_http.rb
CHANGED
@@ -18,7 +18,7 @@ class HttpInputTest < Test::Unit::TestCase
|
|
18
18
|
|
19
19
|
def setup
|
20
20
|
Fluent::Test.setup
|
21
|
-
@port = unused_port
|
21
|
+
@port = unused_port
|
22
22
|
end
|
23
23
|
|
24
24
|
def teardown
|
@@ -517,6 +517,28 @@ class HttpInputTest < Test::Unit::TestCase
|
|
517
517
|
assert_equal_event_time time, d.events[1][1]
|
518
518
|
end
|
519
519
|
|
520
|
+
def test_csp_report
|
521
|
+
d = create_driver
|
522
|
+
time = event_time("2011-01-02 13:14:15 UTC")
|
523
|
+
time_i = time.to_i
|
524
|
+
events = [
|
525
|
+
["tag1", time, {"a"=>1}],
|
526
|
+
["tag2", time, {"a"=>2}],
|
527
|
+
]
|
528
|
+
res_codes = []
|
529
|
+
|
530
|
+
d.run(expect_records: 2) do
|
531
|
+
events.each do |tag, t, record|
|
532
|
+
res = post("/#{tag}?time=#{time_i.to_s}", record.to_json, {"Content-Type"=>"application/csp-report; charset=utf-8"})
|
533
|
+
res_codes << res.code
|
534
|
+
end
|
535
|
+
end
|
536
|
+
assert_equal ["200", "200"], res_codes
|
537
|
+
assert_equal events, d.events
|
538
|
+
assert_equal_event_time time, d.events[0][1]
|
539
|
+
assert_equal_event_time time, d.events[1][1]
|
540
|
+
end
|
541
|
+
|
520
542
|
def test_application_msgpack
|
521
543
|
d = create_driver
|
522
544
|
time = event_time("2011-01-02 13:14:15 UTC")
|
@@ -982,7 +1004,7 @@ class HttpInputTest < Test::Unit::TestCase
|
|
982
1004
|
assert_equal ["403", "403"], res_codes
|
983
1005
|
end
|
984
1006
|
|
985
|
-
def test_add_query_params
|
1007
|
+
def test_add_query_params
|
986
1008
|
d = create_driver(config + "add_query_params true")
|
987
1009
|
assert_equal true, d.instance.add_query_params
|
988
1010
|
|
@@ -392,7 +392,7 @@ EOC
|
|
392
392
|
end
|
393
393
|
|
394
394
|
test "emit" do
|
395
|
-
port = unused_port
|
395
|
+
port = unused_port
|
396
396
|
d = create_driver("
|
397
397
|
@type monitor_agent
|
398
398
|
bind '127.0.0.1'
|
@@ -451,7 +451,7 @@ EOC
|
|
451
451
|
|
452
452
|
sub_test_case "servlets" do
|
453
453
|
setup do
|
454
|
-
@port = unused_port
|
454
|
+
@port = unused_port
|
455
455
|
# check @type and type in one configuration
|
456
456
|
conf = <<-EOC
|
457
457
|
<source>
|
@@ -759,7 +759,7 @@ plugin_id:test_filter\tplugin_category:filter\ttype:test_filter\toutput_plugin:f
|
|
759
759
|
end
|
760
760
|
|
761
761
|
setup do
|
762
|
-
@port = unused_port
|
762
|
+
@port = unused_port
|
763
763
|
# check @type and type in one configuration
|
764
764
|
conf = <<-EOC
|
765
765
|
<source>
|
@@ -840,7 +840,7 @@ plugin_id:test_filter\tplugin_category:filter\ttype:test_filter\toutput_plugin:f
|
|
840
840
|
|
841
841
|
sub_test_case "check the port number of http server" do
|
842
842
|
test "on single worker environment" do
|
843
|
-
port = unused_port
|
843
|
+
port = unused_port
|
844
844
|
d = create_driver("
|
845
845
|
@type monitor_agent
|
846
846
|
bind '127.0.0.1'
|
@@ -851,7 +851,7 @@ plugin_id:test_filter\tplugin_category:filter\ttype:test_filter\toutput_plugin:f
|
|
851
851
|
end
|
852
852
|
|
853
853
|
test "worker_id = 2 on multi worker environment" do
|
854
|
-
port = unused_port
|
854
|
+
port = unused_port
|
855
855
|
Fluent::SystemConfig.overwrite_system_config('workers' => 4) do
|
856
856
|
d = Fluent::Test::Driver::Input.new(Fluent::Plugin::MonitorAgentInput)
|
857
857
|
d.instance.instance_eval{ @_fluentd_worker_id = 2 }
|
@@ -905,7 +905,7 @@ EOC
|
|
905
905
|
end
|
906
906
|
|
907
907
|
test "plugins have a variable named buffer does not throws NoMethodError" do
|
908
|
-
port = unused_port
|
908
|
+
port = unused_port
|
909
909
|
d = create_driver("
|
910
910
|
@type monitor_agent
|
911
911
|
bind '127.0.0.1'
|
@@ -5,24 +5,24 @@ require 'fluent/plugin/in_syslog'
|
|
5
5
|
class SyslogInputTest < Test::Unit::TestCase
|
6
6
|
def setup
|
7
7
|
Fluent::Test.setup
|
8
|
-
@port = unused_port
|
8
|
+
@port = unused_port
|
9
9
|
end
|
10
10
|
|
11
11
|
def teardown
|
12
12
|
@port = nil
|
13
13
|
end
|
14
14
|
|
15
|
-
def ipv4_config
|
15
|
+
def ipv4_config
|
16
16
|
%[
|
17
|
-
port #{port}
|
17
|
+
port #{@port}
|
18
18
|
bind 127.0.0.1
|
19
19
|
tag syslog
|
20
20
|
]
|
21
21
|
end
|
22
22
|
|
23
|
-
def ipv6_config
|
23
|
+
def ipv6_config
|
24
24
|
%[
|
25
|
-
port #{port}
|
25
|
+
port #{@port}
|
26
26
|
bind ::1
|
27
27
|
tag syslog
|
28
28
|
]
|
@@ -69,8 +69,7 @@ EOS
|
|
69
69
|
'Use transport and protocol' => ["protocol_type udp\n<transport tcp>\n </transport>", :udp, :tcp])
|
70
70
|
def test_configure_protocol(param)
|
71
71
|
conf, proto_type, transport_proto_type = *param
|
72
|
-
|
73
|
-
d = create_driver([ipv4_config(port), conf].join("\n"))
|
72
|
+
d = create_driver([ipv4_config, conf].join("\n"))
|
74
73
|
|
75
74
|
assert_equal(d.instance.protocol_type, proto_type)
|
76
75
|
assert_equal(d.instance.transport_config.protocol, transport_proto_type)
|
@@ -159,13 +158,12 @@ EOS
|
|
159
158
|
end
|
160
159
|
|
161
160
|
def test_msg_size_with_tcp
|
162
|
-
|
163
|
-
d = create_driver([ipv4_config(port), "<transport tcp> \n</transport>"].join("\n"))
|
161
|
+
d = create_driver([ipv4_config, "<transport tcp> \n</transport>"].join("\n"))
|
164
162
|
tests = create_test_case
|
165
163
|
|
166
164
|
d.run(expect_emits: 2) do
|
167
165
|
tests.each {|test|
|
168
|
-
TCPSocket.open('127.0.0.1', port) do |s|
|
166
|
+
TCPSocket.open('127.0.0.1', @port) do |s|
|
169
167
|
s.send(test['msg'], 0)
|
170
168
|
end
|
171
169
|
}
|
@@ -191,12 +189,11 @@ EOS
|
|
191
189
|
end
|
192
190
|
|
193
191
|
def test_msg_size_with_same_tcp_connection
|
194
|
-
|
195
|
-
d = create_driver([ipv4_config(port), "<transport tcp> \n</transport>"].join("\n"))
|
192
|
+
d = create_driver([ipv4_config, "<transport tcp> \n</transport>"].join("\n"))
|
196
193
|
tests = create_test_case
|
197
194
|
|
198
195
|
d.run(expect_emits: 2) do
|
199
|
-
TCPSocket.open('127.0.0.1', port) do |s|
|
196
|
+
TCPSocket.open('127.0.0.1', @port) do |s|
|
200
197
|
tests.each {|test|
|
201
198
|
s.send(test['msg'], 0)
|
202
199
|
}
|
@@ -350,13 +347,12 @@ EOS
|
|
350
347
|
|
351
348
|
sub_test_case 'octet counting frame' do
|
352
349
|
def test_msg_size_with_tcp
|
353
|
-
|
354
|
-
d = create_driver([ipv4_config(port), "<transport tcp> \n</transport>", 'frame_type octet_count'].join("\n"))
|
350
|
+
d = create_driver([ipv4_config, "<transport tcp> \n</transport>", 'frame_type octet_count'].join("\n"))
|
355
351
|
tests = create_test_case
|
356
352
|
|
357
353
|
d.run(expect_emits: 2) do
|
358
354
|
tests.each {|test|
|
359
|
-
TCPSocket.open('127.0.0.1', port) do |s|
|
355
|
+
TCPSocket.open('127.0.0.1', @port) do |s|
|
360
356
|
s.send(test['msg'], 0)
|
361
357
|
end
|
362
358
|
}
|
@@ -367,12 +363,11 @@ EOS
|
|
367
363
|
end
|
368
364
|
|
369
365
|
def test_msg_size_with_same_tcp_connection
|
370
|
-
|
371
|
-
d = create_driver([ipv4_config(port), "<transport tcp> \n</transport>", 'frame_type octet_count'].join("\n"))
|
366
|
+
d = create_driver([ipv4_config, "<transport tcp> \n</transport>", 'frame_type octet_count'].join("\n"))
|
372
367
|
tests = create_test_case
|
373
368
|
|
374
369
|
d.run(expect_emits: 2) do
|
375
|
-
TCPSocket.open('127.0.0.1', port) do |s|
|
370
|
+
TCPSocket.open('127.0.0.1', @port) do |s|
|
376
371
|
tests.each {|test|
|
377
372
|
s.send(test['msg'], 0)
|
378
373
|
}
|
@@ -474,8 +469,7 @@ EOS
|
|
474
469
|
end
|
475
470
|
|
476
471
|
def test_send_keepalive_packet_is_disabled_by_default
|
477
|
-
|
478
|
-
d = create_driver(ipv4_config(port) + %[
|
472
|
+
d = create_driver(ipv4_config + %[
|
479
473
|
<transport tcp>
|
480
474
|
</transport>
|
481
475
|
protocol tcp
|
@@ -485,20 +479,19 @@ EOS
|
|
485
479
|
|
486
480
|
def test_send_keepalive_packet_can_be_enabled
|
487
481
|
addr = "127.0.0.1"
|
488
|
-
|
489
|
-
d = create_driver(ipv4_config(port) + %[
|
482
|
+
d = create_driver(ipv4_config + %[
|
490
483
|
<transport tcp>
|
491
484
|
</transport>
|
492
485
|
send_keepalive_packet true
|
493
486
|
])
|
494
487
|
assert_true d.instance.send_keepalive_packet
|
495
488
|
mock.proxy(d.instance).server_create_connection(
|
496
|
-
:in_syslog_tcp_server, port,
|
489
|
+
:in_syslog_tcp_server, @port,
|
497
490
|
bind: addr,
|
498
491
|
resolve_name: nil,
|
499
492
|
send_keepalive_packet: true)
|
500
493
|
d.run do
|
501
|
-
TCPSocket.open(addr, port)
|
494
|
+
TCPSocket.open(addr, @port)
|
502
495
|
end
|
503
496
|
end
|
504
497
|
|