fluentd 1.5.2 → 1.6.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of fluentd might be problematic. Click here for more details.

Files changed (57) hide show
  1. checksums.yaml +4 -4
  2. data/.github/ISSUE_TEMPLATE.md +15 -6
  3. data/.github/ISSUE_TEMPLATE/bug_report.md +39 -0
  4. data/.github/ISSUE_TEMPLATE/feature_request.md +23 -0
  5. data/CHANGELOG.md +29 -0
  6. data/CONTRIBUTING.md +1 -1
  7. data/Gemfile +5 -0
  8. data/Rakefile +6 -1
  9. data/appveyor.yml +9 -10
  10. data/lib/fluent/command/fluentd.rb +4 -0
  11. data/lib/fluent/config/literal_parser.rb +2 -2
  12. data/lib/fluent/plugin/base.rb +1 -0
  13. data/lib/fluent/plugin/buffer.rb +22 -0
  14. data/lib/fluent/plugin/in_forward.rb +2 -2
  15. data/lib/fluent/plugin/in_monitor_agent.rb +90 -131
  16. data/lib/fluent/plugin/out_forward.rb +4 -0
  17. data/lib/fluent/plugin/output.rb +31 -1
  18. data/lib/fluent/plugin/parser_none.rb +1 -2
  19. data/lib/fluent/plugin_helper.rb +1 -0
  20. data/lib/fluent/plugin_helper/cert_option.rb +1 -1
  21. data/lib/fluent/plugin_helper/http_server.rb +75 -0
  22. data/lib/fluent/plugin_helper/http_server/app.rb +79 -0
  23. data/lib/fluent/plugin_helper/http_server/compat/server.rb +81 -0
  24. data/lib/fluent/plugin_helper/http_server/compat/webrick_handler.rb +58 -0
  25. data/lib/fluent/plugin_helper/http_server/methods.rb +35 -0
  26. data/lib/fluent/plugin_helper/http_server/request.rb +42 -0
  27. data/lib/fluent/plugin_helper/http_server/router.rb +54 -0
  28. data/lib/fluent/plugin_helper/http_server/server.rb +87 -0
  29. data/lib/fluent/plugin_helper/socket.rb +8 -2
  30. data/lib/fluent/supervisor.rb +5 -2
  31. data/lib/fluent/time.rb +13 -0
  32. data/lib/fluent/version.rb +1 -1
  33. data/test/command/test_fluentd.rb +36 -2
  34. data/test/helper.rb +1 -0
  35. data/test/helpers/fuzzy_assert.rb +89 -0
  36. data/test/plugin/test_buf_file.rb +1 -1
  37. data/test/plugin/test_in_http.rb +2 -5
  38. data/test/plugin/test_in_monitor_agent.rb +118 -17
  39. data/test/plugin/test_in_udp.rb +0 -2
  40. data/test/plugin/test_out_file.rb +15 -12
  41. data/test/plugin/test_out_forward.rb +18 -0
  42. data/test/plugin/test_out_secondary_file.rb +6 -4
  43. data/test/plugin/test_output_as_buffered.rb +4 -0
  44. data/test/plugin/test_output_as_buffered_retries.rb +0 -2
  45. data/test/plugin/test_output_as_buffered_secondary.rb +0 -3
  46. data/test/plugin_helper/data/cert/cert-key.pem +27 -0
  47. data/test/plugin_helper/data/cert/cert-with-no-newline.pem +19 -0
  48. data/test/plugin_helper/data/cert/cert.pem +19 -0
  49. data/test/plugin_helper/http_server/test_app.rb +65 -0
  50. data/test/plugin_helper/http_server/test_route.rb +32 -0
  51. data/test/plugin_helper/test_cert_option.rb +16 -0
  52. data/test/plugin_helper/test_http_server_helper.rb +203 -0
  53. data/test/plugin_helper/test_server.rb +1 -7
  54. data/test/test_event_time.rb +13 -0
  55. data/test/test_log.rb +8 -6
  56. data/test/test_supervisor.rb +3 -0
  57. metadata +28 -2
