fluentd 1.16.10 → 1.17.0

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.
Files changed (89) hide show
  1. checksums.yaml +4 -4
  2. data/.github/DISCUSSION_TEMPLATE/q-a-japanese.yml +50 -0
  3. data/.github/DISCUSSION_TEMPLATE/q-a.yml +47 -0
  4. data/.github/workflows/test-ruby-head.yml +31 -0
  5. data/.github/workflows/test.yml +5 -37
  6. data/CHANGELOG.md +33 -101
  7. data/README.md +4 -1
  8. data/Rakefile +1 -1
  9. data/SECURITY.md +4 -6
  10. data/fluentd.gemspec +9 -10
  11. data/lib/fluent/command/binlog_reader.rb +1 -1
  12. data/lib/fluent/command/fluentd.rb +1 -1
  13. data/lib/fluent/compat/formatter.rb +0 -6
  14. data/lib/fluent/config/configure_proxy.rb +2 -2
  15. data/lib/fluent/config/parser.rb +3 -15
  16. data/lib/fluent/config/types.rb +1 -1
  17. data/lib/fluent/config/v1_parser.rb +1 -1
  18. data/lib/fluent/config/yaml_parser/parser.rb +0 -4
  19. data/lib/fluent/configurable.rb +2 -2
  20. data/lib/fluent/counter/mutex_hash.rb +1 -1
  21. data/lib/fluent/fluent_log_event_router.rb +0 -2
  22. data/lib/fluent/plugin/buf_file.rb +1 -1
  23. data/lib/fluent/plugin/buffer/file_chunk.rb +1 -1
  24. data/lib/fluent/plugin/buffer/file_single_chunk.rb +2 -3
  25. data/lib/fluent/plugin/filter_parser.rb +26 -8
  26. data/lib/fluent/plugin/formatter_csv.rb +4 -18
  27. data/lib/fluent/plugin/in_http.rb +17 -52
  28. data/lib/fluent/plugin/in_tail.rb +35 -3
  29. data/lib/fluent/plugin/out_file.rb +0 -8
  30. data/lib/fluent/plugin/out_http.rb +125 -13
  31. data/lib/fluent/plugin/owned_by_mixin.rb +0 -1
  32. data/lib/fluent/plugin/parser_json.rb +34 -9
  33. data/lib/fluent/plugin/parser_msgpack.rb +24 -3
  34. data/lib/fluent/plugin_helper/metrics.rb +2 -2
  35. data/lib/fluent/plugin_helper/server.rb +1 -4
  36. data/lib/fluent/registry.rb +6 -6
  37. data/lib/fluent/supervisor.rb +3 -3
  38. data/lib/fluent/test/output_test.rb +1 -1
  39. data/lib/fluent/test.rb +2 -5
  40. data/lib/fluent/unique_id.rb +1 -1
  41. data/lib/fluent/version.rb +1 -1
  42. data/lib/fluent/winsvc.rb +8 -38
  43. data/test/command/test_cat.rb +2 -2
  44. data/test/command/test_fluentd.rb +10 -57
  45. data/test/config/test_plugin_configuration.rb +6 -6
  46. data/test/helper.rb +7 -27
  47. data/test/log/test_console_adapter.rb +10 -3
  48. data/test/plugin/data/log_numeric/01.log +0 -0
  49. data/test/plugin/data/log_numeric/02.log +0 -0
  50. data/test/plugin/data/log_numeric/12.log +0 -0
  51. data/test/plugin/data/log_numeric/14.log +0 -0
  52. data/test/plugin/in_tail/test_io_handler.rb +14 -13
  53. data/test/plugin/in_tail/test_position_file.rb +7 -6
  54. data/test/plugin/out_forward/test_ack_handler.rb +3 -3
  55. data/test/plugin/out_forward/test_socket_cache.rb +3 -3
  56. data/test/plugin/test_buffer.rb +2 -2
  57. data/test/plugin/test_filter_grep.rb +1 -1
  58. data/test/plugin/test_in_forward.rb +1 -2
  59. data/test/plugin/test_in_http.rb +23 -1
  60. data/test/plugin/test_in_monitor_agent.rb +6 -6
  61. data/test/plugin/test_in_object_space.rb +0 -4
  62. data/test/plugin/test_in_syslog.rb +18 -25
  63. data/test/plugin/test_in_tail.rb +153 -5
  64. data/test/plugin/test_in_tcp.rb +1 -1
  65. data/test/plugin/test_in_udp.rb +10 -16
  66. data/test/plugin/test_out_exec_filter.rb +7 -12
  67. data/test/plugin/test_out_file.rb +2 -22
  68. data/test/plugin/test_out_forward.rb +37 -38
  69. data/test/plugin/test_out_http.rb +128 -0
  70. data/test/plugin/test_out_stream.rb +1 -1
  71. data/test/plugin/test_output.rb +1 -1
  72. data/test/plugin/test_output_as_buffered.rb +2 -2
  73. data/test/plugin/test_output_as_buffered_retries.rb +2 -2
  74. data/test/plugin/test_owned_by.rb +0 -1
  75. data/test/plugin/test_parser_csv.rb +1 -1
  76. data/test/plugin/test_parser_json.rb +106 -31
  77. data/test/plugin/test_parser_msgpack.rb +127 -0
  78. data/test/plugin/test_storage.rb +0 -1
  79. data/test/plugin_helper/test_child_process.rb +4 -4
  80. data/test/plugin_helper/test_http_server_helper.rb +1 -1
  81. data/test/plugin_helper/test_server.rb +41 -83
  82. data/test/plugin_helper/test_socket.rb +1 -1
  83. data/test/test_config.rb +0 -6
  84. data/test/test_event_router.rb +2 -2
  85. data/test/test_plugin_helper.rb +1 -1
  86. data/test/test_supervisor.rb +21 -30
  87. data/test/test_tls.rb +1 -1
  88. metadata +88 -18
  89. data/test/scripts/windows_service_test.ps1 +0 -73
