fluentd 1.16.3 → 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 (52) 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/{linux-test.yaml → test.yml} +9 -13
  6. data/CHANGELOG.md +66 -0
  7. data/README.md +1 -1
  8. data/Rakefile +1 -1
  9. data/fluentd.gemspec +9 -1
  10. data/lib/fluent/command/binlog_reader.rb +1 -1
  11. data/lib/fluent/config/configure_proxy.rb +2 -2
  12. data/lib/fluent/config/types.rb +1 -1
  13. data/lib/fluent/configurable.rb +2 -2
  14. data/lib/fluent/counter/mutex_hash.rb +1 -1
  15. data/lib/fluent/fluent_log_event_router.rb +0 -2
  16. data/lib/fluent/plugin/buf_file.rb +1 -1
  17. data/lib/fluent/plugin/buffer/file_chunk.rb +1 -1
  18. data/lib/fluent/plugin/buffer/file_single_chunk.rb +2 -3
  19. data/lib/fluent/plugin/buffer.rb +95 -86
  20. data/lib/fluent/plugin/filter_parser.rb +26 -8
  21. data/lib/fluent/plugin/in_http.rb +18 -53
  22. data/lib/fluent/plugin/in_tail.rb +52 -8
  23. data/lib/fluent/plugin/out_http.rb +125 -13
  24. data/lib/fluent/plugin/owned_by_mixin.rb +0 -1
  25. data/lib/fluent/plugin/parser_json.rb +22 -5
  26. data/lib/fluent/plugin/parser_msgpack.rb +24 -3
  27. data/lib/fluent/plugin_helper/metrics.rb +2 -2
  28. data/lib/fluent/registry.rb +6 -6
  29. data/lib/fluent/test/output_test.rb +1 -1
  30. data/lib/fluent/unique_id.rb +1 -1
  31. data/lib/fluent/version.rb +1 -1
  32. data/test/command/test_fluentd.rb +8 -2
  33. data/test/log/test_console_adapter.rb +10 -3
  34. data/test/plugin/data/log_numeric/01.log +0 -0
  35. data/test/plugin/data/log_numeric/02.log +0 -0
  36. data/test/plugin/data/log_numeric/12.log +0 -0
  37. data/test/plugin/data/log_numeric/14.log +0 -0
  38. data/test/plugin/test_buffer.rb +110 -0
  39. data/test/plugin/test_in_http.rb +23 -1
  40. data/test/plugin/test_in_tail.rb +307 -3
  41. data/test/plugin/test_out_forward.rb +34 -39
  42. data/test/plugin/test_out_http.rb +128 -0
  43. data/test/plugin/test_owned_by.rb +0 -1
  44. data/test/plugin/test_parser_json.rb +106 -0
  45. data/test/plugin/test_parser_msgpack.rb +127 -0
  46. data/test/plugin/test_storage.rb +0 -1
  47. data/test/plugin_helper/test_child_process.rb +17 -7
  48. metadata +104 -9
  49. data/.github/workflows/macos-test.yaml +0 -34
  50. data/.github/workflows/windows-test.yaml +0 -49
  51. /data/.github/ISSUE_TEMPLATE/{bug_report.yaml → bug_report.yml} +0 -0
  52. /data/.github/ISSUE_TEMPLATE/{feature_request.yaml → feature_request.yml} +0 -0
@@ -135,4 +135,110 @@ class JsonParserTest < ::Test::Unit::TestCase
135
135
  end
136
136
  end
137
137
  end