@@ -0,0 +1,65 @@
1
+ require_relative '../../helper'
2
+ require 'flexmock/test_unit'
3
+
4
+ begin
5
+ require 'fluent/plugin_helper/http_server/app'
6
+ skip = false
7
+ rescue LoadError => _
8
+ skip = true
9
+ end
10
+
11
+ unless skip
12
+ class HtttpHelperAppTest < Test::Unit::TestCase
13
+ NULL_LOGGER = Logger.new(nil)
14
+
15
+ class DummyRounter
16
+ def initialize(table = {})
17
+ @table = table
18
+ end
19
+
20
+ def route!(method, path, _req)
21
+ r = @table.fetch(method).fetch(path)
22
+ [200, {}, r]
23
+ end
24
+ end
25
+
26
+ sub_test_case '#call' do
27
+ data(
28
+ 'GET request' => 'GET',
29
+ 'POST request' => 'POST',
30
+ 'DELETE request' => 'DELETE',
31
+ 'PUT request' => 'PUT',
32
+ 'PATCH request' => 'PATCH',
33
+ 'OPTION request' => 'OPTIONS',
34
+ 'CONNECT request' => 'CONNECT',
35
+ 'TRACE request' => 'TRACE',
36
+ )
37
+ test 'dispatch correct path' do |method|
38
+ r = DummyRounter.new(method.downcase.to_sym => { '/path/' => 'hi' })
39
+ app = Fluent::PluginHelper::HttpServer::App.new(r, NULL_LOGGER)
40
+ m = flexmock('request', method: method, path: '/path/')
41
+ r = app.call(m)
42
+ assert_equal(r.body.read, 'hi')
43
+ assert_equal(r.status, 200)
44
+ end
45
+
46
+ test 'dispatch correct path for head' do |method|
47
+ r = DummyRounter.new(head: { '/path/' => 'hi' })
48
+ app = Fluent::PluginHelper::HttpServer::App.new(r, NULL_LOGGER)
49
+ m = flexmock('request', method: method, path: '/path')
50
+ r = app.call(m)
51
+ assert_equal(r.body.read, '')
52
+ assert_equal(r.status, 200)
53
+ end
54
+
55
+ test 'if path does not end with `/`' do |method|
56
+ r = DummyRounter.new(head: { '/path/' => 'hi' })
57
+ app = Fluent::PluginHelper::HttpServer::App.new(r, NULL_LOGGER)
58
+ m = flexmock('request', method: method, path: '/path')
59
+ r = app.call(m)
60
+ assert_equal(r.body.read, '')
61
+ assert_equal(r.status, 200)
62
+ end
63
+ end
64
+ end
65
+ end
@@ -0,0 +1,32 @@
1
+ require_relative '../../helper'
2
+ require 'flexmock/test_unit'
3
+
4
+ begin
5
+ require 'fluent/plugin_helper/http_server/router'
6
+ skip = false
7
+ rescue LoadError => _
8
+ skip = true
9
+ end
10
+
11
+ unless skip
12
+ class HtttpHelperRouterTest < Test::Unit::TestCase
13
+ sub_test_case '#mount' do
14
+ test 'mount with method and path' do
15
+ router = Fluent::PluginHelper::HttpServer::Router.new
16
+ router.mount(:get, '/path/', ->(req) { req })
17
+ assert_equal(router.route!(:get, '/path/', 'request'), 'request')
18
+ end
19
+
20
+ test 'use default app if path is not found' do
21
+ router = Fluent::PluginHelper::HttpServer::Router.new
22
+ req = flexmock('request', path: 'path/')
23
+ assert_equal(router.route!(:get, '/path/', req), [404, { 'Content-Type' => 'text/plain' }, "404 Not Found: #{req.path}\n"])
24
+ end
25
+
26
+ test 'default app is configurable' do
27
+ router = Fluent::PluginHelper::HttpServer::Router.new(->(req) { req })
28
+ assert_equal(router.route!(:get, '/path/', 'hello'), 'hello')
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,16 @@
1
+ require_relative '../helper'
2
+ require 'fluent/plugin_helper/cert_option'
3
+
4
+ class CertOptionPluginHelperTest < Test::Unit::TestCase
5
+ class Dummy < Fluent::Plugin::TestBase
6
+ helpers :cert_option
7
+ end
8
+
9
+ test 'can load PEM encoded certificate file' do
10
+ d = Dummy.new
11
+ certs = d.cert_option_certificates_from_file("test/plugin_helper/data/cert/cert.pem")
12
+ assert_equal(1, certs.length)
13
+ certs = d.cert_option_certificates_from_file("test/plugin_helper/data/cert/cert-with-no-newline.pem")
14
+ assert_equal(1, certs.length)
15
+ end
16
+ end
@@ -0,0 +1,203 @@
1
+ require_relative '../helper'
2
+ require 'flexmock/test_unit'
3
+ require 'fluent/plugin_helper/http_server'
4
+ require 'fluent/plugin/output'
5
+ require 'fluent/event'
6
+ require 'net/http'
7
+ require 'uri'
8
+
9
+ class HtttpHelperTest < Test::Unit::TestCase
10
+ PORT = unused_port
11
+ NULL_LOGGER = Logger.new(nil)
12
+
13
+ class Dummy < Fluent::Plugin::TestBase
14
+ helpers :http_server
15
+ end
16
+
17
+ def on_driver
18
+ Fluent::Test.setup
19
+ driver = Dummy.new
20
+ driver.start
21
+ driver.after_start
22
+
23
+ yield(driver)
24
+ ensure
25
+ unless driver.stopped?
26
+ driver.stop rescue nil
27
+ end
28
+
29
+ unless driver.before_shutdown?
30
+ driver.before_shutdown rescue nil
31
+ end
32
+
33
+ unless driver.shutdown?
34
+ driver.shutdown rescue nil
35
+ end
36
+
37
+ unless driver.after_shutdown?
38
+ driver.after_shutdown rescue nil
39
+ end
40
+
41
+ unless driver.closed?
42
+ driver.close rescue nil
43
+ end
44
+
45
+ unless driver.terminated?
46
+ driver.terminated rescue nil
47
+ end
48
+ end
49
+
50
+ %w[get head].each do |n|
51
+ define_method(n) do |uri, header = {}|
52
+ url = URI.parse(uri)
53
+ req = Net::HTTP.const_get(n.capitalize).new(url, header)
54
+ Net::HTTP.start(url.host, url.port) do |http|
55
+ http.request(req)
56
+ end
57
+ end
58
+ end
59
+
60
+ %w[post put patch delete options trace].each do |n|
61
+ define_method(n) do |uri, body = '', header = {}|
62
+ url = URI.parse(uri)
63
+ req = Net::HTTP.const_get(n.capitalize).new(url, header)
64
+ req.body = body
65
+ Net::HTTP.start(url.host, url.port) do |http|
66
+ http.request(req)
67
+ end
68
+ end
69
+ end
70
+
71
+ sub_test_case 'Create a HTTP server' do
72
+ test 'monunt given path' do
73
+ on_driver do |driver|
74
+ driver.create_http_server(addr: '127.0.0.1', port: PORT, logger: NULL_LOGGER) do |s|
75
+ s.get('/example/hello') { [200, { 'Content-Type' => 'text/plain' }, 'hello get'] }
76
+ s.post('/example/hello') { [200, { 'Content-Type' => 'text/plain' }, 'hello post'] }
77
+ s.head('/example/hello') { [200, { 'Content-Type' => 'text/plain' }, 'hello head'] }
78
+ s.put('/example/hello') { [200, { 'Content-Type' => 'text/plain' }, 'hello put'] }
79
+ s.patch('/example/hello') { [200, { 'Content-Type' => 'text/plain' }, 'hello patch'] }
80
+ s.delete('/example/hello') { [200, { 'Content-Type' => 'text/plain' }, 'hello delete'] }
81
+ s.trace('/example/hello') { [200, { 'Content-Type' => 'text/plain' }, 'hello trace'] }
82
+ s.options('/example/hello') { [200, { 'Content-Type' => 'text/plain' }, 'hello options'] }
83
+ end
84
+
85
+ resp = head("http://127.0.0.1:#{PORT}/example/hello")
86
+ assert_equal('200', resp.code)
87
+ assert_equal(nil, resp.body)
88
+ assert_equal('text/plain', resp['Content-Type'])
89
+
90
+ %w[get put post put delete trace].each do |n|
91
+ resp = send(n, "http://127.0.0.1:#{PORT}/example/hello")
92
+ assert_equal('200', resp.code)
93
+ assert_equal("hello #{n}", resp.body)
94
+ assert_equal('text/plain', resp['Content-Type'])
95
+ end
96
+
97
+ # TODO: remove when fluentd drop ruby 2.1
98
+ if Gem::Version.create(RUBY_VERSION) >= Gem::Version.create('2.2.0')
99
+ resp = options("http://127.0.0.1:#{PORT}/example/hello")
100
+ assert_equal('200', resp.code)
101
+ assert_equal("hello options", resp.body)
102
+ assert_equal('text/plain', resp['Content-Type'])
103
+ end
104
+ end
105
+ end
106
+
107
+ test 'when path does not start with `/` or ends with `/`' do
108
+ on_driver do |driver|
109
+ driver.create_http_server(addr: '127.0.0.1', port: PORT, logger: NULL_LOGGER) do |s|
110
+ s.get('example/hello') { [200, { 'Content-Type' => 'text/plain' }, 'hello get'] }
111
+ s.get('/example/hello2/') { [200, { 'Content-Type' => 'text/plain' }, 'hello get'] }
112
+ end
113
+
114
+ resp = get("http://127.0.0.1:#{PORT}/example/hello")
115
+ assert_equal('404', resp.code)
116
+
117
+ resp = get("http://127.0.0.1:#{PORT}/example/hello2")
118
+ assert_equal('200', resp.code)
119
+ end
120
+ end
121
+
122
+ test 'when error raised' do
123
+ on_driver do |driver|
124
+ driver.create_http_server(addr: '127.0.0.1', port: PORT, logger: NULL_LOGGER) do |s|
125
+ s.get('/example/hello') { raise 'error!' }
126
+ end
127
+
128
+ resp = get("http://127.0.0.1:#{PORT}/example/hello")
129
+ assert_equal('500', resp.code)
130
+ end
131
+ end
132
+
133
+ test 'when path is not found' do
134
+ on_driver do |driver|
135
+ driver.create_http_server(addr: '127.0.0.1', port: PORT, logger: NULL_LOGGER) do |s|
136
+ s.get('/example/hello') { [200, { 'Content-Type' => 'text/plain' }, 'hello get'] }
137
+ end
138
+
139
+ resp = get("http://127.0.0.1:#{PORT}/example/hello/not_found")
140
+ assert_equal('404', resp.code)
141
+ end
142
+ end
143
+
144
+ test 'params and body' do
145
+ on_driver do |driver|
146
+ driver.create_http_server(addr: '127.0.0.1', port: PORT, logger: NULL_LOGGER) do |s|
147
+ s.get('/example/hello') do |req|
148
+ assert_equal(req.query_string, nil)
149
+ assert_equal(req.body, nil)
150
+ [200, { 'Content-Type' => 'text/plain' }, 'hello get']
151
+ end
152
+
153
+ s.post('/example/hello') do |req|
154
+ assert_equal(req.query_string, nil)
155
+ assert_equal(req.body, 'this is body')
156
+ [200, { 'Content-Type' => 'text/plain' }, 'hello post']
157
+ end
158
+
159
+ s.get('/example/hello/params') do |req|
160
+ assert_equal(req.query_string, 'test=true')
161
+ assert_equal(req.body, nil)
162
+ [200, { 'Content-Type' => 'text/plain' }, 'hello get']
163
+ end
164
+
165
+ s.post('/example/hello/params') do |req|
166
+ assert_equal(req.query_string, 'test=true')
167
+ assert_equal(req.body, 'this is body')
168
+ [200, { 'Content-Type' => 'text/plain' }, 'hello post']
169
+ end
170
+ end
171
+
172
+ resp = get("http://127.0.0.1:#{PORT}/example/hello")
173
+ assert_equal('200', resp.code)
174
+
175
+ resp = post("http://127.0.0.1:#{PORT}/example/hello", 'this is body')
176
+ assert_equal('200', resp.code)
177
+
178
+ resp = get("http://127.0.0.1:#{PORT}/example/hello/params?test=true")
179
+ assert_equal('200', resp.code)
180
+
181
+ resp = post("http://127.0.0.1:#{PORT}/example/hello/params?test=true", 'this is body')
182
+ assert_equal('200', resp.code)
183
+ end
184
+ end
185
+
186
+ test 'must be called #start and #stop' do
187
+ on_driver do |driver|
188
+ server = flexmock('Server') do |watcher|
189
+ watcher.should_receive(:start).once.and_return do |que|
190
+ que.push(:start)
191
+ end
192
+ watcher.should_receive(:stop).once
193
+ end
194
+
195
+ stub(Fluent::PluginHelper::HttpServer::Server).new(anything) { server }
196
+ driver.create_http_server(addr: '127.0.0.1', port: PORT, logger: NULL_LOGGER) do
197
+ # nothing
198
+ end
199
+ driver.stop
200
+ end
201
+ end
202
+ end
203
+ end
@@ -230,16 +230,10 @@ class ServerPluginHelperTest < Test::Unit::TestCase
230
230
  data(
231
231
  'server_create udp' => [:server_create, :udp],
232
232
  )