@@ -15,7 +15,7 @@ class ServerPluginHelperTest < Test::Unit::TestCase
15
15
  TMP_DIR = File.expand_path(File.dirname(__FILE__) + "/../tmp/plugin_helper_server")
16
16
 
17
17
  setup do
18
- @port = unused_port(protocol: :tcp)
18
+ @port = unused_port
19
19
  if Fluent.windows?
20
20
  @socket_manager_server = ServerEngine::SocketManager::Server.open
21
21
  @socket_manager_path = @socket_manager_server.path
@@ -233,12 +233,11 @@ class ServerPluginHelperTest < Test::Unit::TestCase
233
233
  # 'server_create_connection tcp' => [:server_create_connection, :unix],
234
234
  )
235
235
  test 'raise error if udp options specified for tcp/tls/unix' do |(m, proto)|
236
- port = unused_port(protocol: proto)
237
236
  assert_raise ArgumentError do
238
- @d.__send__(m, :myserver, port, proto: proto, max_bytes: 128){|x| x }
237
+ @d.__send__(m, :myserver, @port, proto: proto, max_bytes: 128){|x| x }
239
238
  end
240
239
  assert_raise ArgumentError do
241
- @d.__send__(m, :myserver, port, proto: proto, flags: 1){|x| x }
240
+ @d.__send__(m, :myserver, @port, proto: proto, flags: 1){|x| x }
242
241
  end
243
242
  end
244
243
 
@@ -246,9 +245,8 @@ class ServerPluginHelperTest < Test::Unit::TestCase
246
245
  'server_create udp' => [:server_create, :udp],
247
246
  )
248
247
  test 'raise error if tcp/tls options specified for udp' do |(m, proto)|
249
- port = unused_port(protocol: proto)
250
248
  assert_raise(ArgumentError.new("BUG: linger_timeout is available for tcp/tls")) do
251
- @d.__send__(m, :myserver, port, proto: proto, linger_timeout: 1, max_bytes: 128){|x| x }
249
+ @d.__send__(m, :myserver, @port, proto: proto, linger_timeout: 1, max_bytes: 128){|x| x }
252
250
  end
253
251
  end
254
252
 
@@ -256,9 +254,8 @@ class ServerPluginHelperTest < Test::Unit::TestCase
256
254
  'server_create udp' => [:server_create, :udp],
257
255
  )
258
256
  test 'raise error if tcp/tls/unix backlog options specified for udp' do |(m, proto)|
259
- port = unused_port(protocol: proto)
260
257
  assert_raise(ArgumentError.new("BUG: backlog is available for tcp/tls")) do
261
- @d.__send__(m, :myserver, port, proto: proto, backlog: 500){|x| x }
258
+ @d.__send__(m, :myserver, @port, proto: proto, backlog: 500){|x| x }
262
259
  end
263
260
  end