138
+
139
+ sub_test_case "various record pattern" do
140
+ data("Only string", { record: '"message"', expected: [nil] }, keep: true)
141
+ data("Only string without quotation", { record: "message", expected: [nil] }, keep: true)
142
+ data("Only number", { record: "0", expected: [nil] }, keep: true)
143
+ data(
144
+ "Array of Hash",
145
+ {
146
+ record: '[{"k1": 1}, {"k2": 2}]',
147
+ expected: [{"k1" => 1}, {"k2" => 2}]
148
+ },
149
+ keep: true,
150
+ )
151
+ data(
152
+ "Array of both Hash and invalid",
153
+ {
154
+ record: '[{"k1": 1}, "string", {"k2": 2}, 0]',
155
+ expected: [{"k1" => 1}, nil, {"k2" => 2}, nil]
156
+ },
157
+ keep: true,
158
+ )
159
+ data(
160
+ "Array of all invalid",
161
+ {
162
+ record: '["string", 0, [{"k": 0}]]',
163
+ expected: [nil, nil, nil]
164
+ },
165
+ keep: true,
166
+ )
167
+
168
+ def test_oj(data)
169
+ parsed_records = []
170
+ @parser.configure("json_parser" => "oj")
171
+ @parser.instance.parse(data[:record]) { |time, record|
172
+ parsed_records.append(record)
173
+ }
174
+ assert_equal(data[:expected], parsed_records)
175
+ end
176
+
177
+ def test_yajl(data)
178
+ parsed_records = []
179
+ @parser.configure("json_parser" => "yajl")
180
+ @parser.instance.parse(data[:record]) { |time, record|
181
+ parsed_records.append(record)
182
+ }
183
+ assert_equal(data[:expected], parsed_records)
184
+ end
185
+
186
+ def test_json(json)
187
+ parsed_records = []
188
+ @parser.configure("json_parser" => "json")
189
+ @parser.instance.parse(data[:record]) { |time, record|
190
+ parsed_records.append(record)
191
+ }
192
+ assert_equal(data[:expected], parsed_records)
193
+ end
194
+ end
195
+
196
+ # This becomes NoMethodError if a non-Hash object is passed to convert_values.
197
+ # https://github.com/fluent/fluentd/issues/4100
198
+ sub_test_case "execute_convert_values with null_empty_string" do
199
+ data("Only string", { record: '"message"', expected: [nil] }, keep: true)
200
+ data(
201
+ "Hash",
202
+ {
203
+ record: '{"k1": 1, "k2": ""}',
204
+ expected: [{"k1" => 1, "k2" => nil}]
205
+ },
206
+ keep: true,
207
+ )
208
+ data(
209
+ "Array of Hash",
210
+ {
211
+ record: '[{"k1": 1}, {"k2": ""}]',
212
+ expected: [{"k1" => 1}, {"k2" => nil}]
213
+ },
214
+ keep: true,
215
+ )
216
+
217
+ def test_oj(data)
218
+ parsed_records = []
219
+ @parser.configure("json_parser" => "oj", "null_empty_string" => true)
220
+ @parser.instance.parse(data[:record]) { |time, record|
221
+ parsed_records.append(record)
222
+ }
223
+ assert_equal(data[:expected], parsed_records)
224
+ end
225
+
226
+ def test_yajl(data)
227
+ parsed_records = []
228
+ @parser.configure("json_parser" => "yajl", "null_empty_string" => true)
229
+ @parser.instance.parse(data[:record]) { |time, record|
230
+ parsed_records.append(record)
231
+ }
232
+ assert_equal(data[:expected], parsed_records)
233
+ end
234
+
235
+ def test_json(json)
236
+ parsed_records = []
237
+ @parser.configure("json_parser" => "json", "null_empty_string" => true)
238
+ @parser.instance.parse(data[:record]) { |time, record|
239
+ parsed_records.append(record)
240
+ }
241
+ assert_equal(data[:expected], parsed_records)
242
+ end
243
+ end
138
244
  end