233
- test 'raise error if tcp/tls/unix options specified for udp' do |(m, proto)|
233
+ test 'raise error if tcp/tls/unix backlog options specified for udp' do |(m, proto)|
234
234
  assert_raise(ArgumentError.new("BUG: backlog is available for tcp/tls")) do
235
235
  @d.__send__(m, :myserver, PORT, proto: proto, backlog: 500){|x| x }
236
236
  end
237
- end
238
-
239
- data(
240
- 'server_create udp' => [:server_create, :udp],
241
- )
242
- test 'raise error if tcp/tls/unix options specified for udp' do |(m, proto)|
243
237
  assert_raise(ArgumentError.new("BUG: send_keepalive_packet is available for tcp")) do
244
238
  @d.__send__(m, :myserver, PORT, proto: proto, send_keepalive_packet: true){|x| x }
245
239
  end
@@ -36,6 +36,19 @@ class EventTimeTest < Test::Unit::TestCase
36
36
  assert_equal('100', "#{time}")
37
37
  end
38
38
 
39
+ test '#to_time' do
40
+ time = Fluent::EventTime.new(@now.to_i, @now.nsec).to_time
41
+ assert_instance_of(Time, time)
42
+ assert_equal(@now.to_i, time.to_i)
43
+ begin
44
+ ::Time.at(0, 0, :nanosecond)
45
+ assert_equal(@now.nsec, time.nsec)
46
+ rescue
47
+ # Time.at(@sec, @nsec / 1000.0) sometimes cause 1 diff error in nsec by 1000.0
48
+ assert_in_delta(@now.nsec, time.nsec, 1)
49
+ end
50
+ end
51
+
39
52
  test '#to_json' do