264
261
 
@@ -266,9 +263,8 @@ class ServerPluginHelperTest < Test::Unit::TestCase
266
263
  'server_create udp' => [:server_create, :udp],
267
264
  )
268
265
  test 'raise error if tcp/tls send_keepalive_packet option is specified for udp' do |(m, proto)|
269
- port = unused_port(protocol: proto)
270
266
  assert_raise(ArgumentError.new("BUG: send_keepalive_packet is available for tcp/tls")) do
271
- @d.__send__(m, :myserver, port, proto: proto, send_keepalive_packet: true){|x| x }
267
+ @d.__send__(m, :myserver, @port, proto: proto, send_keepalive_packet: true){|x| x }
272
268
  end
273
269
  end
274
270
 
@@ -280,9 +276,8 @@ class ServerPluginHelperTest < Test::Unit::TestCase
280
276
  # 'server_create_connection unix' => [:server_create_connection, :unix, {}],
281
277
  )
282
278
  test 'raise error if tls options specified for tcp/udp/unix' do |(m, proto, kwargs)|
283
- port = unused_port(protocol: proto)
284
279
  assert_raise(ArgumentError.new("BUG: tls_options is available only for tls")) do
285
- @d.__send__(m, :myserver, port, proto: proto, tls_options: {}, **kwargs){|x| x }
280
+ @d.__send__(m, :myserver, @port, proto: proto, tls_options: {}, **kwargs){|x| x }
286
281
  end
287
282
  end
288
283
 
@@ -294,8 +289,7 @@ class ServerPluginHelperTest < Test::Unit::TestCase
294
289
  'server_create_connection tls' => [:server_create_connection, :tls, {tls_options: {insecure: true}}],
295
290
  )
296
291
  test 'can bind specified IPv4 address' do |(m, proto, kwargs)|
297
- port = unused_port(protocol: proto)
298
- @d.__send__(m, :myserver, port, proto: proto, bind: "127.0.0.1", **kwargs){|x| x }
292
+ @d.__send__(m, :myserver, @port, proto: proto, bind: "127.0.0.1", **kwargs){|x| x }
299
293
  assert_equal "127.0.0.1", @d._servers.first.bind
300
294
  assert_equal "127.0.0.1", @d._servers.first.server.instance_eval{ instance_variable_defined?(:@listen_socket) ? @listen_socket : @_io }.addr[3]
301
295
  end
@@ -309,8 +303,7 @@ class ServerPluginHelperTest < Test::Unit::TestCase
309
303
  )
310
304
  test 'can bind specified IPv6 address' do |(m, proto, kwargs)| # if available
311
305
  omit "IPv6 unavailable here" unless ipv6_enabled?
312
- port = unused_port(protocol: proto)
313
- @d.__send__(m, :myserver, port, proto: proto, bind: "::1", **kwargs){|x| x }
306
+ @d.__send__(m, :myserver, @port, proto: proto, bind: "::1", **kwargs){|x| x }
314
307
  assert_equal "::1", @d._servers.first.bind
315
308
  assert_equal "::1", @d._servers.first.server.instance_eval{ instance_variable_defined?(:@listen_socket) ? @listen_socket : @_io }.addr[3]
316
309
  end
@@ -327,11 +320,10 @@ class ServerPluginHelperTest < Test::Unit::TestCase
327
320
  test 'can create 2 or more servers which share same bind address and port if shared option is true' do |(m, proto, kwargs)|
328
321
  begin
329
322
  d2 = Dummy.new; d2.start; d2.after_start
330
- port = unused_port(protocol: proto)
331
323
 
332
324
  assert_nothing_raised do
333
- @d.__send__(m, :myserver, port, proto: proto, **kwargs){|x| x }
334
- d2.__send__(m, :myserver, port, proto: proto, **kwargs){|x| x }
325
+ @d.__send__(m, :myserver, @port, proto: proto, **kwargs){|x| x }
326
+ d2.__send__(m, :myserver, @port, proto: proto, **kwargs){|x| x }
335
327
  end
336
328
  ensure
337
329
  d2.stop; d2.before_shutdown; d2.shutdown; d2.after_shutdown; d2.close; d2.terminate
@@ -352,37 +344,17 @@ class ServerPluginHelperTest < Test::Unit::TestCase
352
344
  test 'cannot create 2 or more servers using same bind address and port if shared option is false' do |(m, proto, kwargs)|
353
345
  begin