@@ -0,0 +1,127 @@
1
+ require_relative '../helper'
2
+ require 'fluent/test/driver/parser'
3
+ require 'fluent/plugin/parser_msgpack'
4
+
5
+ class MessagePackParserTest < ::Test::Unit::TestCase
6
+ def setup
7
+ Fluent::Test.setup
8
+ end
9
+
10
+ def create_driver(conf)
11
+ Fluent::Test::Driver::Parser.new(Fluent::Plugin::MessagePackParser).configure(conf)
12
+ end
13
+
14
+ sub_test_case "simple setting" do
15
+ data(
16
+ "Normal Hash",
17
+ {
18
+ input: "\x82\xA7message\xADHello msgpack\xA3numd",
19
+ expected: [{"message" => "Hello msgpack", "num" => 100}]
20
+ },
21
+ keep: true
22
+ )
23
+ data(
24
+ "Array of multiple Hash",
25
+ {
26
+ input: "\x92\x81\xA7message\xA3foo\x81\xA7message\xA3bar",
27
+ expected: [{"message"=>"foo"}, {"message"=>"bar"}]
28
+ },
29
+ keep: true
30
+ )
31
+ data(
32
+ "String",
33
+ {
34
+ # "Hello msgpack".to_msgpack
35
+ input: "\xADHello msgpack",
36
+ expected: [nil]
37
+ },
38
+ keep: true
39
+ )
40
+ data(
41
+ "Array of String",
42
+ {
43
+ # ["foo", "bar"].to_msgpack
44
+ input: "\x92\xA3foo\xA3bar",
45
+ expected: [nil, nil]
46
+ },
47
+ keep: true
48
+ )
49
+ data(
50
+ "Array of String and Hash",
51
+ {
52
+ # ["foo", {message: "bar"}].to_msgpack
53
+ input: "\x92\xA3foo\x81\xA7message\xA3bar",
54
+ expected: [nil, {"message"=>"bar"}]
55
+ },
56
+ keep: true
57
+ )
58
+
59
+ def test_parse(data)
60
+ parsed_records = []
61
+ create_driver("").instance.parse(data[:input]) do |time, record|
62
+ parsed_records.append(record)
63
+ end
64
+ assert_equal(data[:expected], parsed_records)
65
+ end
66
+
67
+ def test_parse_io(data)
68
+ parsed_records = []
69
+ StringIO.open(data[:input]) do |io|
70
+ create_driver("").instance.parse_io(io) do |time, record|
71
+ parsed_records.append(record)
72
+ end
73
+ end
74
+ assert_equal(data[:expected], parsed_records)
75
+ end
76
+ end
77
+
78
+ # This becomes NoMethodError if a non-Hash object is passed to convert_values.
79
+ # https://github.com/fluent/fluentd/issues/4100
80
+ sub_test_case "execute_convert_values with null_empty_string" do
81
+ data(
82
+ "Normal hash",
83
+ {
84
+ # {message: "foo", empty: ""}.to_msgpack
85
+ input: "\x82\xA7message\xA3foo\xA5empty\xA0",
86
+ expected: [{"message" => "foo", "empty" => nil}]
87
+ },
88
+ keep: true
89
+ )
90
+ data(
91
+ "Array of multiple Hash",
92
+ {
93
+ # [{message: "foo", empty: ""}, {message: "bar", empty: ""}].to_msgpack
94
+ input: "\x92\x82\xA7message\xA3foo\xA5empty\xA0\x82\xA7message\xA3bar\xA5empty\xA0",
95
+ expected: [{"message"=>"foo", "empty" => nil}, {"message"=>"bar", "empty" => nil}]
96
+ },
97
+ keep: true
98
+ )
99
+ data(
100
+ "String",
101
+ {
102
+ # "Hello msgpack".to_msgpack
103
+ input: "\xADHello msgpack",
104
+ expected: [nil]
105
+ },
106
+ keep: true
107
+ )
108
+
109
+ def test_parse(data)
110
+ parsed_records = []
111
+ create_driver("null_empty_string").instance.parse(data[:input]) do |time, record|
112
+ parsed_records.append(record)
113
+ end
114
+ assert_equal(data[:expected], parsed_records)
115
+ end
116
+
117
+ def test_parse_io(data)
118
+ parsed_records = []
119
+ StringIO.open(data[:input]) do |io|
120
+ create_driver("null_empty_string").instance.parse_io(io) do |time, record|
121
+ parsed_records.append(record)
122
+ end
123
+ end
124
+ assert_equal(data[:expected], parsed_records)
125
+ end
126
+ end
127
+ end
@@ -68,7 +68,6 @@ class StorageTest < Test::Unit::TestCase
68
68
 
69
69
  assert_equal 'mytest', s.owner.system_config.process_name
70
70
  assert_equal '1', s.instance_eval{ @_plugin_id }
71
- assert_equal true, s.instance_eval{ @_plugin_id_configured }
72
71
  end
73
72
 
