fluentd 1.17.0-x86-mingw32 → 1.17.1-x86-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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +46 -0
- data/README.md +1 -0
- data/SECURITY.md +2 -2
- data/fluent.conf +14 -14
- 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/yaml_parser/parser.rb +4 -0
- data/lib/fluent/log/console_adapter.rb +4 -2
- data/lib/fluent/plugin/in_exec.rb +14 -2
- data/lib/fluent/plugin/in_http.rb +1 -1
- data/lib/fluent/plugin/in_sample.rb +13 -7
- data/lib/fluent/plugin/in_tail.rb +65 -23
- 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 +12 -0
- data/lib/fluent/plugin/parser_json.rb +4 -12
- data/lib/fluent/plugin_helper/http_server/server.rb +1 -1
- data/lib/fluent/version.rb +1 -1
- data/templates/new_gem/fluent-plugin.gemspec.erb +6 -5
- metadata +25 -472
- data/.github/DISCUSSION_TEMPLATE/q-a-japanese.yml +0 -50
- data/.github/DISCUSSION_TEMPLATE/q-a.yml +0 -47
- 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-ruby-head.yml +0 -31
- data/.github/workflows/test.yml +0 -32
- data/.gitignore +0 -30
- data/Gemfile +0 -9
- data/fluentd.gemspec +0 -62
- 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 -117
- 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/log_numeric/01.log +0 -0
- data/test/plugin/data/log_numeric/02.log +0 -0
- data/test/plugin/data/log_numeric/12.log +0 -0
- data/test/plugin/data/log_numeric/14.log +0 -0
- data/test/plugin/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 -1124
- 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 -3429
- 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 -557
- 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 -34
- 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 -244
- data/test/plugin/test_parser_labeled_tsv.rb +0 -160
- data/test/plugin/test_parser_msgpack.rb +0 -127
- 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 -166
- 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,130 +0,0 @@
|
|
1
|
-
require_relative '../helper'
|
2
|
-
require 'fluent/plugin_helper/timer'
|
3
|
-
require 'fluent/plugin/base'
|
4
|
-
|
5
|
-
class TimerTest < Test::Unit::TestCase
|
6
|
-
class Dummy < Fluent::Plugin::TestBase
|
7
|
-
helpers :timer
|
8
|
-
end
|
9
|
-
|
10
|
-
test 'can be instantiated under state that timer is not running' do
|
11
|
-
d1 = Dummy.new
|
12
|
-
assert d1.respond_to?(:timer_running?)
|
13
|
-
assert !d1.timer_running?
|
14
|
-
end
|
15
|
-
|
16
|
-
test 'can be configured' do
|
17
|
-
d1 = Dummy.new
|
18
|
-
assert_nothing_raised do
|
19
|
-
d1.configure(config_element())
|
20
|
-
end
|
21
|
-
assert d1.plugin_id
|
22
|
-
assert d1.log
|
23
|
-
end
|
24
|
-
|
25
|
-
test 'can start timers by start' do
|
26
|
-
d1 = Dummy.new
|
27
|
-
d1.configure(config_element())
|
28
|
-
assert !d1.timer_running?
|
29
|
-
d1.start
|
30
|
-
assert d1.timer_running?
|
31
|
-
|
32
|
-
counter = 0
|
33
|
-
d1.timer_execute(:test, 1) do
|
34
|
-
counter += 1
|
35
|
-
end
|
36
|
-
|
37
|
-
sleep 2
|
38
|
-
|
39
|
-
d1.stop
|
40
|
-
assert !d1.timer_running?
|
41
|
-
|
42
|
-
assert{ counter >= 1 && counter <= 2 }
|
43
|
-
|
44
|
-
d1.shutdown; d1.close; d1.terminate
|
45
|
-
end
|
46
|
-
|
47
|
-
test 'can run many timers' do
|
48
|
-
d1 = Dummy.new
|
49
|
-
d1.configure(config_element())
|
50
|
-
d1.start
|
51
|
-
|
52
|
-
counter1 = 0
|
53
|
-
counter2 = 0
|
54
|
-
|
55
|
-
d1.timer_execute(:t1, 0.2) do
|
56
|
-
counter1 += 1
|
57
|
-
end
|
58
|
-
d1.timer_execute(:t2, 0.2) do
|
59
|
-
counter2 += 1
|
60
|
-
end
|
61
|
-
|
62
|
-
sleep 1
|
63
|
-
d1.stop
|
64
|
-
|
65
|
-
assert{ counter1 >= 4 && counter1 <= 5 }
|
66
|
-
assert{ counter2 >= 4 && counter2 <= 5 }
|
67
|
-
|
68
|
-
d1.shutdown; d1.close; d1.terminate
|
69
|
-
end
|
70
|
-
|
71
|
-
test 'aborts timer which raises exceptions' do
|
72
|
-
d1 = Dummy.new
|
73
|
-
d1.configure(config_element())
|
74
|
-
d1.start
|
75
|
-
|
76
|
-
counter1 = 0
|
77
|
-
counter2 = 0
|
78
|
-
|
79
|
-
d1.timer_execute(:t1, 0.2) do
|
80
|
-
counter1 += 1
|
81
|
-
end
|
82
|
-
d1.timer_execute(:t2, 0.2) do
|
83
|
-
raise "abort!!!!!!" if counter2 > 1
|
84
|
-
counter2 += 1
|
85
|
-
end
|
86
|
-
|
87
|
-
sleep 1
|
88
|
-
d1.stop
|
89
|
-
|
90
|
-
assert{ counter1 >= 4 && counter1 <= 5 }
|
91
|
-
assert{ counter2 == 2 }
|
92
|
-
msg = "Unexpected error raised. Stopping the timer. title=:t2"
|
93
|
-
assert(d1.log.out.logs.any?{|line| line.include?("[error]:") && line.include?(msg) && line.include?("abort!!!!!!") })
|
94
|
-
assert(d1.log.out.logs.any?{|line| line.include?("[error]:") && line.include?("Timer detached. title=:t2") })
|
95
|
-
|
96
|
-
d1.shutdown; d1.close; d1.terminate
|
97
|
-
end
|
98
|
-
|
99
|
-
test 'can run at once' do
|
100
|
-
d1 = Dummy.new
|
101
|
-
d1.configure(config_element())
|
102
|
-
assert !d1.timer_running?
|
103
|
-
d1.start
|
104
|
-
assert d1.timer_running?
|
105
|
-
|
106
|
-
waiting_assertion = true
|
107
|
-
waiting_timer = true
|
108
|
-
counter = 0
|
109
|
-
d1.timer_execute(:test, 1, repeat: false) do
|
110
|
-
sleep(0.1) while waiting_assertion
|
111
|
-
counter += 1
|
112
|
-
waiting_timer = false
|
113
|
-
end
|
114
|
-
|
115
|
-
watchers = d1._event_loop.watchers.reject {|w| w.is_a?(Fluent::PluginHelper::EventLoop::DefaultWatcher) }
|
116
|
-
assert_equal(1, watchers.size)
|
117
|
-
assert(watchers.first.attached?)
|
118
|
-
|
119
|
-
waiting_assertion = false
|
120
|
-
sleep(0.1) while waiting_timer
|
121
|
-
|
122
|
-
assert_equal(1, counter)
|
123
|
-
waiting(4){ sleep 0.1 while watchers.first.attached? }
|
124
|
-
assert_false(watchers.first.attached?)
|
125
|
-
watchers = d1._event_loop.watchers.reject {|w| w.is_a?(Fluent::PluginHelper::EventLoop::DefaultWatcher) }
|
126
|
-
assert_equal(0, watchers.size)
|
127
|
-
|
128
|
-
d1.shutdown; d1.close; d1.terminate
|
129
|
-
end
|
130
|
-
end
|
data/test/scripts/exec_script.rb
DELETED
@@ -1,32 +0,0 @@
|
|
1
|
-
require 'json'
|
2
|
-
require 'msgpack'
|
3
|
-
|
4
|
-
def gen_tsv(time)
|
5
|
-
"#{time}\ttag1\tok"
|
6
|
-
end
|
7
|
-
|
8
|
-
def gen_json(time)
|
9
|
-
{'tag' => 'tag1', 'time' => time, 'k1' => 'ok'}.to_json
|
10
|
-
end
|
11
|
-
|
12
|
-
def gen_msgpack(time)
|
13
|
-
{'tagger' => 'tag1', 'datetime' => time, 'k1' => 'ok'}.to_msgpack
|
14
|
-
end
|
15
|
-
|
16
|
-
def gen_raw_string(time)
|
17
|
-
"#{time} hello"
|
18
|
-
end
|
19
|
-
|
20
|
-
time = ARGV.first
|
21
|
-
time = Integer(time) rescue time
|
22
|
-
|
23
|
-
case ARGV.last.to_i
|
24
|
-
when 0
|
25
|
-
puts gen_tsv(time)
|
26
|
-
when 1
|
27
|
-
puts gen_json(time)
|
28
|
-
when 2
|
29
|
-
print gen_msgpack(time)
|
30
|
-
when 3
|
31
|
-
print gen_raw_string(time)
|
32
|
-
end
|
@@ -1,81 +0,0 @@
|
|
1
|
-
#
|
2
|
-
# Fluentd
|
3
|
-
#
|
4
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
-
# you may not use this file except in compliance with the License.
|
6
|
-
# You may obtain a copy of the License at
|
7
|
-
#
|
8
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
9
|
-
#
|
10
|
-
# Unless required by applicable law or agreed to in writing, software
|
11
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
-
# See the License for the specific language governing permissions and
|
14
|
-
# limitations under the License.
|
15
|
-
#
|
16
|
-
|
17
|
-
require 'fluent/plugin/output'
|
18
|
-
require 'fluent/event'
|
19
|
-
|
20
|
-
module Fluent::Plugin
|
21
|
-
class TestOutput < Output
|
22
|
-
Fluent::Plugin.register_output('test', self)
|
23
|
-
|
24
|
-
config_param :name, :string
|
25
|
-
|
26
|
-
config_section :buffer do
|
27
|
-
config_set_default :chunk_keys, ['tag']
|
28
|
-
end
|
29
|
-
|
30
|
-
def initialize
|
31
|
-
super
|
32
|
-
@emit_streams = []
|
33
|
-
end
|
34
|
-
|
35
|
-
attr_reader :emit_streams
|
36
|
-
|
37
|
-
def emits
|
38
|
-
all = []
|
39
|
-
@emit_streams.each {|tag,events|
|
40
|
-
events.each {|time,record|
|
41
|
-
all << [tag, time, record]
|
42
|
-
}
|
43
|
-
}
|
44
|
-
all
|
45
|
-
end
|
46
|
-
|
47
|
-
def events
|
48
|
-
all = []
|
49
|
-
@emit_streams.each {|tag,events|
|
50
|
-
all.concat events
|
51
|
-
}
|
52
|
-
all
|
53
|
-
end
|
54
|
-
|
55
|
-
def records
|
56
|
-
all = []
|
57
|
-
@emit_streams.each {|tag,events|
|
58
|
-
events.each {|time,record|
|
59
|
-
all << record
|
60
|
-
}
|
61
|
-
}
|
62
|
-
all
|
63
|
-
end
|
64
|
-
|
65
|
-
def prefer_buffered_processing
|
66
|
-
false
|
67
|
-
end
|
68
|
-
|
69
|
-
def process(tag, es)
|
70
|
-
@emit_streams << [tag, es.to_a]
|
71
|
-
end
|
72
|
-
|
73
|
-
def write(chunk)
|
74
|
-
es = Fluent::ArrayEventStream.new
|
75
|
-
chunk.each do |time, record|
|
76
|
-
es.add(time, record)
|
77
|
-
end
|
78
|
-
@emit_streams << [tag, es]
|
79
|
-
end
|
80
|
-
end
|
81
|
-
end
|
@@ -1,80 +0,0 @@
|
|
1
|
-
#
|
2
|
-
# Fluentd
|
3
|
-
#
|
4
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
-
# you may not use this file except in compliance with the License.
|
6
|
-
# You may obtain a copy of the License at
|
7
|
-
#
|
8
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
9
|
-
#
|
10
|
-
# Unless required by applicable law or agreed to in writing, software
|
11
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
-
# See the License for the specific language governing permissions and
|
14
|
-
# limitations under the License.
|
15
|
-
#
|
16
|
-
|
17
|
-
module Fluent::Plugin
|
18
|
-
class Test2Output < Output
|
19
|
-
Fluent::Plugin.register_output('test2', self)
|
20
|
-
|
21
|
-
helpers :event_emitter
|
22
|
-
|
23
|
-
config_param :name, :string
|
24
|
-
|
25
|
-
config_section :buffer do
|
26
|
-
config_set_default :chunk_keys, ['tag']
|
27
|
-
end
|
28
|
-
|
29
|
-
def initialize
|
30
|
-
super
|
31
|
-
@emit_streams = []
|
32
|
-
end
|
33
|
-
|
34
|
-
attr_reader :emit_streams
|
35
|
-
|
36
|
-
def emits
|
37
|
-
all = []
|
38
|
-
@emit_streams.each {|tag,events|
|
39
|
-
events.each {|time,record|
|
40
|
-
all << [tag, time, record]
|
41
|
-
}
|
42
|
-
}
|
43
|
-
all
|
44
|
-
end
|
45
|
-
|
46
|
-
def events
|
47
|
-
all = []
|
48
|
-
@emit_streams.each {|tag,events|
|
49
|
-
all.concat events
|
50
|
-
}
|
51
|
-
all
|
52
|
-
end
|
53
|
-
|
54
|
-
def records
|
55
|
-
all = []
|
56
|
-
@emit_streams.each {|tag,events|
|
57
|
-
events.each {|time,record|
|
58
|
-
all << record
|
59
|
-
}
|
60
|
-
}
|
61
|
-
all
|
62
|
-
end
|
63
|
-
|
64
|
-
def prefer_buffered_processing
|
65
|
-
false
|
66
|
-
end
|
67
|
-
|
68
|
-
def process(tag, es)
|
69
|
-
@emit_streams << [tag, es.to_a]
|
70
|
-
end
|
71
|
-
|
72
|
-
def write(chunk)
|
73
|
-
es = Fluent::ArrayEventStream.new
|
74
|
-
chunk.each do |time, record|
|
75
|
-
es.add(time, record)
|
76
|
-
end
|
77
|
-
@emit_streams << [tag, es]
|
78
|
-
end
|
79
|
-
end
|
80
|
-
end
|
data/test/test_capability.rb
DELETED
@@ -1,74 +0,0 @@
|
|
1
|
-
require_relative 'helper'
|
2
|
-
require 'fluent/test'
|
3
|
-
require 'fluent/capability'
|
4
|
-
|
5
|
-
class FluentCapabilityTest < ::Test::Unit::TestCase
|
6
|
-
setup do
|
7
|
-
@capability = Fluent::Capability.new(:current_process)
|
8
|
-
omit "Fluent::Capability class is not usable on this environment" unless @capability.usable?
|
9
|
-
end
|
10
|
-
|
11
|
-
sub_test_case "check capability" do
|
12
|
-
test "effective" do
|
13
|
-
@capability.clear(:both)
|
14
|
-
assert_true @capability.update(:add, :effective, :dac_read_search)
|
15
|
-
assert_equal CapNG::Result::PARTIAL, @capability.have_capabilities?(:caps)
|
16
|
-
assert_nothing_raised do
|
17
|
-
@capability.apply(:caps)
|
18
|
-
end
|
19
|
-
assert_equal CapNG::Result::NONE, @capability.have_capabilities?(:bounds)
|
20
|
-
assert_true @capability.have_capability?(:effective, :dac_read_search)
|
21
|
-
assert_false @capability.have_capability?(:inheritable, :dac_read_search)
|
22
|
-
assert_false @capability.have_capability?(:permitted, :dac_read_search)
|
23
|
-
end
|
24
|
-
|
25
|
-
test "inheritable" do
|
26
|
-
@capability.clear(:both)
|
27
|
-
capabilities = [:chown, :dac_override]
|
28
|
-
assert_equal [true, true], @capability.update(:add, :inheritable, capabilities)
|
29
|
-
assert_equal CapNG::Result::NONE, @capability.have_capabilities?(:caps)
|
30
|
-
assert_nothing_raised do
|
31
|
-
@capability.apply(:caps)
|
32
|
-
end
|
33
|
-
assert_equal CapNG::Result::NONE, @capability.have_capabilities?(:bounds)
|
34
|
-
capabilities.each do |capability|
|
35
|
-
assert_false @capability.have_capability?(:effective, capability)
|
36
|
-
assert_true @capability.have_capability?(:inheritable, capability)
|
37
|
-
assert_false @capability.have_capability?(:permitted, capability)
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
test "permitted" do
|
42
|
-
@capability.clear(:both)
|
43
|
-
capabilities = [:fowner, :fsetid, :kill]
|
44
|
-
assert_equal [true, true, true], @capability.update(:add, :permitted, capabilities)
|
45
|
-
assert_equal CapNG::Result::NONE, @capability.have_capabilities?(:caps)
|
46
|
-
assert_nothing_raised do
|
47
|
-
@capability.apply(:caps)
|
48
|
-
end
|
49
|
-
assert_equal CapNG::Result::NONE, @capability.have_capabilities?(:bounds)
|
50
|
-
capabilities.each do |capability|
|
51
|
-
assert_false @capability.have_capability?(:effective, capability)
|
52
|
-
assert_false @capability.have_capability?(:inheritable, capability)
|
53
|
-
assert_true @capability.have_capability?(:permitted, capability)
|
54
|
-
end
|
55
|
-
end
|
56
|
-
|
57
|
-
test "effective/inheritable/permitted" do
|
58
|
-
@capability.clear(:both)
|
59
|
-
capabilities = [:setpcap, :net_admin, :net_raw, :sys_boot, :sys_time]
|
60
|
-
update_type = CapNG::Type::EFFECTIVE | CapNG::Type::INHERITABLE | CapNG::Type::PERMITTED
|
61
|
-
assert_equal [true, true, true, true, true], @capability.update(:add, update_type, capabilities)
|
62
|
-
assert_equal CapNG::Result::PARTIAL, @capability.have_capabilities?(:caps)
|
63
|
-
assert_nothing_raised do
|
64
|
-
@capability.apply(:caps)
|
65
|
-
end
|
66
|
-
assert_equal CapNG::Result::NONE, @capability.have_capabilities?(:bounds)
|
67
|
-
capabilities.each do |capability|
|
68
|
-
assert_true @capability.have_capability?(:effective, capability)
|
69
|
-
assert_true @capability.have_capability?(:inheritable, capability)
|
70
|
-
assert_true @capability.have_capability?(:permitted, capability)
|
71
|
-
end
|
72
|
-
end
|
73
|
-
end
|
74
|
-
end
|
data/test/test_clock.rb
DELETED
@@ -1,164 +0,0 @@
|
|
1
|
-
require_relative 'helper'
|
2
|
-
require 'fluent/clock'
|
3
|
-
|
4
|
-
require 'timecop'
|
5
|
-
|
6
|
-
class ClockTest < ::Test::Unit::TestCase
|
7
|
-
teardown do
|
8
|
-
Fluent::Clock.return # call it always not to affect other tests
|
9
|
-
end
|
10
|
-
|
11
|
-
sub_test_case 'without any pre-operation' do
|
12
|
-
test 'clock can provides incremental floating point number based on second' do
|
13
|
-
c1 = Fluent::Clock.now
|
14
|
-
assert_kind_of Float, c1
|
15
|
-
sleep 1.1
|
16
|
-
c2 = Fluent::Clock.now
|
17
|
-
assert{ c2 >= c1 + 1.0 && c2 < c1 + 9.0 } # if clock returns deci-second (fantastic!), c2 should be larger than c1 + 10
|
18
|
-
end
|
19
|
-
|
20
|
-
test 'clock value will proceed even if timecop freezes Time' do
|
21
|
-
Timecop.freeze(Time.now) do
|
22
|
-
c1 = Fluent::Clock.now
|
23
|
-
assert_kind_of Float, c1
|
24
|
-
sleep 1.1
|
25
|
-
c2 = Fluent::Clock.now
|
26
|
-
assert{ c2 >= c1 + 1.0 && c2 < c1 + 9.0 }
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
sub_test_case 'using #freeze without any arguments' do
|
32
|
-
test 'Clock.freeze without arguments freezes clock with current clock value' do
|
33
|
-
c0 = Fluent::Clock.now
|
34
|
-
Fluent::Clock.freeze
|
35
|
-
c1 = Fluent::Clock.now
|
36
|
-
Fluent::Clock.return
|
37
|
-
c2 = Fluent::Clock.now
|
38
|
-
assert{ c0 <= c1 && c1 <= c2 }
|
39
|
-
end
|
40
|
-
|
41
|
-
test 'Clock.return raises an error if it is called in block' do
|
42
|
-
assert_raise RuntimeError.new("invalid return while running code in blocks") do
|
43
|
-
Fluent::Clock.freeze do
|
44
|
-
Fluent::Clock.return
|
45
|
-
end
|
46
|
-
end
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
50
|
-
sub_test_case 'using #freeze with clock value' do
|
51
|
-
test 'Clock.now always returns frozen time until #return called' do
|
52
|
-
c0 = Fluent::Clock.now
|
53
|
-
Fluent::Clock.freeze(c0)
|
54
|
-
assert_equal c0, Fluent::Clock.now
|
55
|
-
sleep 0.5
|
56
|
-
assert_equal c0, Fluent::Clock.now
|
57
|
-
sleep 0.6
|
58
|
-
assert_equal c0, Fluent::Clock.now
|
59
|
-
|
60
|
-
Fluent::Clock.return
|
61
|
-
c1 = Fluent::Clock.now
|
62
|
-
assert{ c1 >= c0 + 1.0 }
|
63
|
-
end
|
64
|
-
|
65
|
-
test 'Clock.now returns frozen time in the block argument of #freeze' do
|
66
|
-
c0 = Fluent::Clock.now
|
67
|
-
Fluent::Clock.freeze(c0) do
|
68
|
-
assert_equal c0, Fluent::Clock.now
|
69
|
-
sleep 0.5
|
70
|
-
assert_equal c0, Fluent::Clock.now
|
71
|
-
sleep 0.6
|
72
|
-
assert_equal c0, Fluent::Clock.now
|
73
|
-
end
|
74
|
-
c1 = Fluent::Clock.now
|
75
|
-
assert{ c1 >= c0 + 1.0 }
|
76
|
-
end
|
77
|
-
|
78
|
-
test 'Clock.now returns unfrozen value after jumping out from block by raising errors' do
|
79
|
-
c0 = Fluent::Clock.now
|
80
|
-
rescued_error = nil
|
81
|
-
begin
|
82
|
-
Fluent::Clock.freeze(c0) do
|
83
|
-
assert_equal c0, Fluent::Clock.now
|
84
|
-
sleep 0.5
|
85
|
-
assert_equal c0, Fluent::Clock.now
|
86
|
-
sleep 0.6
|
87
|
-
assert_equal c0, Fluent::Clock.now
|
88
|
-
raise "bye!"
|
89
|
-
end
|
90
|
-
rescue => e
|
91
|
-
rescued_error = e
|
92
|
-
end
|
93
|
-
assert rescued_error # ensure to rescue an error
|
94
|
-
c1 = Fluent::Clock.now
|
95
|
-
assert{ c1 >= c0 + 1.0 }
|
96
|
-
end
|
97
|
-
|
98
|
-
test 'Clock.return cancels all Clock.freeze effects by just once' do
|
99
|
-
c0 = Fluent::Clock.now
|
100
|
-
sleep 0.1
|
101
|
-
c1 = Fluent::Clock.now
|
102
|
-
sleep 0.1
|
103
|
-
c2 = Fluent::Clock.now
|
104
|
-
Fluent::Clock.freeze(c0)
|
105
|
-
sleep 0.1
|
106
|
-
assert_equal c0, Fluent::Clock.now
|
107
|
-
Fluent::Clock.freeze(c1)
|
108
|
-
sleep 0.1
|
109
|
-
assert_equal c1, Fluent::Clock.now
|
110
|
-
Fluent::Clock.freeze(c2)
|
111
|
-
sleep 0.1
|
112
|
-
assert_equal c2, Fluent::Clock.now
|
113
|
-
|
114
|
-
Fluent::Clock.return
|
115
|
-
assert{ Fluent::Clock.now > c2 }
|
116
|
-
end
|
117
|
-
|
118
|
-
test 'Clock.freeze allows nested blocks by itself' do
|
119
|
-
c0 = Fluent::Clock.now
|
120
|
-
sleep 0.1
|
121
|
-
c1 = Fluent::Clock.now
|
122
|
-
sleep 0.1
|
123
|
-
c2 = Fluent::Clock.now
|
124
|
-
Fluent::Clock.freeze(c0) do
|
125
|
-
sleep 0.1
|
126
|
-
assert_equal c0, Fluent::Clock.now
|
127
|
-
Fluent::Clock.freeze(c1) do
|
128
|
-
sleep 0.1
|
129
|
-
assert_equal c1, Fluent::Clock.now
|
130
|
-
Fluent::Clock.freeze(c2) do
|
131
|
-
sleep 0.1
|
132
|
-
assert_equal c2, Fluent::Clock.now
|
133
|
-
end
|
134
|
-
assert_equal c1, Fluent::Clock.now
|
135
|
-
end
|
136
|
-
assert_equal c0, Fluent::Clock.now
|
137
|
-
end
|
138
|
-
assert{ Fluent::Clock.now > c0 }
|
139
|
-
end
|
140
|
-
end
|
141
|
-
|
142
|
-
sub_test_case 'using #freeze with Time argument' do
|
143
|
-
test 'Clock.freeze returns the clock value which should be produced when the time is at the specified time' do
|
144
|
-
c0 = Fluent::Clock.now
|
145
|
-
t0 = Time.now
|
146
|
-
t1 = t0 - 30
|
147
|
-
assert_kind_of Time, t1
|
148
|
-
t2 = t0 + 30
|
149
|
-
assert_kind_of Time, t2
|
150
|
-
|
151
|
-
# 31 is for error of floating point value
|
152
|
-
Fluent::Clock.freeze(t1) do
|
153
|
-
c1 = Fluent::Clock.now
|
154
|
-
assert{ c1 >= c0 - 31 && c1 <= c0 - 31 + 10 } # +10 is for threading schedule error
|
155
|
-
end
|
156
|
-
|
157
|
-
# 29 is for error of floating point value
|
158
|
-
Fluent::Clock.freeze(t2) do
|
159
|
-
c2 = Fluent::Clock.now
|
160
|
-
assert{ c2 >= c0 + 29 && c2 <= c0 + 29 + 10 } # +10 is for threading schedule error
|
161
|
-
end
|
162
|
-
end
|
163
|
-
end
|
164
|
-
end
|