354
346
  d2 = Dummy.new; d2.start; d2.after_start
355
- port = unused_port(protocol: proto)
356
347
 
357
348
  assert_nothing_raised do
358
- @d.__send__(m, :myserver, port, proto: proto, shared: false, **kwargs){|x| x }
349
+ @d.__send__(m, :myserver, @port, proto: proto, shared: false, **kwargs){|x| x }
359
350
  end
360
351
  assert_raise(Errno::EADDRINUSE, Errno::EACCES) do
361
- d2.__send__(m, :myserver, port, proto: proto, **kwargs){|x| x }
352
+ d2.__send__(m, :myserver, @port, proto: proto, **kwargs){|x| x }
362
353
  end
363
354
  ensure
364
355
  d2.stop; d2.before_shutdown; d2.shutdown; d2.after_shutdown; d2.close; d2.terminate
365
356
  end
366
357
  end
367
-
368
- test 'close all connections by shutdown' do
369
- @d.server_create_tcp(:s, @port) do |data, conn|
370
- end
371
-
372
- client_sockets = []
373
- 5.times do
374
- client_sockets << TCPSocket.open("127.0.0.1", @port)
375
- end
376
- waiting(4){ sleep 0.1 until @d.instance_variable_get(:@_server_connections).size == 5 }
377
-
378
- @d.stop
379
- @d.before_shutdown
380
- @d.shutdown
381
-
382
- assert_true @d.instance_variable_get(:@_server_connections).empty?
383
- ensure
384
- client_sockets.each(&:close)
385
- end
386
358
  end
387
359
 
388
360
  sub_test_case '#server_create' do
@@ -393,18 +365,16 @@ class ServerPluginHelperTest < Test::Unit::TestCase
393
365
  # 'unix' => [:unix, {}],
394
366
  )
395
367
  test 'raise error if block argument is not specified or too many' do |(proto, kwargs)|
396
- port = unused_port(protocol: proto)
397
368
  assert_raise(ArgumentError.new("BUG: block must have 1 or 2 arguments")) do
398
- @d.server_create(:myserver, port, proto: proto, **kwargs){ 1 }
369
+ @d.server_create(:myserver, @port, proto: proto, **kwargs){ 1 }
399
370
  end
400
371
  assert_raise(ArgumentError.new("BUG: block must have 1 or 2 arguments")) do
401
- @d.server_create(:myserver, port, proto: proto, **kwargs){|sock, conn, what_is_this| 1 }
372
+ @d.server_create(:myserver, @port, proto: proto, **kwargs){|sock, conn, what_is_this| 1 }
402
373
  end
403
374
  end
404
375
 
405
376
  test 'creates udp server if specified in proto' do
406
- port = unused_port(protocol: :udp)
407
- @d.server_create(:myserver, port, proto: :udp, max_bytes: 512){|x| x }
377
+ @d.server_create(:myserver, @port, proto: :udp, max_bytes: 512){|x| x }
408
378
 
409
379
  created_server_info = @d._servers.first
410
380
  assert_equal :udp, created_server_info.proto
@@ -617,8 +587,7 @@ class ServerPluginHelperTest < Test::Unit::TestCase
617
587
  sub_test_case '#server_create_udp' do
618
588
  test 'can accept all keyword arguments valid for udp server' do
619
589
  assert_nothing_raised do
620
- port = unused_port(protocol: :udp)
621
- @d.server_create_udp(:s, port, bind: '127.0.0.1', shared: false, resolve_name: true, max_bytes: 100, flags: 1) do |data, conn|
590
+ @d.server_create_udp(:s, @port, bind: '127.0.0.1', shared: false, resolve_name: true, max_bytes: 100, flags: 1) do |data, conn|
622
591
  # ...
623
592
  end
624
593
  end
@@ -626,15 +595,14 @@ class ServerPluginHelperTest < Test::Unit::TestCase
626
595
 
627
596
  test 'creates a udp server just to read data' do
628
597
  received = ""
629
- port = unused_port(protocol: :udp)
630
- @d.server_create_udp(:s, port, max_bytes: 128) do |data|
598
+ @d.server_create_udp(:s, @port, max_bytes: 128) do |data|
631
599
  received << data
632
600
  end
633
601
  bind_port = unused_port(protocol: :udp, bind: "127.0.0.1")
634
602
  3.times do
635
603
  sock = UDPSocket.new(Socket::AF_INET)
636
604
  sock.bind("127.0.0.1", bind_port)
