fluentd 1.17.0-x64-mingw32 → 1.18.0-x64-mingw32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (278) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +100 -0
  3. data/README.md +1 -0
  4. data/SECURITY.md +2 -2
  5. data/fluent.conf +14 -14
  6. data/lib/fluent/command/cap_ctl.rb +4 -4
  7. data/lib/fluent/command/fluentd.rb +7 -1
  8. data/lib/fluent/compat/call_super_mixin.rb +3 -3
  9. data/lib/fluent/compat/propagate_default.rb +4 -4
  10. data/lib/fluent/config/literal_parser.rb +9 -2
  11. data/lib/fluent/config/yaml_parser/parser.rb +4 -0
  12. data/lib/fluent/engine.rb +49 -33
  13. data/lib/fluent/env.rb +3 -0
  14. data/lib/fluent/event_router.rb +2 -2
  15. data/lib/fluent/log/console_adapter.rb +4 -2
  16. data/lib/fluent/plugin/filter_parser.rb +27 -51
  17. data/lib/fluent/plugin/in_exec.rb +14 -2
  18. data/lib/fluent/plugin/in_http.rb +6 -1
  19. data/lib/fluent/plugin/in_sample.rb +13 -7
  20. data/lib/fluent/plugin/in_syslog.rb +4 -0
  21. data/lib/fluent/plugin/in_tail.rb +65 -23
  22. data/lib/fluent/plugin/in_tcp.rb +4 -0
  23. data/lib/fluent/plugin/in_udp.rb +10 -1
  24. data/lib/fluent/plugin/input.rb +4 -0
  25. data/lib/fluent/plugin/out_buffer.rb +40 -0
  26. data/lib/fluent/plugin/out_copy.rb +1 -1
  27. data/lib/fluent/plugin/out_file.rb +8 -0
  28. data/lib/fluent/plugin/out_http.rb +12 -0
  29. data/lib/fluent/plugin/output.rb +2 -0
  30. data/lib/fluent/plugin/parser_json.rb +4 -12
  31. data/lib/fluent/plugin_helper/cert_option.rb +8 -0
  32. data/lib/fluent/plugin_helper/event_emitter.rb +12 -0
  33. data/lib/fluent/plugin_helper/http_server/server.rb +24 -8
  34. data/lib/fluent/plugin_helper/server.rb +9 -0
  35. data/lib/fluent/root_agent.rb +114 -19
  36. data/lib/fluent/source_only_buffer_agent.rb +102 -0
  37. data/lib/fluent/supervisor.rb +207 -34
  38. data/lib/fluent/system_config.rb +15 -3
  39. data/lib/fluent/version.rb +1 -1
  40. data/templates/new_gem/fluent-plugin.gemspec.erb +6 -5
  41. metadata +24 -483
  42. data/.github/DISCUSSION_TEMPLATE/q-a-japanese.yml +0 -50
  43. data/.github/DISCUSSION_TEMPLATE/q-a.yml +0 -47
  44. data/.github/ISSUE_TEMPLATE/bug_report.yml +0 -71
  45. data/.github/ISSUE_TEMPLATE/config.yml +0 -5
  46. data/.github/ISSUE_TEMPLATE/feature_request.yml +0 -39
  47. data/.github/ISSUE_TEMPLATE.md +0 -17
  48. data/.github/PULL_REQUEST_TEMPLATE.md +0 -14
  49. data/.github/workflows/stale-actions.yml +0 -24
  50. data/.github/workflows/test-ruby-head.yml +0 -31
  51. data/.github/workflows/test.yml +0 -32
  52. data/.gitignore +0 -30
  53. data/Gemfile +0 -9
  54. data/fluentd.gemspec +0 -62
  55. data/test/command/test_binlog_reader.rb +0 -362
  56. data/test/command/test_ca_generate.rb +0 -70
  57. data/test/command/test_cap_ctl.rb +0 -100
  58. data/test/command/test_cat.rb +0 -128
  59. data/test/command/test_ctl.rb +0 -56
  60. data/test/command/test_fluentd.rb +0 -1291
  61. data/test/command/test_plugin_config_formatter.rb +0 -397
  62. data/test/command/test_plugin_generator.rb +0 -109
  63. data/test/compat/test_calls_super.rb +0 -166
  64. data/test/compat/test_parser.rb +0 -92
  65. data/test/config/assertions.rb +0 -42
  66. data/test/config/test_config_parser.rb +0 -551
  67. data/test/config/test_configurable.rb +0 -1784
  68. data/test/config/test_configure_proxy.rb +0 -604
  69. data/test/config/test_dsl.rb +0 -415
  70. data/test/config/test_element.rb +0 -518
  71. data/test/config/test_literal_parser.rb +0 -309
  72. data/test/config/test_plugin_configuration.rb +0 -56
  73. data/test/config/test_section.rb +0 -191
  74. data/test/config/test_system_config.rb +0 -195
  75. data/test/config/test_types.rb +0 -408
  76. data/test/counter/test_client.rb +0 -563
  77. data/test/counter/test_error.rb +0 -44
  78. data/test/counter/test_mutex_hash.rb +0 -179
  79. data/test/counter/test_server.rb +0 -589
  80. data/test/counter/test_store.rb +0 -258
  81. data/test/counter/test_validator.rb +0 -137
  82. data/test/helper.rb +0 -155
  83. data/test/helpers/fuzzy_assert.rb +0 -89
  84. data/test/helpers/process_extenstion.rb +0 -33
  85. data/test/log/test_console_adapter.rb +0 -117
  86. data/test/plugin/data/2010/01/20100102-030405.log +0 -0
  87. data/test/plugin/data/2010/01/20100102-030406.log +0 -0
  88. data/test/plugin/data/2010/01/20100102.log +0 -0
  89. data/test/plugin/data/log/bar +0 -0
  90. data/test/plugin/data/log/foo/bar.log +0 -0
  91. data/test/plugin/data/log/foo/bar2 +0 -0
  92. data/test/plugin/data/log/test.log +0 -0
  93. data/test/plugin/data/log_numeric/01.log +0 -0
  94. data/test/plugin/data/log_numeric/02.log +0 -0
  95. data/test/plugin/data/log_numeric/12.log +0 -0
  96. data/test/plugin/data/log_numeric/14.log +0 -0
  97. data/test/plugin/data/sd_file/config +0 -11
  98. data/test/plugin/data/sd_file/config.json +0 -17
  99. data/test/plugin/data/sd_file/config.yaml +0 -11
  100. data/test/plugin/data/sd_file/config.yml +0 -11
  101. data/test/plugin/data/sd_file/invalid_config.yml +0 -7
  102. data/test/plugin/in_tail/test_fifo.rb +0 -121
  103. data/test/plugin/in_tail/test_io_handler.rb +0 -150
  104. data/test/plugin/in_tail/test_position_file.rb +0 -346
  105. data/test/plugin/out_forward/test_ack_handler.rb +0 -140
  106. data/test/plugin/out_forward/test_connection_manager.rb +0 -145
  107. data/test/plugin/out_forward/test_handshake_protocol.rb +0 -112
  108. data/test/plugin/out_forward/test_load_balancer.rb +0 -106
  109. data/test/plugin/out_forward/test_socket_cache.rb +0 -174
  110. data/test/plugin/test_bare_output.rb +0 -131
  111. data/test/plugin/test_base.rb +0 -247
  112. data/test/plugin/test_buf_file.rb +0 -1314
  113. data/test/plugin/test_buf_file_single.rb +0 -898
  114. data/test/plugin/test_buf_memory.rb +0 -42
  115. data/test/plugin/test_buffer.rb +0 -1493
  116. data/test/plugin/test_buffer_chunk.rb +0 -209
  117. data/test/plugin/test_buffer_file_chunk.rb +0 -871
  118. data/test/plugin/test_buffer_file_single_chunk.rb +0 -611
  119. data/test/plugin/test_buffer_memory_chunk.rb +0 -339
  120. data/test/plugin/test_compressable.rb +0 -87
  121. data/test/plugin/test_file_util.rb +0 -96
  122. data/test/plugin/test_filter.rb +0 -368
  123. data/test/plugin/test_filter_grep.rb +0 -697
  124. data/test/plugin/test_filter_parser.rb +0 -731
  125. data/test/plugin/test_filter_record_transformer.rb +0 -577
  126. data/test/plugin/test_filter_stdout.rb +0 -207
  127. data/test/plugin/test_formatter_csv.rb +0 -136
  128. data/test/plugin/test_formatter_hash.rb +0 -38
  129. data/test/plugin/test_formatter_json.rb +0 -61
  130. data/test/plugin/test_formatter_ltsv.rb +0 -70
  131. data/test/plugin/test_formatter_msgpack.rb +0 -28
  132. data/test/plugin/test_formatter_out_file.rb +0 -116
  133. data/test/plugin/test_formatter_single_value.rb +0 -44
  134. data/test/plugin/test_formatter_tsv.rb +0 -76
  135. data/test/plugin/test_in_debug_agent.rb +0 -49
  136. data/test/plugin/test_in_exec.rb +0 -261
  137. data/test/plugin/test_in_forward.rb +0 -1178
  138. data/test/plugin/test_in_gc_stat.rb +0 -62
  139. data/test/plugin/test_in_http.rb +0 -1124
  140. data/test/plugin/test_in_monitor_agent.rb +0 -922
  141. data/test/plugin/test_in_object_space.rb +0 -66
  142. data/test/plugin/test_in_sample.rb +0 -190
  143. data/test/plugin/test_in_syslog.rb +0 -505
  144. data/test/plugin/test_in_tail.rb +0 -3429
  145. data/test/plugin/test_in_tcp.rb +0 -328
  146. data/test/plugin/test_in_udp.rb +0 -296
  147. data/test/plugin/test_in_unix.rb +0 -181
  148. data/test/plugin/test_input.rb +0 -137
  149. data/test/plugin/test_metadata.rb +0 -89
  150. data/test/plugin/test_metrics.rb +0 -294
  151. data/test/plugin/test_metrics_local.rb +0 -96
  152. data/test/plugin/test_multi_output.rb +0 -204
  153. data/test/plugin/test_out_copy.rb +0 -308
  154. data/test/plugin/test_out_exec.rb +0 -312
  155. data/test/plugin/test_out_exec_filter.rb +0 -606
  156. data/test/plugin/test_out_file.rb +0 -1038
  157. data/test/plugin/test_out_forward.rb +0 -1349
  158. data/test/plugin/test_out_http.rb +0 -557
  159. data/test/plugin/test_out_null.rb +0 -105
  160. data/test/plugin/test_out_relabel.rb +0 -28
  161. data/test/plugin/test_out_roundrobin.rb +0 -146
  162. data/test/plugin/test_out_secondary_file.rb +0 -458
  163. data/test/plugin/test_out_stdout.rb +0 -205
  164. data/test/plugin/test_out_stream.rb +0 -103
  165. data/test/plugin/test_output.rb +0 -1334
  166. data/test/plugin/test_output_as_buffered.rb +0 -2024
  167. data/test/plugin/test_output_as_buffered_backup.rb +0 -363
  168. data/test/plugin/test_output_as_buffered_compress.rb +0 -179
  169. data/test/plugin/test_output_as_buffered_overflow.rb +0 -250
  170. data/test/plugin/test_output_as_buffered_retries.rb +0 -966
  171. data/test/plugin/test_output_as_buffered_secondary.rb +0 -882
  172. data/test/plugin/test_output_as_standard.rb +0 -374
  173. data/test/plugin/test_owned_by.rb +0 -34
  174. data/test/plugin/test_parser.rb +0 -399
  175. data/test/plugin/test_parser_apache.rb +0 -42
  176. data/test/plugin/test_parser_apache2.rb +0 -47
  177. data/test/plugin/test_parser_apache_error.rb +0 -45
  178. data/test/plugin/test_parser_csv.rb +0 -200
  179. data/test/plugin/test_parser_json.rb +0 -244
  180. data/test/plugin/test_parser_labeled_tsv.rb +0 -160
  181. data/test/plugin/test_parser_msgpack.rb +0 -127
  182. data/test/plugin/test_parser_multiline.rb +0 -111
  183. data/test/plugin/test_parser_nginx.rb +0 -88
  184. data/test/plugin/test_parser_none.rb +0 -52
  185. data/test/plugin/test_parser_regexp.rb +0 -284
  186. data/test/plugin/test_parser_syslog.rb +0 -650
  187. data/test/plugin/test_parser_tsv.rb +0 -122
  188. data/test/plugin/test_sd_file.rb +0 -228
  189. data/test/plugin/test_sd_srv.rb +0 -230
  190. data/test/plugin/test_storage.rb +0 -166
  191. data/test/plugin/test_storage_local.rb +0 -335
  192. data/test/plugin/test_string_util.rb +0 -26
  193. data/test/plugin_helper/data/cert/cert-key.pem +0 -27
  194. data/test/plugin_helper/data/cert/cert-with-CRLF.pem +0 -19
  195. data/test/plugin_helper/data/cert/cert-with-no-newline.pem +0 -19
  196. data/test/plugin_helper/data/cert/cert.pem +0 -19
  197. data/test/plugin_helper/data/cert/cert_chains/ca-cert-key.pem +0 -27
  198. data/test/plugin_helper/data/cert/cert_chains/ca-cert.pem +0 -20
  199. data/test/plugin_helper/data/cert/cert_chains/cert-key.pem +0 -27
  200. data/test/plugin_helper/data/cert/cert_chains/cert.pem +0 -40
  201. data/test/plugin_helper/data/cert/empty.pem +0 -0
  202. data/test/plugin_helper/data/cert/generate_cert.rb +0 -125
  203. data/test/plugin_helper/data/cert/with_ca/ca-cert-key-pass.pem +0 -30
  204. data/test/plugin_helper/data/cert/with_ca/ca-cert-key.pem +0 -27
  205. data/test/plugin_helper/data/cert/with_ca/ca-cert-pass.pem +0 -20
  206. data/test/plugin_helper/data/cert/with_ca/ca-cert.pem +0 -20
  207. data/test/plugin_helper/data/cert/with_ca/cert-key-pass.pem +0 -30
  208. data/test/plugin_helper/data/cert/with_ca/cert-key.pem +0 -27
  209. data/test/plugin_helper/data/cert/with_ca/cert-pass.pem +0 -21
  210. data/test/plugin_helper/data/cert/with_ca/cert.pem +0 -21
  211. data/test/plugin_helper/data/cert/without_ca/cert-key-pass.pem +0 -30
  212. data/test/plugin_helper/data/cert/without_ca/cert-key.pem +0 -27
  213. data/test/plugin_helper/data/cert/without_ca/cert-pass.pem +0 -20
  214. data/test/plugin_helper/data/cert/without_ca/cert.pem +0 -20
  215. data/test/plugin_helper/http_server/test_app.rb +0 -65
  216. data/test/plugin_helper/http_server/test_route.rb +0 -32
  217. data/test/plugin_helper/service_discovery/test_manager.rb +0 -93
  218. data/test/plugin_helper/service_discovery/test_round_robin_balancer.rb +0 -21
  219. data/test/plugin_helper/test_cert_option.rb +0 -25
  220. data/test/plugin_helper/test_child_process.rb +0 -862
  221. data/test/plugin_helper/test_compat_parameters.rb +0 -358
  222. data/test/plugin_helper/test_event_emitter.rb +0 -80
  223. data/test/plugin_helper/test_event_loop.rb +0 -52
  224. data/test/plugin_helper/test_extract.rb +0 -194
  225. data/test/plugin_helper/test_formatter.rb +0 -255
  226. data/test/plugin_helper/test_http_server_helper.rb +0 -372
  227. data/test/plugin_helper/test_inject.rb +0 -561
  228. data/test/plugin_helper/test_metrics.rb +0 -137
  229. data/test/plugin_helper/test_parser.rb +0 -264
  230. data/test/plugin_helper/test_record_accessor.rb +0 -238
  231. data/test/plugin_helper/test_retry_state.rb +0 -1006
  232. data/test/plugin_helper/test_server.rb +0 -1895
  233. data/test/plugin_helper/test_service_discovery.rb +0 -165
  234. data/test/plugin_helper/test_socket.rb +0 -146
  235. data/test/plugin_helper/test_storage.rb +0 -542
  236. data/test/plugin_helper/test_thread.rb +0 -164
  237. data/test/plugin_helper/test_timer.rb +0 -130
  238. data/test/scripts/exec_script.rb +0 -32
  239. data/test/scripts/fluent/plugin/formatter1/formatter_test1.rb +0 -7
  240. data/test/scripts/fluent/plugin/formatter2/formatter_test2.rb +0 -7
  241. data/test/scripts/fluent/plugin/formatter_known.rb +0 -8
  242. data/test/scripts/fluent/plugin/out_test.rb +0 -81
  243. data/test/scripts/fluent/plugin/out_test2.rb +0 -80
  244. data/test/scripts/fluent/plugin/parser_known.rb +0 -4
  245. data/test/test_capability.rb +0 -74
  246. data/test/test_clock.rb +0 -164
  247. data/test/test_config.rb +0 -369
  248. data/test/test_configdsl.rb +0 -148
  249. data/test/test_daemonizer.rb +0 -91
  250. data/test/test_engine.rb +0 -203
  251. data/test/test_event.rb +0 -531
  252. data/test/test_event_router.rb +0 -348
  253. data/test/test_event_time.rb +0 -199
  254. data/test/test_file_wrapper.rb +0 -53
  255. data/test/test_filter.rb +0 -121
  256. data/test/test_fluent_log_event_router.rb +0 -99
  257. data/test/test_formatter.rb +0 -369
  258. data/test/test_input.rb +0 -31
  259. data/test/test_log.rb +0 -1076
  260. data/test/test_match.rb +0 -148
  261. data/test/test_mixin.rb +0 -351
  262. data/test/test_msgpack_factory.rb +0 -50
  263. data/test/test_oj_options.rb +0 -55
  264. data/test/test_output.rb +0 -278
  265. data/test/test_plugin.rb +0 -251
  266. data/test/test_plugin_classes.rb +0 -370
  267. data/test/test_plugin_helper.rb +0 -81
  268. data/test/test_plugin_id.rb +0 -119
  269. data/test/test_process.rb +0 -14
  270. data/test/test_root_agent.rb +0 -951
  271. data/test/test_static_config_analysis.rb +0 -177
  272. data/test/test_supervisor.rb +0 -821
  273. data/test/test_test_drivers.rb +0 -136
  274. data/test/test_time_formatter.rb +0 -301
  275. data/test/test_time_parser.rb +0 -362
  276. data/test/test_tls.rb +0 -65
  277. data/test/test_unique_id.rb +0 -47
  278. 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
@@ -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,7 +0,0 @@
1
- module Fluent
2
- Plugin.register_formatter(
3
- 'test1',
4
- Proc.new { |tag, time, record|
5
- "#{tag}:#{time}:#{record.size}"
6
- })
7
- end
@@ -1,7 +0,0 @@
1
- module Fluent
2
- Plugin.register_formatter(
3
- 'test2',
4
- Proc.new { |tag, time, record|
5
- "#{tag}:#{time}:#{record.size}"
6
- })
7
- end
@@ -1,8 +0,0 @@
1
- module Fluent
2
- TextFormatter.register_template('known_old', Proc.new { |tag, time, record|
3
- "#{tag}:#{time}:#{record.size}"
4
- })
5
- Plugin.register_formatter('known', Proc.new { |tag, time, record|
6
- "#{tag}:#{time}:#{record.size}"
7
- })
8
- 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
@@ -1,4 +0,0 @@
1
- module Fluent
2
- TextParser.register_template('known_old', /^(?<message>.*)$/)
3
- Plugin.register_parser('known', /^(?<message>.*)$/)
4
- end
@@ -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