74
73
  test 'does NOT have features for high-performance/high-consistent storages' do
@@ -515,6 +515,9 @@ class ChildProcessTest < Test::Unit::TestCase
515
515
  end
516
516
 
517
517
  test 'can scrub characters without exceptions' do
518
+ if Gem::Version.create(RUBY_VERSION) >= Gem::Version.create('3.3.0')
519
+ pend "Behaviour of IO#set_encoding is changed as of Ruby 3.3 (#4058)"
520
+ end
518
521
  m = Mutex.new
519
522
  str = nil
520
523
  Timeout.timeout(TEST_DEADLOCK_TIMEOUT) do
@@ -529,19 +532,25 @@ class ChildProcessTest < Test::Unit::TestCase
529
532
  sleep TEST_WAIT_INTERVAL_FOR_BLOCK_RUNNING until m.locked? || ran
530
533
  m.lock
531
534
  assert_equal Encoding.find('utf-8'), str.encoding
532
- expected = "\xEF\xBF\xBD\xEF\xBF\xBD\x00\xEF\xBF\xBD\xEF\xBF\xBD".force_encoding("utf-8")
535
+ replacement = "\uFFFD" # U+FFFD (REPLACEMENT CHARACTER)
536
+ nul = "\x00" # U+0000 (NUL)
537
+ expected = replacement * 2 + nul + replacement * 2
533
538
  assert_equal expected, str
534
539
  @d.stop; @d.shutdown; @d.close; @d.terminate
535
540
  end
536
541
  end
537
542
 
538
543
  test 'can scrub characters without exceptions and replace specified chars' do
544
+ if Gem::Version.create(RUBY_VERSION) >= Gem::Version.create('3.3.0')
545
+ pend "Behaviour of IO#set_encoding is changed as of Ruby 3.3 (#4058)"
546
+ end
539
547
  m = Mutex.new
540
548
  str = nil
549
+ replacement = "?"
541
550
  Timeout.timeout(TEST_DEADLOCK_TIMEOUT) do
542
551
  ran = false
543
552
  args = ['-e', 'STDOUT.set_encoding("ascii-8bit"); STDOUT.write "\xFF\xFF\x00\xF0\xF0"']
544
- @d.child_process_execute(:t13b, "ruby", arguments: args, mode: [:read], scrub: true, replace_string: '?') do |io|
553
+ @d.child_process_execute(:t13b, "ruby", arguments: args, mode: [:read], scrub: true, replace_string: replacement) do |io|
545
554
  m.lock
546
555
  ran = true
547
556
  str = io.read
@@ -550,7 +559,8 @@ class ChildProcessTest < Test::Unit::TestCase
550
559
  sleep TEST_WAIT_INTERVAL_FOR_BLOCK_RUNNING until m.locked? || ran
551
560
  m.lock
552
561
  assert_equal Encoding.find('utf-8'), str.encoding
553
- expected = "??\x00??".force_encoding("utf-8")
562
+ nul = "\x00" # U+0000 (NUL)
563
+ expected = replacement * 2 + nul + replacement * 2
554
564
  assert_equal expected, str
555
565
  @d.stop; @d.shutdown; @d.close; @d.terminate
556
566
  end
@@ -559,7 +569,7 @@ class ChildProcessTest < Test::Unit::TestCase
559
569
  unless Fluent.windows?
560
570
  test 'can specify subprocess name' do
561
571
  io = IO.popen([["cat", "caaaaaaaaaaat"], '-'])
562
- process_naming_enabled = (open("|ps opid,cmd"){|_io| _io.readlines }.count{|line| line.include?("caaaaaaaaaaat") } > 0)
572
+ process_naming_enabled = (IO.popen(["ps", "opid,cmd"]){|_io| _io.readlines }.count{|line| line.include?("caaaaaaaaaaat") } > 0)
563
573
  Process.kill(:TERM, io.pid) rescue nil
564
574
  io.close rescue nil
565
575
 
@@ -576,7 +586,7 @@ class ChildProcessTest < Test::Unit::TestCase
576
586
  m.lock
577
587
  ran = true
578
588
  pids << @d.child_process_id