40
53
  time = Fluent::EventTime.new(100)
41
54
  assert_equal('100', time.to_json)
@@ -12,7 +12,7 @@ class LogTest < Test::Unit::TestCase
12
12
  FileUtils.rm_rf(TMP_DIR)
13
13
  FileUtils.mkdir_p(TMP_DIR)
14
14
  @log_device = Fluent::Test::DummyLogDevice.new
15
- @timestamp = Time.parse("2016-04-21 11:58:41 +0900")
15
+ @timestamp = Time.parse("2016-04-21 02:58:41 +0000")
16
16
  @timestamp_str = @timestamp.strftime("%Y-%m-%d %H:%M:%S %z")
17
17
  Timecop.freeze(@timestamp)
18
18
  end
@@ -540,7 +540,7 @@ end
540
540
  class PluginLoggerTest < Test::Unit::TestCase
541
541
  def setup
542
542
  @log_device = Fluent::Test::DummyLogDevice.new
543
- @timestamp = Time.parse("2016-04-21 11:58:41 +0900")
543
+ @timestamp = Time.parse("2016-04-21 02:58:41 +0000")
544
544
  @timestamp_str = @timestamp.strftime("%Y-%m-%d %H:%M:%S %z")
545
545
  Timecop.freeze(@timestamp)