637
- sock.connect("127.0.0.1", port)
605
+ sock.connect("127.0.0.1", @port)
638
606
  sock.puts "yay"
639
607
  sock.puts "foo"
640
608
  sock.close
@@ -646,17 +614,16 @@ class ServerPluginHelperTest < Test::Unit::TestCase
646
614
  test 'creates a udp server to read and write data' do
647
615
  received = ""
648
616
  responses = []
649
- port = unused_port(protocol: :udp)
650
- @d.server_create_udp(:s, port, max_bytes: 128) do |data, sock|
617
+ @d.server_create_udp(:s, @port, max_bytes: 128) do |data, sock|
651
618
  received << data
652
619
  sock.write "ack\n"
653
620
  end
654
- bind_port = unused_port(protocol: :udp)
621
+ bind_port = unused_port
655
622
  3.times do
656
623
  begin
657
624
  sock = UDPSocket.new(Socket::AF_INET)
658
625
  sock.bind("127.0.0.1", bind_port)
659
- sock.connect("127.0.0.1", port)
626
+ sock.connect("127.0.0.1", @port)
660
627
  th = Thread.new do
661
628
  while true
662
629
  begin
@@ -687,12 +654,11 @@ class ServerPluginHelperTest < Test::Unit::TestCase
687
654
 
688
655
  received = ""
689
656
  responses = []
690
- port = unused_port(protocol: :udp, bind: "::1")
691
- @d.server_create_udp(:s, port, bind: "::1", max_bytes: 128) do |data, sock|
657
+ @d.server_create_udp(:s, @port, bind: "::1", max_bytes: 128) do |data, sock|
692
658
  received << data
693
659
  sock.write "ack\n"
694
660
  end
695
- bind_port = unused_port(protocol: :udp, bind: "::1")
661
+ bind_port = unused_port
696
662
  3.times do
697
663
  begin
698
664
  sock = UDPSocket.new(Socket::AF_INET6)
@@ -701,7 +667,7 @@ class ServerPluginHelperTest < Test::Unit::TestCase
701
667
  responses << sock.recv(16)
702
668
  true
703
669
  end
704
- sock.connect("::1", port)
670
+ sock.connect("::1", @port)
705
671
  sock.write "yay\nfoo\n"
706
672
  th.join(5)
707
673
  ensure
@@ -716,14 +682,13 @@ class ServerPluginHelperTest < Test::Unit::TestCase
716
682
  test 'does not resolve name of client address in default' do
717
683
  received = ""
718
684
  sources = []
719
- port = unused_port(protocol: :udp)
720
- @d.server_create_udp(:s, port, max_bytes: 128) do |data, sock|
685
+ @d.server_create_udp(:s, @port, max_bytes: 128) do |data, sock|
721
686
  received << data
722
687
  sources << sock.remote_host
723
688
  end
724
689
  3.times do
725
690
  sock = UDPSocket.new(Socket::AF_INET)
726
- sock.connect("127.0.0.1", port)
691
+ sock.connect("127.0.0.1", @port)
727
692
  sock.puts "yay"
728
693
  sock.close
729
694
  end
@@ -737,14 +702,13 @@ class ServerPluginHelperTest < Test::Unit::TestCase
737
702
 
738
703
  received = ""
739
704
  sources = []
740
- port = unused_port(protocol: :udp)
741
- @d.server_create_udp(:s, port, resolve_name: true, max_bytes: 128) do |data, sock|
705
+ @d.server_create_udp(:s, @port, resolve_name: true, max_bytes: 128) do |data, sock|
742
706
  received << data
743
707
  sources << sock.remote_host
744
708
  end
745
709
  3.times do
746
710
  sock = UDPSocket.new(Socket::AF_INET)
747
- sock.connect("127.0.0.1", port)
711
+ sock.connect("127.0.0.1", @port)
748
712
  sock.puts "yay"
749
713
  sock.close
750
714
  end
@@ -756,8 +720,7 @@ class ServerPluginHelperTest < Test::Unit::TestCase
756
720
  test 'raises error if plugin registers data callback for connection object from #server_create' do
757
721
  received = ""
758
722
  errors = []
759
- port = unused_port(protocol: :udp)
760
- @d.server_create_udp(:s, port, max_bytes: 128) do |data, sock|
723
+ @d.server_create_udp(:s, @port, max_bytes: 128) do |data, sock|
761
724
  received << data
