fluentd 1.16.5-x64-mingw32 → 1.17.1-x64-mingw32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of fluentd might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/CHANGELOG.md +88 -0
- data/README.md +2 -1
- data/Rakefile +1 -1
- data/SECURITY.md +2 -2
- data/fluent.conf +14 -14
- data/lib/fluent/command/binlog_reader.rb +1 -1
- data/lib/fluent/command/cap_ctl.rb +4 -4
- data/lib/fluent/compat/call_super_mixin.rb +3 -3
- data/lib/fluent/compat/propagate_default.rb +4 -4
- data/lib/fluent/config/configure_proxy.rb +2 -2
- data/lib/fluent/config/types.rb +1 -1
- data/lib/fluent/config/yaml_parser/parser.rb +4 -0
- 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/log/console_adapter.rb +4 -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_exec.rb +14 -2
- data/lib/fluent/plugin/in_http.rb +19 -54
- data/lib/fluent/plugin/in_sample.rb +13 -7
- data/lib/fluent/plugin/in_tail.rb +99 -25
- data/lib/fluent/plugin/out_copy.rb +1 -1
- data/lib/fluent/plugin/out_file.rb +8 -0
- data/lib/fluent/plugin/out_http.rb +137 -13
- data/lib/fluent/plugin/owned_by_mixin.rb +0 -1
- data/lib/fluent/plugin/parser_json.rb +26 -17
- data/lib/fluent/plugin/parser_msgpack.rb +24 -3
- data/lib/fluent/plugin_helper/http_server/server.rb +1 -1
- data/lib/fluent/plugin_helper/metrics.rb +2 -2
- data/lib/fluent/registry.rb +6 -6
- 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/templates/new_gem/fluent-plugin.gemspec.erb +6 -5
- metadata +109 -459
- data/.github/ISSUE_TEMPLATE/bug_report.yml +0 -71
- data/.github/ISSUE_TEMPLATE/config.yml +0 -5
- data/.github/ISSUE_TEMPLATE/feature_request.yml +0 -39
- data/.github/ISSUE_TEMPLATE.md +0 -17
- data/.github/PULL_REQUEST_TEMPLATE.md +0 -14
- data/.github/workflows/stale-actions.yml +0 -24
- data/.github/workflows/test.yml +0 -32
- data/.gitignore +0 -30
- data/Gemfile +0 -9
- data/fluentd.gemspec +0 -54
- data/test/command/test_binlog_reader.rb +0 -362
- data/test/command/test_ca_generate.rb +0 -70
- data/test/command/test_cap_ctl.rb +0 -100
- data/test/command/test_cat.rb +0 -128
- data/test/command/test_ctl.rb +0 -56
- data/test/command/test_fluentd.rb +0 -1291
- data/test/command/test_plugin_config_formatter.rb +0 -397
- data/test/command/test_plugin_generator.rb +0 -109
- data/test/compat/test_calls_super.rb +0 -166
- data/test/compat/test_parser.rb +0 -92
- data/test/config/assertions.rb +0 -42
- data/test/config/test_config_parser.rb +0 -551
- data/test/config/test_configurable.rb +0 -1784
- data/test/config/test_configure_proxy.rb +0 -604
- data/test/config/test_dsl.rb +0 -415
- data/test/config/test_element.rb +0 -518
- data/test/config/test_literal_parser.rb +0 -309
- data/test/config/test_plugin_configuration.rb +0 -56
- data/test/config/test_section.rb +0 -191
- data/test/config/test_system_config.rb +0 -195
- data/test/config/test_types.rb +0 -408
- data/test/counter/test_client.rb +0 -563
- data/test/counter/test_error.rb +0 -44
- data/test/counter/test_mutex_hash.rb +0 -179
- data/test/counter/test_server.rb +0 -589
- data/test/counter/test_store.rb +0 -258
- data/test/counter/test_validator.rb +0 -137
- data/test/helper.rb +0 -155
- data/test/helpers/fuzzy_assert.rb +0 -89
- data/test/helpers/process_extenstion.rb +0 -33
- data/test/log/test_console_adapter.rb +0 -110
- data/test/plugin/data/2010/01/20100102-030405.log +0 -0
- data/test/plugin/data/2010/01/20100102-030406.log +0 -0
- data/test/plugin/data/2010/01/20100102.log +0 -0
- data/test/plugin/data/log/bar +0 -0
- data/test/plugin/data/log/foo/bar.log +0 -0
- data/test/plugin/data/log/foo/bar2 +0 -0
- data/test/plugin/data/log/test.log +0 -0
- data/test/plugin/data/sd_file/config +0 -11
- data/test/plugin/data/sd_file/config.json +0 -17
- data/test/plugin/data/sd_file/config.yaml +0 -11
- data/test/plugin/data/sd_file/config.yml +0 -11
- data/test/plugin/data/sd_file/invalid_config.yml +0 -7
- data/test/plugin/in_tail/test_fifo.rb +0 -121
- data/test/plugin/in_tail/test_io_handler.rb +0 -150
- data/test/plugin/in_tail/test_position_file.rb +0 -346
- data/test/plugin/out_forward/test_ack_handler.rb +0 -140
- data/test/plugin/out_forward/test_connection_manager.rb +0 -145
- data/test/plugin/out_forward/test_handshake_protocol.rb +0 -112
- data/test/plugin/out_forward/test_load_balancer.rb +0 -106
- data/test/plugin/out_forward/test_socket_cache.rb +0 -174
- data/test/plugin/test_bare_output.rb +0 -131
- data/test/plugin/test_base.rb +0 -247
- data/test/plugin/test_buf_file.rb +0 -1314
- data/test/plugin/test_buf_file_single.rb +0 -898
- data/test/plugin/test_buf_memory.rb +0 -42
- data/test/plugin/test_buffer.rb +0 -1493
- data/test/plugin/test_buffer_chunk.rb +0 -209
- data/test/plugin/test_buffer_file_chunk.rb +0 -871
- data/test/plugin/test_buffer_file_single_chunk.rb +0 -611
- data/test/plugin/test_buffer_memory_chunk.rb +0 -339
- data/test/plugin/test_compressable.rb +0 -87
- data/test/plugin/test_file_util.rb +0 -96
- data/test/plugin/test_filter.rb +0 -368
- data/test/plugin/test_filter_grep.rb +0 -697
- data/test/plugin/test_filter_parser.rb +0 -731
- data/test/plugin/test_filter_record_transformer.rb +0 -577
- data/test/plugin/test_filter_stdout.rb +0 -207
- data/test/plugin/test_formatter_csv.rb +0 -136
- data/test/plugin/test_formatter_hash.rb +0 -38
- data/test/plugin/test_formatter_json.rb +0 -61
- data/test/plugin/test_formatter_ltsv.rb +0 -70
- data/test/plugin/test_formatter_msgpack.rb +0 -28
- data/test/plugin/test_formatter_out_file.rb +0 -116
- data/test/plugin/test_formatter_single_value.rb +0 -44
- data/test/plugin/test_formatter_tsv.rb +0 -76
- data/test/plugin/test_in_debug_agent.rb +0 -49
- data/test/plugin/test_in_exec.rb +0 -261
- data/test/plugin/test_in_forward.rb +0 -1178
- data/test/plugin/test_in_gc_stat.rb +0 -62
- data/test/plugin/test_in_http.rb +0 -1102
- data/test/plugin/test_in_monitor_agent.rb +0 -922
- data/test/plugin/test_in_object_space.rb +0 -66
- data/test/plugin/test_in_sample.rb +0 -190
- data/test/plugin/test_in_syslog.rb +0 -505
- data/test/plugin/test_in_tail.rb +0 -3288
- data/test/plugin/test_in_tcp.rb +0 -328
- data/test/plugin/test_in_udp.rb +0 -296
- data/test/plugin/test_in_unix.rb +0 -181
- data/test/plugin/test_input.rb +0 -137
- data/test/plugin/test_metadata.rb +0 -89
- data/test/plugin/test_metrics.rb +0 -294
- data/test/plugin/test_metrics_local.rb +0 -96
- data/test/plugin/test_multi_output.rb +0 -204
- data/test/plugin/test_out_copy.rb +0 -308
- data/test/plugin/test_out_exec.rb +0 -312
- data/test/plugin/test_out_exec_filter.rb +0 -606
- data/test/plugin/test_out_file.rb +0 -1038
- data/test/plugin/test_out_forward.rb +0 -1349
- data/test/plugin/test_out_http.rb +0 -429
- data/test/plugin/test_out_null.rb +0 -105
- data/test/plugin/test_out_relabel.rb +0 -28
- data/test/plugin/test_out_roundrobin.rb +0 -146
- data/test/plugin/test_out_secondary_file.rb +0 -458
- data/test/plugin/test_out_stdout.rb +0 -205
- data/test/plugin/test_out_stream.rb +0 -103
- data/test/plugin/test_output.rb +0 -1334
- data/test/plugin/test_output_as_buffered.rb +0 -2024
- data/test/plugin/test_output_as_buffered_backup.rb +0 -363
- data/test/plugin/test_output_as_buffered_compress.rb +0 -179
- data/test/plugin/test_output_as_buffered_overflow.rb +0 -250
- data/test/plugin/test_output_as_buffered_retries.rb +0 -966
- data/test/plugin/test_output_as_buffered_secondary.rb +0 -882
- data/test/plugin/test_output_as_standard.rb +0 -374
- data/test/plugin/test_owned_by.rb +0 -35
- data/test/plugin/test_parser.rb +0 -399
- data/test/plugin/test_parser_apache.rb +0 -42
- data/test/plugin/test_parser_apache2.rb +0 -47
- data/test/plugin/test_parser_apache_error.rb +0 -45
- data/test/plugin/test_parser_csv.rb +0 -200
- data/test/plugin/test_parser_json.rb +0 -138
- data/test/plugin/test_parser_labeled_tsv.rb +0 -160
- data/test/plugin/test_parser_multiline.rb +0 -111
- data/test/plugin/test_parser_nginx.rb +0 -88
- data/test/plugin/test_parser_none.rb +0 -52
- data/test/plugin/test_parser_regexp.rb +0 -284
- data/test/plugin/test_parser_syslog.rb +0 -650
- data/test/plugin/test_parser_tsv.rb +0 -122
- data/test/plugin/test_sd_file.rb +0 -228
- data/test/plugin/test_sd_srv.rb +0 -230
- data/test/plugin/test_storage.rb +0 -167
- data/test/plugin/test_storage_local.rb +0 -335
- data/test/plugin/test_string_util.rb +0 -26
- data/test/plugin_helper/data/cert/cert-key.pem +0 -27
- data/test/plugin_helper/data/cert/cert-with-CRLF.pem +0 -19
- data/test/plugin_helper/data/cert/cert-with-no-newline.pem +0 -19
- data/test/plugin_helper/data/cert/cert.pem +0 -19
- data/test/plugin_helper/data/cert/cert_chains/ca-cert-key.pem +0 -27
- data/test/plugin_helper/data/cert/cert_chains/ca-cert.pem +0 -20
- data/test/plugin_helper/data/cert/cert_chains/cert-key.pem +0 -27
- data/test/plugin_helper/data/cert/cert_chains/cert.pem +0 -40
- data/test/plugin_helper/data/cert/empty.pem +0 -0
- data/test/plugin_helper/data/cert/generate_cert.rb +0 -125
- data/test/plugin_helper/data/cert/with_ca/ca-cert-key-pass.pem +0 -30
- data/test/plugin_helper/data/cert/with_ca/ca-cert-key.pem +0 -27
- data/test/plugin_helper/data/cert/with_ca/ca-cert-pass.pem +0 -20
- data/test/plugin_helper/data/cert/with_ca/ca-cert.pem +0 -20
- data/test/plugin_helper/data/cert/with_ca/cert-key-pass.pem +0 -30
- data/test/plugin_helper/data/cert/with_ca/cert-key.pem +0 -27
- data/test/plugin_helper/data/cert/with_ca/cert-pass.pem +0 -21
- data/test/plugin_helper/data/cert/with_ca/cert.pem +0 -21
- data/test/plugin_helper/data/cert/without_ca/cert-key-pass.pem +0 -30
- data/test/plugin_helper/data/cert/without_ca/cert-key.pem +0 -27
- data/test/plugin_helper/data/cert/without_ca/cert-pass.pem +0 -20
- data/test/plugin_helper/data/cert/without_ca/cert.pem +0 -20
- data/test/plugin_helper/http_server/test_app.rb +0 -65
- data/test/plugin_helper/http_server/test_route.rb +0 -32
- data/test/plugin_helper/service_discovery/test_manager.rb +0 -93
- data/test/plugin_helper/service_discovery/test_round_robin_balancer.rb +0 -21
- data/test/plugin_helper/test_cert_option.rb +0 -25
- data/test/plugin_helper/test_child_process.rb +0 -862
- data/test/plugin_helper/test_compat_parameters.rb +0 -358
- data/test/plugin_helper/test_event_emitter.rb +0 -80
- data/test/plugin_helper/test_event_loop.rb +0 -52
- data/test/plugin_helper/test_extract.rb +0 -194
- data/test/plugin_helper/test_formatter.rb +0 -255
- data/test/plugin_helper/test_http_server_helper.rb +0 -372
- data/test/plugin_helper/test_inject.rb +0 -561
- data/test/plugin_helper/test_metrics.rb +0 -137
- data/test/plugin_helper/test_parser.rb +0 -264
- data/test/plugin_helper/test_record_accessor.rb +0 -238
- data/test/plugin_helper/test_retry_state.rb +0 -1006
- data/test/plugin_helper/test_server.rb +0 -1895
- data/test/plugin_helper/test_service_discovery.rb +0 -165
- data/test/plugin_helper/test_socket.rb +0 -146
- data/test/plugin_helper/test_storage.rb +0 -542
- data/test/plugin_helper/test_thread.rb +0 -164
- data/test/plugin_helper/test_timer.rb +0 -130
- data/test/scripts/exec_script.rb +0 -32
- data/test/scripts/fluent/plugin/formatter1/formatter_test1.rb +0 -7
- data/test/scripts/fluent/plugin/formatter2/formatter_test2.rb +0 -7
- data/test/scripts/fluent/plugin/formatter_known.rb +0 -8
- data/test/scripts/fluent/plugin/out_test.rb +0 -81
- data/test/scripts/fluent/plugin/out_test2.rb +0 -80
- data/test/scripts/fluent/plugin/parser_known.rb +0 -4
- data/test/test_capability.rb +0 -74
- data/test/test_clock.rb +0 -164
- data/test/test_config.rb +0 -369
- data/test/test_configdsl.rb +0 -148
- data/test/test_daemonizer.rb +0 -91
- data/test/test_engine.rb +0 -203
- data/test/test_event.rb +0 -531
- data/test/test_event_router.rb +0 -348
- data/test/test_event_time.rb +0 -199
- data/test/test_file_wrapper.rb +0 -53
- data/test/test_filter.rb +0 -121
- data/test/test_fluent_log_event_router.rb +0 -99
- data/test/test_formatter.rb +0 -369
- data/test/test_input.rb +0 -31
- data/test/test_log.rb +0 -1076
- data/test/test_match.rb +0 -148
- data/test/test_mixin.rb +0 -351
- data/test/test_msgpack_factory.rb +0 -50
- data/test/test_oj_options.rb +0 -55
- data/test/test_output.rb +0 -278
- data/test/test_plugin.rb +0 -251
- data/test/test_plugin_classes.rb +0 -370
- data/test/test_plugin_helper.rb +0 -81
- data/test/test_plugin_id.rb +0 -119
- data/test/test_process.rb +0 -14
- data/test/test_root_agent.rb +0 -951
- data/test/test_static_config_analysis.rb +0 -177
- data/test/test_supervisor.rb +0 -821
- data/test/test_test_drivers.rb +0 -136
- data/test/test_time_formatter.rb +0 -301
- data/test/test_time_parser.rb +0 -362
- data/test/test_tls.rb +0 -65
- data/test/test_unique_id.rb +0 -47
- data/test/test_variable_store.rb +0 -65
@@ -1,339 +0,0 @@
|
|
1
|
-
require_relative '../helper'
|
2
|
-
require 'fluent/plugin/buffer/memory_chunk'
|
3
|
-
require 'fluent/plugin/compressable'
|
4
|
-
|
5
|
-
require 'json'
|
6
|
-
|
7
|
-
class BufferMemoryChunkTest < Test::Unit::TestCase
|
8
|
-
include Fluent::Plugin::Compressable
|
9
|
-
|
10
|
-
setup do
|
11
|
-
@c = Fluent::Plugin::Buffer::MemoryChunk.new(Object.new)
|
12
|
-
end
|
13
|
-
|
14
|
-
test 'has blank chunk initially' do
|
15
|
-
assert @c.empty?
|
16
|
-
assert_equal '', @c.instance_eval{ @chunk }
|
17
|
-
assert_equal 0, @c.instance_eval{ @chunk_bytes }
|
18
|
-
assert_equal 0, @c.instance_eval{ @adding_bytes }
|
19
|
-
assert_equal 0, @c.instance_eval{ @adding_size }
|
20
|
-
end
|
21
|
-
|
22
|
-
test 'can #append, #commit and #read it' do
|
23
|
-
assert @c.empty?
|
24
|
-
|
25
|
-
d1 = {"f1" => 'v1', "f2" => 'v2', "f3" => 'v3'}
|
26
|
-
d2 = {"f1" => 'vv1', "f2" => 'vv2', "f3" => 'vv3'}
|
27
|
-
data = [d1.to_json + "\n", d2.to_json + "\n"]
|
28
|
-
@c.append(data)
|
29
|
-
@c.commit
|
30
|
-
|
31
|
-
content = @c.read
|
32
|
-
ds = content.split("\n").select{|d| !d.empty? }
|
33
|
-
|
34
|
-
assert_equal 2, ds.size
|
35
|
-
assert_equal d1, JSON.parse(ds[0])
|
36
|
-
assert_equal d2, JSON.parse(ds[1])
|
37
|
-
|
38
|
-
d3 = {"f1" => 'x', "f2" => 'y', "f3" => 'z'}
|
39
|
-
d4 = {"f1" => 'a', "f2" => 'b', "f3" => 'c'}
|
40
|
-
@c.append([d3.to_json + "\n", d4.to_json + "\n"])
|
41
|
-
@c.commit
|
42
|
-
|
43
|
-
content = @c.read
|
44
|
-
ds = content.split("\n").select{|d| !d.empty? }
|
45
|
-
|
46
|
-
assert_equal 4, ds.size
|
47
|
-
assert_equal d1, JSON.parse(ds[0])
|
48
|
-
assert_equal d2, JSON.parse(ds[1])
|
49
|
-
assert_equal d3, JSON.parse(ds[2])
|
50
|
-
assert_equal d4, JSON.parse(ds[3])
|
51
|
-
end
|
52
|
-
|
53
|
-
test 'can #concat, #commit and #read it' do
|
54
|
-
assert @c.empty?
|
55
|
-
|
56
|
-
d1 = {"f1" => 'v1', "f2" => 'v2', "f3" => 'v3'}
|
57
|
-
d2 = {"f1" => 'vv1', "f2" => 'vv2', "f3" => 'vv3'}
|
58
|
-
data = [d1.to_json + "\n", d2.to_json + "\n"].join
|
59
|
-
@c.concat(data, 2)
|
60
|
-
@c.commit
|
61
|
-
|
62
|
-
content = @c.read
|
63
|
-
ds = content.split("\n").select{|d| !d.empty? }
|
64
|
-
|
65
|
-
assert_equal 2, ds.size
|
66
|
-
assert_equal d1, JSON.parse(ds[0])
|
67
|
-
assert_equal d2, JSON.parse(ds[1])
|
68
|
-
|
69
|
-
d3 = {"f1" => 'x', "f2" => 'y', "f3" => 'z'}
|
70
|
-
d4 = {"f1" => 'a', "f2" => 'b', "f3" => 'c'}
|
71
|
-
@c.concat([d3.to_json + "\n", d4.to_json + "\n"].join, 2)
|
72
|
-
@c.commit
|
73
|
-
|
74
|
-
content = @c.read
|
75
|
-
ds = content.split("\n").select{|d| !d.empty? }
|
76
|
-
|
77
|
-
assert_equal 4, ds.size
|
78
|
-
assert_equal d1, JSON.parse(ds[0])
|
79
|
-
assert_equal d2, JSON.parse(ds[1])
|
80
|
-
assert_equal d3, JSON.parse(ds[2])
|
81
|
-
assert_equal d4, JSON.parse(ds[3])
|
82
|
-
end
|
83
|
-
|
84
|
-
test 'has its contents in binary (ascii-8bit)' do
|
85
|
-
data1 = "aaa bbb ccc".force_encoding('utf-8')
|
86
|
-
@c.append([data1])
|
87
|
-
@c.commit
|
88
|
-
assert_equal Encoding::ASCII_8BIT, @c.instance_eval{ @chunk.encoding }
|
89
|
-
|
90
|
-
content = @c.read
|
91
|
-
assert_equal Encoding::ASCII_8BIT, content.encoding
|
92
|
-
end
|
93
|
-
|
94
|
-
test 'has #bytesize and #size' do
|
95
|
-
assert @c.empty?
|
96
|
-
|
97
|
-
d1 = {"f1" => 'v1', "f2" => 'v2', "f3" => 'v3'}
|
98
|
-
d2 = {"f1" => 'vv1', "f2" => 'vv2', "f3" => 'vv3'}
|
99
|
-
data = [d1.to_json + "\n", d2.to_json + "\n"]
|
100
|
-
@c.append(data)
|
101
|
-
|
102
|
-
assert_equal (d1.to_json + "\n" + d2.to_json + "\n").bytesize, @c.bytesize
|
103
|
-
assert_equal 2, @c.size
|
104
|
-
|
105
|
-
@c.commit
|
106
|
-
|
107
|
-
assert_equal (d1.to_json + "\n" + d2.to_json + "\n").bytesize, @c.bytesize
|
108
|
-
assert_equal 2, @c.size
|
109
|
-
|
110
|
-
first_bytesize = @c.bytesize
|
111
|
-
|
112
|
-
d3 = {"f1" => 'x', "f2" => 'y', "f3" => 'z'}
|
113
|
-
d4 = {"f1" => 'a', "f2" => 'b', "f3" => 'c'}
|
114
|
-
@c.append([d3.to_json + "\n", d4.to_json + "\n"])
|
115
|
-
|
116
|
-
assert_equal first_bytesize + (d3.to_json + "\n" + d4.to_json + "\n").bytesize, @c.bytesize
|
117
|
-
assert_equal 4, @c.size
|
118
|
-
|
119
|
-
@c.commit
|
120
|
-
|
121
|
-
assert_equal first_bytesize + (d3.to_json + "\n" + d4.to_json + "\n").bytesize, @c.bytesize
|
122
|
-
assert_equal 4, @c.size
|
123
|
-
end
|
124
|
-
|
125
|
-
test 'can #rollback to revert non-committed data' do
|
126
|
-
assert @c.empty?
|
127
|
-
|
128
|
-
d1 = {"f1" => 'v1', "f2" => 'v2', "f3" => 'v3'}
|
129
|
-
d2 = {"f1" => 'vv1', "f2" => 'vv2', "f3" => 'vv3'}
|
130
|
-
data = [d1.to_json + "\n", d2.to_json + "\n"]
|
131
|
-
@c.append(data)
|
132
|
-
|
133
|
-
assert_equal (d1.to_json + "\n" + d2.to_json + "\n").bytesize, @c.bytesize
|
134
|
-
assert_equal 2, @c.size
|
135
|
-
|
136
|
-
@c.rollback
|
137
|
-
|
138
|
-
assert @c.empty?
|
139
|
-
|
140
|
-
assert @c.empty?
|
141
|
-
|
142
|
-
d1 = {"f1" => 'v1', "f2" => 'v2', "f3" => 'v3'}
|
143
|
-
d2 = {"f1" => 'vv1', "f2" => 'vv2', "f3" => 'vv3'}
|
144
|
-
data = [d1.to_json + "\n", d2.to_json + "\n"]
|
145
|
-
@c.append(data)
|
146
|
-
@c.commit
|
147
|
-
|
148
|
-
assert_equal (d1.to_json + "\n" + d2.to_json + "\n").bytesize, @c.bytesize
|
149
|
-
assert_equal 2, @c.size
|
150
|
-
|
151
|
-
first_bytesize = @c.bytesize
|
152
|
-
|
153
|
-
d3 = {"f1" => 'x', "f2" => 'y', "f3" => 'z'}
|
154
|
-
d4 = {"f1" => 'a', "f2" => 'b', "f3" => 'c'}
|
155
|
-
@c.append([d3.to_json + "\n", d4.to_json + "\n"])
|
156
|
-
|
157
|
-
assert_equal first_bytesize + (d3.to_json + "\n" + d4.to_json + "\n").bytesize, @c.bytesize
|
158
|
-
assert_equal 4, @c.size
|
159
|
-
|
160
|
-
@c.rollback
|
161
|
-
|
162
|
-
assert_equal first_bytesize, @c.bytesize
|
163
|
-
assert_equal 2, @c.size
|
164
|
-
end
|
165
|
-
|
166
|
-
test 'can #rollback to revert non-committed data from #concat' do
|
167
|
-
assert @c.empty?
|
168
|
-
|
169
|
-
d1 = {"f1" => 'v1', "f2" => 'v2', "f3" => 'v3'}
|
170
|
-
d2 = {"f1" => 'vv1', "f2" => 'vv2', "f3" => 'vv3'}
|
171
|
-
data = [d1.to_json + "\n", d2.to_json + "\n"].join
|
172
|
-
@c.concat(data, 2)
|
173
|
-
|
174
|
-
assert_equal (d1.to_json + "\n" + d2.to_json + "\n").bytesize, @c.bytesize
|
175
|
-
assert_equal 2, @c.size
|
176
|
-
|
177
|
-
@c.rollback
|
178
|
-
|
179
|
-
assert @c.empty?
|
180
|
-
|
181
|
-
assert @c.empty?
|
182
|
-
|
183
|
-
d1 = {"f1" => 'v1', "f2" => 'v2', "f3" => 'v3'}
|
184
|
-
d2 = {"f1" => 'vv1', "f2" => 'vv2', "f3" => 'vv3'}
|
185
|
-
data = [d1.to_json + "\n", d2.to_json + "\n"]
|
186
|
-
@c.append(data)
|
187
|
-
@c.commit
|
188
|
-
|
189
|
-
assert_equal (d1.to_json + "\n" + d2.to_json + "\n").bytesize, @c.bytesize
|
190
|
-
assert_equal 2, @c.size
|
191
|
-
|
192
|
-
first_bytesize = @c.bytesize
|
193
|
-
|
194
|
-
d3 = {"f1" => 'x', "f2" => 'y', "f3" => 'z'}
|
195
|
-
d4 = {"f1" => 'a', "f2" => 'b', "f3" => 'c'}
|
196
|
-
@c.concat([d3.to_json + "\n", d4.to_json + "\n"].join, 2)
|
197
|
-
|
198
|
-
assert_equal first_bytesize + (d3.to_json + "\n" + d4.to_json + "\n").bytesize, @c.bytesize
|
199
|
-
assert_equal 4, @c.size
|
200
|
-
|
201
|
-
@c.rollback
|
202
|
-
|
203
|
-
assert_equal first_bytesize, @c.bytesize
|
204
|
-
assert_equal 2, @c.size
|
205
|
-
end
|
206
|
-
|
207
|
-
test 'does nothing for #close' do
|
208
|
-
d1 = {"f1" => 'v1', "f2" => 'v2', "f3" => 'v3'}
|
209
|
-
d2 = {"f1" => 'vv1', "f2" => 'vv2', "f3" => 'vv3'}
|
210
|
-
data = [d1.to_json + "\n", d2.to_json + "\n"]
|
211
|
-
@c.append(data)
|
212
|
-
@c.commit
|
213
|
-
d3 = {"f1" => 'x', "f2" => 'y', "f3" => 'z'}
|
214
|
-
d4 = {"f1" => 'a', "f2" => 'b', "f3" => 'c'}
|
215
|
-
@c.append([d3.to_json + "\n", d4.to_json + "\n"])
|
216
|
-
@c.commit
|
217
|
-
|
218
|
-
content = @c.read
|
219
|
-
|
220
|
-
@c.close
|
221
|
-
|
222
|
-
assert_equal content, @c.read
|
223
|
-
end
|
224
|
-
|
225
|
-
test 'deletes all data by #purge' do
|
226
|
-
d1 = {"f1" => 'v1', "f2" => 'v2', "f3" => 'v3'}
|
227
|
-
d2 = {"f1" => 'vv1', "f2" => 'vv2', "f3" => 'vv3'}
|
228
|
-
data = [d1.to_json + "\n", d2.to_json + "\n"]
|
229
|
-
@c.append(data)
|
230
|
-
@c.commit
|
231
|
-
d3 = {"f1" => 'x', "f2" => 'y', "f3" => 'z'}
|
232
|
-
d4 = {"f1" => 'a', "f2" => 'b', "f3" => 'c'}
|
233
|
-
@c.append([d3.to_json + "\n", d4.to_json + "\n"])
|
234
|
-
@c.commit
|
235
|
-
|
236
|
-
@c.purge
|
237
|
-
|
238
|
-
assert @c.empty?
|
239
|
-
assert_equal 0, @c.bytesize
|
240
|
-
assert_equal 0, @c.size
|
241
|
-
assert_equal '', @c.read
|
242
|
-
end
|
243
|
-
|
244
|
-
test 'can #open its contents as io' do
|
245
|
-
d1 = {"f1" => 'v1', "f2" => 'v2', "f3" => 'v3'}
|
246
|
-
d2 = {"f1" => 'vv1', "f2" => 'vv2', "f3" => 'vv3'}
|
247
|
-
data = [d1.to_json + "\n", d2.to_json + "\n"]
|
248
|
-
@c.append(data)
|
249
|
-
@c.commit
|
250
|
-
d3 = {"f1" => 'x', "f2" => 'y', "f3" => 'z'}
|
251
|
-
d4 = {"f1" => 'a', "f2" => 'b', "f3" => 'c'}
|
252
|
-
@c.append([d3.to_json + "\n", d4.to_json + "\n"])
|
253
|
-
@c.commit
|
254
|
-
|
255
|
-
lines = []
|
256
|
-
@c.open do |io|
|
257
|
-
assert io
|
258
|
-
io.readlines.each do |l|
|
259
|
-
lines << l
|
260
|
-
end
|
261
|
-
end
|
262
|
-
|
263
|
-
assert_equal d1.to_json + "\n", lines[0]
|
264
|
-
assert_equal d2.to_json + "\n", lines[1]
|
265
|
-
assert_equal d3.to_json + "\n", lines[2]
|
266
|
-
assert_equal d4.to_json + "\n", lines[3]
|
267
|
-
end
|
268
|
-
|
269
|
-
sub_test_case 'compressed buffer' do
|
270
|
-
setup do
|
271
|
-
@src = 'text data for compressing' * 5
|
272
|
-
@gzipped_src = compress(@src)
|
273
|
-
end
|
274
|
-
|
275
|
-
test '#append with compress option writes compressed data to chunk when compress is gzip' do
|
276
|
-
c = Fluent::Plugin::Buffer::MemoryChunk.new(Object.new, compress: :gzip)
|
277
|
-
c.append([@src, @src], compress: :gzip)
|
278
|
-
c.commit
|
279
|
-
|
280
|
-
# check chunk is compressed
|
281
|
-
assert c.read(compressed: :gzip).size < [@src, @src].join("").size
|
282
|
-
|
283
|
-
assert_equal @src + @src, c.read
|
284
|
-
end
|
285
|
-
|
286
|
-
test '#open passes io object having decompressed data to a block when compress is gzip' do
|
287
|
-
c = Fluent::Plugin::Buffer::MemoryChunk.new(Object.new, compress: :gzip)
|
288
|
-
c.concat(@gzipped_src, @src.size)
|
289
|
-
c.commit
|
290
|
-
|
291
|
-
decomressed_data = c.open do |io|
|
292
|
-
v = io.read
|
293
|
-
assert_equal @src, v
|
294
|
-
v
|
295
|
-
end
|
296
|
-
assert_equal @src, decomressed_data
|
297
|
-
end
|
298
|
-
|
299
|
-
test '#open with compressed option passes io object having decompressed data to a block when compress is gzip' do
|
300
|
-
c = Fluent::Plugin::Buffer::MemoryChunk.new(Object.new, compress: :gzip)
|
301
|
-
c.concat(@gzipped_src, @src.size)
|
302
|
-
c.commit
|
303
|
-
|
304
|
-
comressed_data = c.open(compressed: :gzip) do |io|
|
305
|
-
v = io.read
|
306
|
-
assert_equal @gzipped_src, v
|
307
|
-
v
|
308
|
-
end
|
309
|
-
assert_equal @gzipped_src, comressed_data
|
310
|
-
end
|
311
|
-
|
312
|
-
test '#write_to writes decompressed data when compress is gzip' do
|
313
|
-
c = Fluent::Plugin::Buffer::MemoryChunk.new(Object.new, compress: :gzip)
|
314
|
-
c.concat(@gzipped_src, @src.size)
|
315
|
-
c.commit
|
316
|
-
|
317
|
-
assert_equal @src, c.read
|
318
|
-
assert_equal @gzipped_src, c.read(compressed: :gzip)
|
319
|
-
|
320
|
-
io = StringIO.new
|
321
|
-
c.write_to(io)
|
322
|
-
assert_equal @src, io.string
|
323
|
-
end
|
324
|
-
|
325
|
-
test '#write_to with compressed option writes compressed data when compress is gzip' do
|
326
|
-
c = Fluent::Plugin::Buffer::MemoryChunk.new(Object.new, compress: :gzip)
|
327
|
-
c.concat(@gzipped_src, @src.size)
|
328
|
-
c.commit
|
329
|
-
|
330
|
-
assert_equal @src, c.read
|
331
|
-
assert_equal @gzipped_src, c.read(compressed: :gzip)
|
332
|
-
|
333
|
-
io = StringIO.new
|
334
|
-
io.set_encoding(Encoding::ASCII_8BIT)
|
335
|
-
c.write_to(io, compressed: :gzip)
|
336
|
-
assert_equal @gzipped_src, io.string
|
337
|
-
end
|
338
|
-
end
|
339
|
-
end
|
@@ -1,87 +0,0 @@
|
|
1
|
-
require_relative '../helper'
|
2
|
-
require 'fluent/plugin/compressable'
|
3
|
-
|
4
|
-
class CompressableTest < Test::Unit::TestCase
|
5
|
-
include Fluent::Plugin::Compressable
|
6
|
-
|
7
|
-
def compress_assert_equal(expected, actual)
|
8
|
-
e = Zlib::GzipReader.new(StringIO.new(expected)).read
|
9
|
-
a = Zlib::GzipReader.new(StringIO.new(actual)).read
|
10
|
-
assert_equal(e, a)
|
11
|
-
end
|
12
|
-
|
13
|
-
sub_test_case '#compress' do
|
14
|
-
setup do
|
15
|
-
@src = 'text data for compressing' * 5
|
16
|
-
@gzipped_src = compress(@src)
|
17
|
-
end
|
18
|
-
|
19
|
-
test 'compress data' do
|
20
|
-
assert compress(@src).size < @src.size
|
21
|
-
assert_not_equal @gzipped_src, @src
|
22
|
-
end
|
23
|
-
|
24
|
-
test 'write compressed data to IO with output_io option' do
|
25
|
-
io = StringIO.new
|
26
|
-
compress(@src, output_io: io)
|
27
|
-
compress_assert_equal @gzipped_src, io.string
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
sub_test_case '#decompress' do
|
32
|
-
setup do
|
33
|
-
@src = 'text data for compressing' * 5
|
34
|
-
@gzipped_src = compress(@src)
|
35
|
-
end
|
36
|
-
|
37
|
-
test 'decompress compressed data' do
|
38
|
-
assert_equal @src, decompress(@gzipped_src)
|
39
|
-
end
|
40
|
-
|
41
|
-
test 'write decompressed data to IO with output_io option' do
|
42
|
-
io = StringIO.new
|
43
|
-
decompress(@gzipped_src, output_io: io)
|
44
|
-
assert_equal @src, io.string
|
45
|
-
end
|
46
|
-
|
47
|
-
test 'return decompressed string with output_io option' do
|
48
|
-
io = StringIO.new(@gzipped_src)
|
49
|
-
assert_equal @src, decompress(input_io: io)
|
50
|
-
end
|
51
|
-
|
52
|
-
test 'decompress multiple compressed data' do
|
53
|
-
src1 = 'text data'
|
54
|
-
src2 = 'text data2'
|
55
|
-
gzipped_src = compress(src1) + compress(src2)
|
56
|
-
|
57
|
-
assert_equal src1 + src2, decompress(gzipped_src)
|
58
|
-
end
|
59
|
-
|
60
|
-
test 'decompress with input_io and output_io' do
|
61
|
-
input_io = StringIO.new(@gzipped_src)
|
62
|
-
output_io = StringIO.new
|
63
|
-
|
64
|
-
decompress(input_io: input_io, output_io: output_io)
|
65
|
-
assert_equal @src, output_io.string
|
66
|
-
end
|
67
|
-
|
68
|
-
test 'decompress multiple compressed data with input_io and output_io' do
|
69
|
-
src1 = 'text data'
|
70
|
-
src2 = 'text data2'
|
71
|
-
gzipped_src = compress(src1) + compress(src2)
|
72
|
-
|
73
|
-
input_io = StringIO.new(gzipped_src)
|
74
|
-
output_io = StringIO.new
|
75
|
-
|
76
|
-
decompress(input_io: input_io, output_io: output_io)
|
77
|
-
assert_equal src1 + src2, output_io.string
|
78
|
-
end
|
79
|
-
|
80
|
-
test 'return the received value as it is with empty string or nil' do
|
81
|
-
assert_equal nil, decompress
|
82
|
-
assert_equal nil, decompress(nil)
|
83
|
-
assert_equal '', decompress('')
|
84
|
-
assert_equal '', decompress('', output_io: StringIO.new)
|
85
|
-
end
|
86
|
-
end
|
87
|
-
end
|
@@ -1,96 +0,0 @@
|
|
1
|
-
require_relative '../helper'
|
2
|
-
require 'fluent/plugin/file_util'
|
3
|
-
require 'fileutils'
|
4
|
-
|
5
|
-
class FileUtilTest < Test::Unit::TestCase
|
6
|
-
def setup
|
7
|
-
FileUtils.rm_rf(TEST_DIR)
|
8
|
-
FileUtils.mkdir_p(TEST_DIR)
|
9
|
-
end
|
10
|
-
|
11
|
-
TEST_DIR = File.expand_path(File.dirname(__FILE__) + "/../tmp/file_util")
|
12
|
-
|
13
|
-
sub_test_case 'writable?' do
|
14
|
-
test 'file exists and writable' do
|
15
|
-
FileUtils.touch("#{TEST_DIR}/test_file")
|
16
|
-
assert_true Fluent::FileUtil.writable?("#{TEST_DIR}/test_file")
|
17
|
-
end
|
18
|
-
|
19
|
-
test 'file exists and not writable' do
|
20
|
-
FileUtils.touch("#{TEST_DIR}/test_file")
|
21
|
-
File.chmod(0444, "#{TEST_DIR}/test_file")
|
22
|
-
assert_false Fluent::FileUtil.writable?("#{TEST_DIR}/test_file")
|
23
|
-
end
|
24
|
-
|
25
|
-
test 'directory exists' do
|
26
|
-
FileUtils.mkdir_p("#{TEST_DIR}/test_dir")
|
27
|
-
assert_false Fluent::FileUtil.writable?("#{TEST_DIR}/test_dir")
|
28
|
-
end
|
29
|
-
|
30
|
-
test 'file does not exist and parent directory is writable' do
|
31
|
-
FileUtils.mkdir_p("#{TEST_DIR}/test_dir")
|
32
|
-
assert_true Fluent::FileUtil.writable?("#{TEST_DIR}/test_dir/test_file")
|
33
|
-
end
|
34
|
-
|
35
|
-
test 'file does not exist and parent directory is not writable' do
|
36
|
-
FileUtils.mkdir_p("#{TEST_DIR}/test_dir")
|
37
|
-
File.chmod(0444, "#{TEST_DIR}/test_dir")
|
38
|
-
assert_false Fluent::FileUtil.writable?("#{TEST_DIR}/test_dir/test_file")
|
39
|
-
end
|
40
|
-
|
41
|
-
test 'parent directory does not exist' do
|
42
|
-
FileUtils.rm_rf("#{TEST_DIR}/test_dir")
|
43
|
-
assert_false Fluent::FileUtil.writable?("#{TEST_DIR}/test_dir/test_file")
|
44
|
-
end
|
45
|
-
|
46
|
-
test 'parent file (not directory) exists' do
|
47
|
-
FileUtils.touch("#{TEST_DIR}/test_file")
|
48
|
-
assert_false Fluent::FileUtil.writable?("#{TEST_DIR}/test_file/foo")
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
52
|
-
sub_test_case 'writable_p?' do
|
53
|
-
test 'file exists and writable' do
|
54
|
-
FileUtils.touch("#{TEST_DIR}/test_file")
|
55
|
-
assert_true Fluent::FileUtil.writable_p?("#{TEST_DIR}/test_file")
|
56
|
-
end
|
57
|
-
|
58
|
-
test 'file exists and not writable' do
|
59
|
-
FileUtils.touch("#{TEST_DIR}/test_file")
|
60
|
-
File.chmod(0444, "#{TEST_DIR}/test_file")
|
61
|
-
assert_false Fluent::FileUtil.writable_p?("#{TEST_DIR}/test_file")
|
62
|
-
end
|
63
|
-
|
64
|
-
test 'directory exists' do
|
65
|
-
FileUtils.mkdir_p("#{TEST_DIR}/test_dir")
|
66
|
-
assert_false Fluent::FileUtil.writable_p?("#{TEST_DIR}/test_dir")
|
67
|
-
end
|
68
|
-
|
69
|
-
test 'parent directory exists and writable' do
|
70
|
-
FileUtils.mkdir_p("#{TEST_DIR}/test_dir")
|
71
|
-
assert_true Fluent::FileUtil.writable_p?("#{TEST_DIR}/test_dir/test_file")
|
72
|
-
end
|
73
|
-
|
74
|
-
test 'parent directory exists and not writable' do
|
75
|
-
FileUtils.mkdir_p("#{TEST_DIR}/test_dir")
|
76
|
-
File.chmod(0555, "#{TEST_DIR}/test_dir")
|
77
|
-
assert_false Fluent::FileUtil.writable_p?("#{TEST_DIR}/test_dir/test_file")
|
78
|
-
end
|
79
|
-
|
80
|
-
test 'parent of parent (of parent ...) directory exists and writable' do
|
81
|
-
FileUtils.mkdir_p("#{TEST_DIR}/test_dir")
|
82
|
-
assert_true Fluent::FileUtil.writable_p?("#{TEST_DIR}/test_dir/foo/bar/baz")
|
83
|
-
end
|
84
|
-
|
85
|
-
test 'parent of parent (of parent ...) directory exists and not writable' do
|
86
|
-
FileUtils.mkdir_p("#{TEST_DIR}/test_dir")
|
87
|
-
File.chmod(0555, "#{TEST_DIR}/test_dir")
|
88
|
-
assert_false Fluent::FileUtil.writable_p?("#{TEST_DIR}/test_dir/foo/bar/baz")
|
89
|
-
end
|
90
|
-
|
91
|
-
test 'parent of parent (of parent ...) file (not directory) exists' do
|
92
|
-
FileUtils.touch("#{TEST_DIR}/test_file")
|
93
|
-
assert_false Fluent::FileUtil.writable_p?("#{TEST_DIR}/test_file/foo/bar/baz")
|
94
|
-
end
|
95
|
-
end
|
96
|
-
end
|