546
546
  dl_opts = {}
@@ -796,13 +796,15 @@ class PluginLoggerTest < Test::Unit::TestCase
796
796
  end
797
797
 
798
798
  data(
799
- text: [:text, "2016-04-21 11:58:41 +0900 [info]: yaaay\n"],
800
- json: [:json, %Q({"time":"2016-04-21 11:58:41 +0900","level":"info","message":"yaaay"}\n)],
799
+ text: [:text, "2016-04-21 02:58:41 +0000 [info]: yaaay\n"],
800
+ json: [:json, %Q({"time":"2016-04-21 02:58:41 +0000","level":"info","message":"yaaay"}\n)],
801
801
  )
802
802
  def test_format(data)
803
803
  fmt, expected_log_line = data
804
- @log.format = fmt
805
- @log.info "yaaay"
804
+ with_timezone('utc') {
805
+ @log.format = fmt
806
+ @log.info "yaaay"
807
+ }
806
808
  assert{ @log_device.logs.include? expected_log_line }
807
809
  end
808
810
 
@@ -274,6 +274,7 @@ class SupervisorTest < ::Test::Unit::TestCase
274
274
  params['log_path'] = 'test/tmp/supervisor/log'
275
275
  params['suppress_repeated_stacktrace'] = true
276
276
  params['log_level'] = Fluent::Log::LEVEL_INFO