762
725
  begin
763
726
  sock.data{|d| received << d.upcase }
@@ -766,7 +729,7 @@ class ServerPluginHelperTest < Test::Unit::TestCase
766
729
  end
767
730
  end
768
731
  sock = UDPSocket.new(Socket::AF_INET)
769
- sock.connect("127.0.0.1", port)
732
+ sock.connect("127.0.0.1", @port)
770
733
  sock.write "foo\n"
771
734
  sock.close
772
735
 
@@ -779,8 +742,7 @@ class ServerPluginHelperTest < Test::Unit::TestCase
779
742
  test 'raise error if plugin registers write_complete callback for udp' do
780
743
  received = ""
781
744
  errors = []
782
- port = unused_port(protocol: :udp)
783
- @d.server_create_udp(:s, port, max_bytes: 128) do |data, sock|
745
+ @d.server_create_udp(:s, @port, max_bytes: 128) do |data, sock|
784
746
  received << data
785
747
  begin
786
748
  sock.on(:write_complete){|conn| "" }
@@ -789,7 +751,7 @@ class ServerPluginHelperTest < Test::Unit::TestCase
789
751
  end
790
752
  end
791
753
  sock = UDPSocket.new(Socket::AF_INET)
792
- sock.connect("127.0.0.1", port)
754
+ sock.connect("127.0.0.1", @port)
793
755
  sock.write "foo\n"
794
756
  sock.close
795
757
 
@@ -802,8 +764,7 @@ class ServerPluginHelperTest < Test::Unit::TestCase
802
764
  test 'raises error if plugin registers close callback for udp' do
803
765
  received = ""
804
766
  errors = []
805
- port = unused_port(protocol: :udp)
806
- @d.server_create_udp(:s, port, max_bytes: 128) do |data, sock|
767
+ @d.server_create_udp(:s, @port, max_bytes: 128) do |data, sock|
807
768
  received << data
808
769
  begin
809
770
  sock.on(:close){|d| "" }
@@ -812,7 +773,7 @@ class ServerPluginHelperTest < Test::Unit::TestCase
812
773
  end
813
774
  end
814
775
  sock = UDPSocket.new(Socket::AF_INET)
815
- sock.connect("127.0.0.1", port)
776
+ sock.connect("127.0.0.1", @port)
816
777
  sock.write "foo\n"
817
778
  sock.close
818
779
 
@@ -825,12 +786,11 @@ class ServerPluginHelperTest < Test::Unit::TestCase
825
786
  test 'can bind IPv4 / IPv6 together' do
826
787
  omit "IPv6 unavailable here" unless ipv6_enabled?
827
788
 
828
- port = unused_port(protocol: :udp)
829
789
  assert_nothing_raised do
830
- @d.server_create_udp(:s_ipv4_udp, port, bind: '0.0.0.0', shared: false, max_bytes: 128) do |data, sock|
790
+ @d.server_create_udp(:s_ipv4_udp, @port, bind: '0.0.0.0', shared: false, max_bytes: 128) do |data, sock|
831
791
  # ...
832
792
  end
833
- @d.server_create_udp(:s_ipv6_udp, port, bind: '::', shared: false, max_bytes: 128) do |data, sock|
793
+ @d.server_create_udp(:s_ipv6_udp, @port, bind: '::', shared: false, max_bytes: 128) do |data, sock|
834
794
  # ...
835
795
  end
836
796
  end
@@ -843,12 +803,11 @@ class ServerPluginHelperTest < Test::Unit::TestCase
843
803
  max_bytes, records, expected = data.values
844
804
 
845
805
  actual_records = []
846
- port = unused_port(protocol: :udp)
847
- @d.server_create_udp(:myserver, port, max_bytes: max_bytes) do |data, sock|
806
+ @d.server_create_udp(:myserver, @port, max_bytes: max_bytes) do |data, sock|
848
807
  actual_records << data
849
808
  end
850
809
 
851
- open_client(:udp, "127.0.0.1", port) do |sock|
810
+ open_client(:udp, "127.0.0.1", @port) do |sock|
852
811
  records.each do |record|
853
812
  sock.send(record, 0)
854
813
  end
@@ -864,12 +823,11 @@ class ServerPluginHelperTest < Test::Unit::TestCase
864
823
  max_bytes, records, expected = data.values
865
824
 
866
825
  actual_records = []