579
- proc_lines += open("|ps opid,cmd"){|_io| _io.readlines }
589
+ proc_lines += IO.popen(["ps", "opid,cmd"]){|_io| _io.readlines }
580
590
  m.unlock
581
591
  readio.read
582
592
  end
@@ -635,8 +645,8 @@ class ChildProcessTest < Test::Unit::TestCase
635
645
  unless Fluent.windows?
636
646
  test 'can change working directory' do
637
647
  # check my real /tmp directory (for mac)
638
- cmd = %[|ruby -e 'Dir.chdir("/tmp"); puts Dir.pwd']
639
- mytmpdir = open(cmd){|io| io.read.chomp }
648
+ cmd = ['ruby', '-e', 'Dir.chdir("/tmp"); puts Dir.pwd']
649
+ mytmpdir = IO.popen(cmd){|io| io.read.chomp }
640
650
 
641
651
  m = Mutex.new
642
652
  str = nil
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.16.3
4
+ version: 1.17.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: 2023-11-14 00:00:00.000000000 Z
11
+ date: 2024-04-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -200,6 +200,48 @@ dependencies:
200
200
  - - "~>"
201
201
  - !ruby/object:Gem::Version
202
202
  version: '1.4'
203
+ - !ruby/object:Gem::Dependency
204
+ name: base64
205
+ requirement: !ruby/object:Gem::Requirement
206
+ requirements:
207
+ - - "~>"
208
+ - !ruby/object:Gem::Version
209
+ version: '0.2'
210
+ type: :runtime
211
+ prerelease: false
212
+ version_requirements: !ruby/object:Gem::Requirement
213
+ requirements:
214
+ - - "~>"
215
+ - !ruby/object:Gem::Version
216
+ version: '0.2'
217
+ - !ruby/object:Gem::Dependency
218
+ name: csv
219
+ requirement: !ruby/object:Gem::Requirement
220
+ requirements:
221
+ - - "~>"
222
+ - !ruby/object:Gem::Version
223
+ version: '3.2'
224
+ type: :runtime
225
+ prerelease: false
226
+ version_requirements: !ruby/object:Gem::Requirement
227
+ requirements:
228
+ - - "~>"
229
+ - !ruby/object:Gem::Version
230
+ version: '3.2'
231
+ - !ruby/object:Gem::Dependency
232
+ name: drb
233
+ requirement: !ruby/object:Gem::Requirement
234
+ requirements:
235
+ - - "~>"
236
+ - !ruby/object:Gem::Version
237
+ version: '2.2'
238
+ type: :runtime
239
+ prerelease: false
240
+ version_requirements: !ruby/object:Gem::Requirement
241
+ requirements:
242
+ - - "~>"
243
+ - !ruby/object:Gem::Version
244
+ version: '2.2'
203
245
  - !ruby/object:Gem::Dependency
204
246
  name: rake
205
247
  requirement: !ruby/object:Gem::Requirement
@@ -360,6 +402,48 @@ dependencies:
360
402
  - - ">="
361
403
  - !ruby/object:Gem::Version
362
404
  version: 0.50.0
405
+ - !ruby/object:Gem::Dependency
406
+ name: aws-sigv4
407
+ requirement: !ruby/object:Gem::Requirement
408
+ requirements:
409
+ - - "~>"
410
+ - !ruby/object:Gem::Version
411
+ version: '1.8'
412
+ type: :development
413
+ prerelease: false
414
+ version_requirements: !ruby/object:Gem::Requirement
415
+ requirements:
416
+ - - "~>"
417
+ - !ruby/object:Gem::Version
418
+ version: '1.8'
419
+ - !ruby/object:Gem::Dependency
420
+ name: aws-sdk-core
421
+ requirement: !ruby/object:Gem::Requirement
422
+ requirements:
423
+ - - "~>"
424
+ - !ruby/object:Gem::Version
425
+ version: '3.191'
426
+ type: :development
427
+ prerelease: false
428
+ version_requirements: !ruby/object:Gem::Requirement
429
+ requirements:
430
+ - - "~>"
431
+ - !ruby/object:Gem::Version
432
+ version: '3.191'
433
+ - !ruby/object:Gem::Dependency
434
+ name: rexml
435
+ requirement: !ruby/object:Gem::Requirement
436
+ requirements:
437
+ - - "~>"
438
+ - !ruby/object:Gem::Version
439
+ version: '3.2'
440
+ type: :development
441
+ prerelease: false
442
+ version_requirements: !ruby/object:Gem::Requirement
443
+ requirements:
444
+ - - "~>"
445
+ - !ruby/object:Gem::Version
446
+ version: '3.2'
363
447
  description: Fluentd is an open source data collector designed to scale and simplify