277
+ params['conf_encoding'] = 'utf-8'
277
278
  load_config_proc = Proc.new { Fluent::Supervisor.load_config(tmp_dir, params) }
278
279
 
279
280
  # first call
@@ -340,6 +341,7 @@ class SupervisorTest < ::Test::Unit::TestCase
340
341
  params['suppress_repeated_stacktrace'] = true
341
342
  params['log_level'] = Fluent::Log::LEVEL_INFO
342
343
  params['daemonize'] = './fluentd.pid'
344
+ params['conf_encoding'] = 'utf-8'
343
345
  load_config_proc = Proc.new { Fluent::Supervisor.load_config(tmp_dir, params) }
344
346
 
345
347
  # first call
@@ -414,6 +416,7 @@ class SupervisorTest < ::Test::Unit::TestCase
414
416
  params['log_path'] = 'test/tmp/supervisor/log'
415
417
  params['suppress_repeated_stacktrace'] = true
416
418
  params['log_level'] = Fluent::Log::LEVEL_INFO
419
+ params['conf_encoding'] = 'utf-8'
417
420
  load_config_proc = Proc.new { Fluent::Supervisor.load_config(tmp_path, params) }
418
421
 
419
422
  se_config = load_config_proc.call
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluentd
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.2
4
+ version: 1.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sadayuki Furuhashi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-06-14 00:00:00.000000000 Z
11
+ date: 2019-07-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: msgpack
@@ -329,6 +329,8 @@ extensions: []
329
329
  extra_rdoc_files: []
330
330
  files:
331
331
  - ".github/ISSUE_TEMPLATE.md"
332
+ - ".github/ISSUE_TEMPLATE/bug_report.md"
333
+ - ".github/ISSUE_TEMPLATE/feature_request.md"
332
334
  - ".github/PULL_REQUEST_TEMPLATE.md"
333
335
  - ".gitignore"
334
336
  - ".gitlab-ci.yml"
@@ -546,6 +548,14 @@ files:
546
548
  - lib/fluent/plugin_helper/event_loop.rb
547
549
  - lib/fluent/plugin_helper/extract.rb
548
550
  - lib/fluent/plugin_helper/formatter.rb