867
- port = unused_port(protocol: :udp)
868
- @d.server_create_udp(:myserver, port, max_bytes: max_bytes) do |data|
826
+ @d.server_create_udp(:myserver, @port, max_bytes: max_bytes) do |data|
869
827
  actual_records << data
870
828
  end
871
829
 
872
- open_client(:udp, "127.0.0.1", port) do |sock|
830
+ open_client(:udp, "127.0.0.1", @port) do |sock|
873
831
  records.each do |record|
874
832
  sock.send(record, 0)
875
833
  end
@@ -11,7 +11,7 @@ class SocketHelperTest < Test::Unit::TestCase
11
11
  CERT_CHAINS_DIR = File.expand_path(File.dirname(__FILE__) + '/data/cert/cert_chains')
12
12
 
13
13
  def setup
14
- @port = unused_port(protocol: :tcp)
14
+ @port = unused_port
15
15
  end
16
16
 
17
17
  def teardown
data/test/test_config.rb CHANGED
@@ -167,7 +167,6 @@ class ConfigTest < Test::Unit::TestCase
167
167
  tag: tag.dummy
168
168
  - source:
169
169
  $type: tcp
170
- $log_level: info
171
170
  tag: tag.tcp
172
171
  parse:
173
172
  $arg:
@@ -177,7 +176,6 @@ class ConfigTest < Test::Unit::TestCase
177
176
  - match:
178
177
  $tag: tag.*
179
178
  $type: stdout
180
- $log_level: debug
181
179
  buffer:
182
180
  $type: memory
183
181
  flush_interval: 1s
@@ -210,12 +208,10 @@ class ConfigTest < Test::Unit::TestCase
210
208
  'tag.dummy',
211
209
  'tcp',
212
210
  'tag.tcp',
213
- 'info',
214
211
  'none',
215
212
  'why.parse.section.doesnot.have.arg,huh',
216
213
  'stdout',
217
214
  'tag.*',
218
- 'debug',
219
215
  'null',
220
216
  '**',
221
217
  '@FLUENT_LOG',
@@ -228,12 +224,10 @@ class ConfigTest < Test::Unit::TestCase
228
224
  dummy_source_conf['tag'],
229
225
  tcp_source_conf['@type'],
230
226
  tcp_source_conf['tag'],
231
- tcp_source_conf['@log_level'],
232
227
  parse_tcp_conf['@type'],
233
228
  parse_tcp_conf.arg,
234
229
  match_conf['@type'],
235
230
  match_conf.arg,
236
- match_conf['@log_level'],
237
231
  fluent_log_conf['@type'],
238
232
  fluent_log_conf.arg,
239
233
  label_conf.arg,
@@ -175,7 +175,7 @@ class EventRouterTest < ::Test::Unit::TestCase
175
175
  test "don't call default collector when tag matched" do
176
176
  event_router.add_rule('test', output)
177
177
  assert_rr do
178
- mock(default_collector).emit_events('test', is_a(OneEventStream)).never
178
+ dont_allow(default_collector).emit_events('test', is_a(OneEventStream))
179
179
  event_router.emit('test', Engine.now, 'k' => 'v')
180
180
  end
181
181
  # check emit handler doesn't catch rr error
@@ -201,7 +201,7 @@ class EventRouterTest < ::Test::Unit::TestCase
201
201
  event_router.add_rule('test', filter)
202
202
 
203
203
  assert_rr do
204
- mock(filter).filter_stream('test', is_a(OneEventStream)).never
204
+ dont_allow(filter).filter_stream('test', is_a(OneEventStream)) { events }
205
205
  event_router.emit('foo', Engine.now, 'k' => 'v')
206
206
  end
207
207
  end
@@ -2,7 +2,7 @@ require_relative 'helper'
2
2
  require 'fluent/plugin_helper'
3
3
  require 'fluent/plugin/base'
4
4
 
5
- class PluginHelperTest < Test::Unit::TestCase
5
+ class ConfigTest < Test::Unit::TestCase
6
6
  module FluentTest; end
7
7
 
8
8
  sub_test_case 'Fluent::Plugin::Base.helpers method works as shortcut to include helper modules' do
@@ -214,9 +214,6 @@ class SupervisorTest < ::Test::Unit::TestCase
214
214
  def test_cont_in_main_process_signal_handlers
215
215
  omit "Windows cannot handle signals" if Fluent.windows?
216
216
 
217
- # https://github.com/fluent/fluentd/issues/4063
218
- GC.start
219
-
220
217
  sv = Fluent::Supervisor.new({})