364
448
  log management. It can collect, process and ship many kinds of data in near real-time.
365
449
  email:
@@ -379,15 +463,16 @@ extensions: []
379
463
  extra_rdoc_files: []
380
464
  files:
381
465
  - ".deepsource.toml"
466
+ - ".github/DISCUSSION_TEMPLATE/q-a-japanese.yml"
467
+ - ".github/DISCUSSION_TEMPLATE/q-a.yml"
382
468
  - ".github/ISSUE_TEMPLATE.md"
383
- - ".github/ISSUE_TEMPLATE/bug_report.yaml"
469
+ - ".github/ISSUE_TEMPLATE/bug_report.yml"
384
470
  - ".github/ISSUE_TEMPLATE/config.yml"
385
- - ".github/ISSUE_TEMPLATE/feature_request.yaml"
471
+ - ".github/ISSUE_TEMPLATE/feature_request.yml"
386
472
  - ".github/PULL_REQUEST_TEMPLATE.md"
387
- - ".github/workflows/linux-test.yaml"
388
- - ".github/workflows/macos-test.yaml"
389
473
  - ".github/workflows/stale-actions.yml"
390
- - ".github/workflows/windows-test.yaml"
474
+ - ".github/workflows/test-ruby-head.yml"
475
+ - ".github/workflows/test.yml"
391
476
  - ".gitignore"
392
477
  - ADOPTERS.md
393
478
  - AUTHORS
@@ -758,6 +843,10 @@ files:
758
843
  - test/plugin/data/log/foo/bar.log
759
844
  - test/plugin/data/log/foo/bar2
760
845
  - test/plugin/data/log/test.log
846
+ - test/plugin/data/log_numeric/01.log
847
+ - test/plugin/data/log_numeric/02.log
848
+ - test/plugin/data/log_numeric/12.log
849
+ - test/plugin/data/log_numeric/14.log
761
850
  - test/plugin/data/sd_file/config
762
851
  - test/plugin/data/sd_file/config.json
763
852
  - test/plugin/data/sd_file/config.yaml
@@ -842,6 +931,7 @@ files:
842
931
  - test/plugin/test_parser_csv.rb
843
932
  - test/plugin/test_parser_json.rb
844
933
  - test/plugin/test_parser_labeled_tsv.rb
934
+ - test/plugin/test_parser_msgpack.rb
845
935
  - test/plugin/test_parser_multiline.rb
846
936
  - test/plugin/test_parser_nginx.rb
847
937
  - test/plugin/test_parser_none.rb
@@ -951,14 +1041,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
951
1041
  requirements:
952
1042
  - - ">="
953
1043
  - !ruby/object:Gem::Version
954
- version: '2.4'
1044
+ version: '2.7'
955
1045
  required_rubygems_version: !ruby/object:Gem::Requirement
956
1046
  requirements:
957
1047
  - - ">="
958
1048
  - !ruby/object:Gem::Version
959
1049
  version: '0'
960
1050
  requirements: []
961
- rubygems_version: 3.4.19
1051
+ rubygems_version: 3.4.13
962
1052
  signing_key:
963
1053
  specification_version: 4
964
1054
  summary: Fluentd event collector
@@ -1001,6 +1091,10 @@ test_files:
1001
1091
  - test/plugin/data/log/foo/bar.log
1002
1092
  - test/plugin/data/log/foo/bar2
1003
1093
  - test/plugin/data/log/test.log
1094
+ - test/plugin/data/log_numeric/01.log
1095
+ - test/plugin/data/log_numeric/02.log
1096
+ - test/plugin/data/log_numeric/12.log
1097
+ - test/plugin/data/log_numeric/14.log
1004
1098
  - test/plugin/data/sd_file/config