551
+ - lib/fluent/plugin_helper/http_server.rb
552
+ - lib/fluent/plugin_helper/http_server/app.rb
553
+ - lib/fluent/plugin_helper/http_server/compat/server.rb
554
+ - lib/fluent/plugin_helper/http_server/compat/webrick_handler.rb
555
+ - lib/fluent/plugin_helper/http_server/methods.rb
556
+ - lib/fluent/plugin_helper/http_server/request.rb
557
+ - lib/fluent/plugin_helper/http_server/router.rb
558
+ - lib/fluent/plugin_helper/http_server/server.rb
549
559
  - lib/fluent/plugin_helper/inject.rb
550
560
  - lib/fluent/plugin_helper/parser.rb
551
561
  - lib/fluent/plugin_helper/record_accessor.rb
@@ -632,6 +642,7 @@ files:
632
642
  - test/counter/test_store.rb
633
643
  - test/counter/test_validator.rb
634
644
  - test/helper.rb
645
+ - test/helpers/fuzzy_assert.rb
635
646
  - test/plugin/data/2010/01/20100102-030405.log
636
647
  - test/plugin/data/2010/01/20100102-030406.log
637
648
  - test/plugin/data/2010/01/20100102.log
@@ -714,12 +725,19 @@ files:
714
725
  - test/plugin/test_storage.rb
715
726
  - test/plugin/test_storage_local.rb
716
727
  - test/plugin/test_string_util.rb
728
+ - test/plugin_helper/data/cert/cert-key.pem
729
+ - test/plugin_helper/data/cert/cert-with-no-newline.pem
730
+ - test/plugin_helper/data/cert/cert.pem
731
+ - test/plugin_helper/http_server/test_app.rb
732
+ - test/plugin_helper/http_server/test_route.rb
733
+ - test/plugin_helper/test_cert_option.rb
717
734
  - test/plugin_helper/test_child_process.rb
718
735
  - test/plugin_helper/test_compat_parameters.rb
719
736
  - test/plugin_helper/test_event_emitter.rb
720
737
  - test/plugin_helper/test_event_loop.rb
721
738
  - test/plugin_helper/test_extract.rb
722
739
  - test/plugin_helper/test_formatter.rb
740
+ - test/plugin_helper/test_http_server_helper.rb
723
741
  - test/plugin_helper/test_inject.rb
724
742
  - test/plugin_helper/test_parser.rb
725
743
  - test/plugin_helper/test_record_accessor.rb
@@ -808,6 +826,7 @@ test_files:
808
826
  - test/counter/test_store.rb
809
827
  - test/counter/test_validator.rb
810
828
  - test/helper.rb
829
+ - test/helpers/fuzzy_assert.rb
811
830
  - test/plugin/data/2010/01/20100102-030405.log
812
831
  - test/plugin/data/2010/01/20100102-030406.log
813
832
  - test/plugin/data/2010/01/20100102.log
@@ -890,12 +909,19 @@ test_files:
890
909
  - test/plugin/test_storage.rb
891
910
  - test/plugin/test_storage_local.rb
892
911
  - test/plugin/test_string_util.rb
912
+ - test/plugin_helper/data/cert/cert-key.pem
913
+ - test/plugin_helper/data/cert/cert-with-no-newline.pem
914
+ - test/plugin_helper/data/cert/cert.pem
915
+ - test/plugin_helper/http_server/test_app.rb
916
+ - test/plugin_helper/http_server/test_route.rb
917
+ - test/plugin_helper/test_cert_option.rb
893
918
  - test/plugin_helper/test_child_process.rb
894
919
  - test/plugin_helper/test_compat_parameters.rb
895
920
  - test/plugin_helper/test_event_emitter.rb
896
921
  - test/plugin_helper/test_event_loop.rb
897
922
  - test/plugin_helper/test_extract.rb
898
923
  - test/plugin_helper/test_formatter.rb
924
+ - test/plugin_helper/test_http_server_helper.rb
899
925
  - test/plugin_helper/test_inject.rb
900
926
  - test/plugin_helper/test_parser.rb
901
927
  - test/plugin_helper/test_record_accessor.rb