221
218
  sv.send(:install_main_process_signal_handlers)
222
219
 
@@ -232,9 +229,6 @@ class SupervisorTest < ::Test::Unit::TestCase
232
229
  def test_term_cont_in_main_process_signal_handlers
233
230
  omit "Windows cannot handle signals" if Fluent.windows?
234
231
 
235
- # https://github.com/fluent/fluentd/issues/4063
236
- GC.start
237
-
238
232
  create_debug_dummy_logger
239
233
 
240
234
  sv = Fluent::Supervisor.new({})
@@ -302,9 +296,6 @@ class SupervisorTest < ::Test::Unit::TestCase
302
296
  def test_cont_in_supervisor_signal_handler
303
297
  omit "Windows cannot handle signals" if Fluent.windows?
304
298
 
305
- # https://github.com/fluent/fluentd/issues/4063
306
- GC.start
307
-
308
299
  server = DummyServer.new
309
300
  server.install_supervisor_signal_handlers
310
301
 
@@ -320,9 +311,6 @@ class SupervisorTest < ::Test::Unit::TestCase
320
311
  def test_term_cont_in_supervisor_signal_handler
321
312
  omit "Windows cannot handle signals" if Fluent.windows?
322
313
 
323
- # https://github.com/fluent/fluentd/issues/4063
324
- GC.start
325
-
326
314
  server = DummyServer.new
327
315
  server.install_supervisor_signal_handlers
328
316
 
@@ -402,31 +390,34 @@ class SupervisorTest < ::Test::Unit::TestCase
402
390
  def test_supervisor_event_dump_windows
403
391
  omit "Only for Windows, alternative to UNIX signals" unless Fluent.windows?
404
392
 
405
- # https://github.com/fluent/fluentd/issues/4063
406
- GC.start
407
-
408
- ENV['SIGDUMP_PATH'] = TMP_DIR + "/sigdump.log"
409
-
410
393
  server = DummyServer.new
411
394
  def server.config
412
395
  {:signame => "TestFluentdEvent"}
413
396
  end
414
397
  server.install_windows_event_handler
415
398
 
416
- begin
417
- sleep 0.1 # Wait for starting windows event thread
418
- event = Win32::Event.open("TestFluentdEvent_CONT")
419
- event.set
420
- event.close
421
- sleep 1.0 # Wait for dumping
422
- ensure
423
- server.stop_windows_event_thread
399
+ assert_rr do
400
+ # Have to use mock because `Sigdump.dump` seems to be somehow incompatible with RR.
401
+ # The `mock(server).restart(true) { nil }` line in `test_rpc_server_windows` cause the next error.
402
+ # Failure: test_supervisor_event_dump_windows(SupervisorTest):
403
+ # class()
404
+ # Called 0 times.
405
+ # Expected 1 times.
406
+ # .../Ruby26-x64/lib/ruby/gems/2.6.0/gems/sigdump-0.2.4/lib/sigdump.rb:74:in `block in dump_object_count'
407
+ # 73: ObjectSpace.each_object {|o|
408
+ # 74: c = o.class <-- HERE!
409
+ mock(Sigdump).dump(anything)
410
+
411
+ begin
412
+ sleep 0.1 # Wait for starting windows event thread
413
+ event = Win32::Event.open("TestFluentdEvent_CONT")
414
+ event.set
415
+ event.close
416
+ sleep 1.0 # Wait for dumping
417
+ ensure
418
+ server.stop_windows_event_thread
419
+ end
424
420
  end
425
-
426
- result_filepaths = Dir.glob("#{TMP_DIR}/*")
427
- assert {result_filepaths.length > 0}
428
- ensure
429
- ENV.delete('SIGDUMP_PATH')
430
421
  end
431
422
 
432
423
  data(:ipv4 => ["0.0.0.0", "127.0.0.1", false],
data/test/test_tls.rb CHANGED
@@ -9,7 +9,7 @@ class UniqueIdTest < Test::Unit::TestCase
9
9
  TEST_TLS1_2_CASES = {
10
10
  'New TLS v1.2' => :'TLS1_2',
11
11
  'Old TLS v1.2' => :'TLSv1_2'
12
- }
12
+ }
13
13
  TEST_TLS_CASES = TEST_TLS1_1_CASES.merge(TEST_TLS1_2_CASES)
14
14
 
15
15
  sub_test_case 'constants' do