1005
1099
  - test/plugin/data/sd_file/config.json
1006
1100
  - test/plugin/data/sd_file/config.yaml
@@ -1085,6 +1179,7 @@ test_files:
1085
1179
  - test/plugin/test_parser_csv.rb
1086
1180
  - test/plugin/test_parser_json.rb
1087
1181
  - test/plugin/test_parser_labeled_tsv.rb
1182
+ - test/plugin/test_parser_msgpack.rb
1088
1183
  - test/plugin/test_parser_multiline.rb
1089
1184
  - test/plugin/test_parser_nginx.rb
1090
1185
  - test/plugin/test_parser_none.rb
@@ -1,34 +0,0 @@
1
- name: Testing on macOS
2
-
3
- on:
4
- push:
5
- branches: [master, v1.16]
6
- pull_request:
7
- branches: [master, v1.16]
8
-
9
- jobs:
10
- test:
11
- runs-on: ${{ matrix.os }}
12
- continue-on-error: ${{ matrix.experimental }}
13
- strategy:
14
- fail-fast: false
15
- matrix:
16
- ruby-version: ['3.2', '3.1', '3.0', '2.7']
17
- os: [macos-latest]
18
- experimental: [true]
19
- include:
20
- - ruby-version: head
21
- os: macos-latest
22
- experimental: true
23
-
24
- name: Unit testing with Ruby ${{ matrix.ruby-version }} on ${{ matrix.os }}
25
- steps:
26
- - uses: actions/checkout@v3
27
- - name: Set up Ruby
28
- uses: ruby/setup-ruby@v1
29
- with:
30
- ruby-version: ${{ matrix.ruby-version }}
31
- - name: Install dependencies
32
- run: bundle install
33
- - name: Run tests
34
- run: bundle exec rake test
@@ -1,49 +0,0 @@
1
- name: Testing on Windows
2
-
3
- on:
4
- push:
5
- branches: [master, v1.16]
6
- pull_request:
7
- branches: [master, v1.16]
8
-
9
- jobs:
10
- test:
11
- runs-on: ${{ matrix.os }}
12
- continue-on-error: ${{ matrix.experimental }}
13
- strategy:
14
- fail-fast: false
15
- matrix:
16
- ruby-version: ['3.2', '3.1', '2.7']
17
- os:
18
- - windows-latest
19
- experimental: [false]
20
- include:
21
- - ruby-version: head
22
- os: windows-latest
23
- experimental: true
24
- - ruby-version: '3.0.3'
25
- os: windows-latest
26
- experimental: false
27
- # On Ruby 3.0, we need to use fiddle 1.0.8 or later to retrieve correct
28
- # error code. In addition, we have to specify the path of fiddle by RUBYLIB
29
- # because RubyInstaller loads Ruby's bundled fiddle before initializing gem.
30
- # See also:
31
- # * https://github.com/ruby/fiddle/issues/72
32
- # * https://bugs.ruby-lang.org/issues/17813
33
- # * https://github.com/oneclick/rubyinstaller2/blob/8225034c22152d8195bc0aabc42a956c79d6c712/lib/ruby_installer/build/dll_directory.rb
34
- ruby-lib-opt: RUBYLIB=%RUNNER_TOOL_CACHE%/Ruby/3.0.3/x64/lib/ruby/gems/3.0.0/gems/fiddle-1.1.0/lib
35
-
36
- name: Unit testing with Ruby ${{ matrix.ruby-version }} on ${{ matrix.os }}
37
- steps:
38
- - uses: actions/checkout@v3
39
- - name: Set up Ruby
40
- uses: ruby/setup-ruby@v1
41
- with:
42
- ruby-version: ${{ matrix.ruby-version }}
43
- - name: Add Fiddle 1.1.0
44
- if: ${{ matrix.ruby-version == '3.0.3' }}
45
- run: gem install fiddle --version 1.1.0
46
- - name: Install dependencies
47
- run: ridk exec bundle install
48
- - name: Run tests
49
- run: bundle exec rake test TESTOPTS=-v ${{ matrix.ruby-lib-opt }}