fluentd 0.12.40 → 1.6.2

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

Potentially problematic release.


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

Files changed (428) hide show
  1. checksums.yaml +5 -5
  2. data/.github/ISSUE_TEMPLATE/bug_report.md +39 -0
  3. data/.github/ISSUE_TEMPLATE/feature_request.md +23 -0
  4. data/.github/ISSUE_TEMPLATE.md +17 -0
  5. data/.github/PULL_REQUEST_TEMPLATE.md +13 -0
  6. data/.gitignore +5 -0
  7. data/.gitlab/cicd-template.yaml +10 -0
  8. data/.gitlab-ci.yml +147 -0
  9. data/.travis.yml +56 -20
  10. data/ADOPTERS.md +5 -0
  11. data/CHANGELOG.md +1369 -0
  12. data/CONTRIBUTING.md +16 -5
  13. data/GOVERNANCE.md +55 -0
  14. data/Gemfile +5 -0
  15. data/GithubWorkflow.md +78 -0
  16. data/LICENSE +202 -0
  17. data/MAINTAINERS.md +7 -0
  18. data/README.md +23 -11
  19. data/Rakefile +48 -2
  20. data/Vagrantfile +17 -0
  21. data/appveyor.yml +37 -0
  22. data/bin/fluent-binlog-reader +7 -0
  23. data/bin/fluent-ca-generate +6 -0
  24. data/bin/fluent-plugin-config-format +5 -0
  25. data/bin/fluent-plugin-generate +5 -0
  26. data/bin/fluentd +3 -0
  27. data/code-of-conduct.md +3 -0
  28. data/example/copy_roundrobin.conf +39 -0
  29. data/example/counter.conf +18 -0
  30. data/example/in_dummy_blocks.conf +17 -0
  31. data/example/in_dummy_with_compression.conf +23 -0
  32. data/example/in_forward.conf +7 -0
  33. data/example/in_forward_client.conf +37 -0
  34. data/example/in_forward_shared_key.conf +15 -0
  35. data/example/in_forward_tls.conf +14 -0
  36. data/example/in_forward_users.conf +24 -0
  37. data/example/in_forward_workers.conf +21 -0
  38. data/example/in_http.conf +3 -1
  39. data/example/in_out_forward.conf +17 -0
  40. data/example/logevents.conf +25 -0
  41. data/example/multi_filters.conf +61 -0
  42. data/example/out_exec_filter.conf +42 -0
  43. data/example/out_forward.conf +13 -13
  44. data/example/out_forward_buf_file.conf +23 -0
  45. data/example/out_forward_client.conf +109 -0
  46. data/example/out_forward_heartbeat_none.conf +16 -0
  47. data/example/out_forward_shared_key.conf +36 -0
  48. data/example/out_forward_tls.conf +18 -0
  49. data/example/out_forward_users.conf +65 -0
  50. data/example/out_null.conf +36 -0
  51. data/example/secondary_file.conf +42 -0
  52. data/example/suppress_config_dump.conf +7 -0
  53. data/example/worker_section.conf +36 -0
  54. data/fluent.conf +29 -0
  55. data/fluentd.gemspec +21 -11
  56. data/lib/fluent/agent.rb +67 -90
  57. data/lib/fluent/clock.rb +62 -0
  58. data/lib/fluent/command/binlog_reader.rb +244 -0
  59. data/lib/fluent/command/ca_generate.rb +181 -0
  60. data/lib/fluent/command/cat.rb +42 -18
  61. data/lib/fluent/command/debug.rb +12 -10
  62. data/lib/fluent/command/fluentd.rb +153 -5
  63. data/lib/fluent/command/plugin_config_formatter.rb +292 -0
  64. data/lib/fluent/command/plugin_generator.rb +324 -0
  65. data/lib/fluent/compat/call_super_mixin.rb +67 -0
  66. data/lib/fluent/compat/detach_process_mixin.rb +33 -0
  67. data/lib/fluent/compat/exec_util.rb +129 -0
  68. data/lib/fluent/compat/file_util.rb +54 -0
  69. data/lib/fluent/compat/filter.rb +68 -0
  70. data/lib/fluent/compat/formatter.rb +111 -0
  71. data/lib/fluent/compat/formatter_utils.rb +85 -0
  72. data/lib/fluent/compat/handle_tag_and_time_mixin.rb +62 -0
  73. data/lib/fluent/compat/handle_tag_name_mixin.rb +53 -0
  74. data/lib/fluent/compat/input.rb +49 -0
  75. data/lib/fluent/compat/output.rb +718 -0
  76. data/lib/fluent/compat/output_chain.rb +60 -0
  77. data/lib/fluent/compat/parser.rb +310 -0
  78. data/lib/fluent/compat/parser_utils.rb +40 -0
  79. data/lib/fluent/compat/propagate_default.rb +62 -0
  80. data/lib/fluent/compat/record_filter_mixin.rb +34 -0
  81. data/lib/fluent/compat/set_tag_key_mixin.rb +50 -0
  82. data/lib/fluent/compat/set_time_key_mixin.rb +69 -0
  83. data/lib/fluent/compat/socket_util.rb +165 -0
  84. data/lib/fluent/compat/string_util.rb +34 -0
  85. data/lib/fluent/compat/structured_format_mixin.rb +26 -0
  86. data/lib/fluent/compat/type_converter.rb +90 -0
  87. data/lib/fluent/config/configure_proxy.rb +210 -62
  88. data/lib/fluent/config/dsl.rb +12 -5
  89. data/lib/fluent/config/element.rb +107 -9
  90. data/lib/fluent/config/literal_parser.rb +9 -3
  91. data/lib/fluent/config/parser.rb +4 -4
  92. data/lib/fluent/config/section.rb +51 -14
  93. data/lib/fluent/config/types.rb +28 -13
  94. data/lib/fluent/config/v1_parser.rb +3 -5
  95. data/lib/fluent/config.rb +23 -20
  96. data/lib/fluent/configurable.rb +79 -21
  97. data/lib/fluent/counter/base_socket.rb +46 -0
  98. data/lib/fluent/counter/client.rb +297 -0
  99. data/lib/fluent/counter/error.rb +86 -0
  100. data/lib/fluent/counter/mutex_hash.rb +163 -0
  101. data/lib/fluent/counter/server.rb +273 -0
  102. data/lib/fluent/counter/store.rb +205 -0
  103. data/lib/fluent/counter/validator.rb +145 -0
  104. data/lib/fluent/counter.rb +23 -0
  105. data/lib/fluent/daemon.rb +15 -0
  106. data/lib/fluent/engine.rb +102 -65
  107. data/lib/fluent/env.rb +7 -3
  108. data/lib/fluent/error.rb +30 -0
  109. data/lib/fluent/event.rb +197 -21
  110. data/lib/fluent/event_router.rb +93 -10
  111. data/lib/fluent/filter.rb +2 -50
  112. data/lib/fluent/formatter.rb +4 -293
  113. data/lib/fluent/input.rb +2 -32
  114. data/lib/fluent/label.rb +10 -2
  115. data/lib/fluent/load.rb +3 -3
  116. data/lib/fluent/log.rb +348 -81
  117. data/lib/fluent/match.rb +37 -36
  118. data/lib/fluent/mixin.rb +12 -176
  119. data/lib/fluent/msgpack_factory.rb +62 -0
  120. data/lib/fluent/output.rb +10 -612
  121. data/lib/fluent/output_chain.rb +23 -0
  122. data/lib/fluent/parser.rb +4 -800
  123. data/lib/fluent/plugin/bare_output.rb +63 -0
  124. data/lib/fluent/plugin/base.rb +192 -0
  125. data/lib/fluent/plugin/buf_file.rb +128 -174
  126. data/lib/fluent/plugin/buf_memory.rb +9 -92
  127. data/lib/fluent/plugin/buffer/chunk.rb +221 -0
  128. data/lib/fluent/plugin/buffer/file_chunk.rb +383 -0
  129. data/lib/fluent/plugin/buffer/memory_chunk.rb +90 -0
  130. data/lib/fluent/plugin/buffer.rb +779 -0
  131. data/lib/fluent/plugin/compressable.rb +92 -0
  132. data/lib/fluent/plugin/exec_util.rb +3 -108
  133. data/lib/fluent/plugin/file_util.rb +4 -34
  134. data/lib/fluent/plugin/file_wrapper.rb +120 -0
  135. data/lib/fluent/plugin/filter.rb +93 -0
  136. data/lib/fluent/plugin/filter_grep.rb +117 -34
  137. data/lib/fluent/plugin/filter_parser.rb +85 -62
  138. data/lib/fluent/plugin/filter_record_transformer.rb +27 -39
  139. data/lib/fluent/plugin/filter_stdout.rb +15 -12
  140. data/lib/fluent/plugin/formatter.rb +50 -0
  141. data/lib/fluent/plugin/formatter_csv.rb +52 -0
  142. data/lib/fluent/plugin/formatter_hash.rb +33 -0
  143. data/lib/fluent/plugin/formatter_json.rb +55 -0
  144. data/lib/fluent/plugin/formatter_ltsv.rb +42 -0
  145. data/lib/fluent/plugin/formatter_msgpack.rb +33 -0
  146. data/lib/fluent/plugin/formatter_out_file.rb +51 -0
  147. data/lib/fluent/plugin/formatter_single_value.rb +34 -0
  148. data/lib/fluent/plugin/formatter_stdout.rb +76 -0
  149. data/lib/fluent/plugin/formatter_tsv.rb +38 -0
  150. data/lib/fluent/plugin/in_debug_agent.rb +17 -6
  151. data/lib/fluent/plugin/in_dummy.rb +47 -20
  152. data/lib/fluent/plugin/in_exec.rb +55 -123
  153. data/lib/fluent/plugin/in_forward.rb +299 -216
  154. data/lib/fluent/plugin/in_gc_stat.rb +14 -36
  155. data/lib/fluent/plugin/in_http.rb +204 -91
  156. data/lib/fluent/plugin/in_monitor_agent.rb +186 -258
  157. data/lib/fluent/plugin/in_object_space.rb +13 -41
  158. data/lib/fluent/plugin/in_syslog.rb +112 -134
  159. data/lib/fluent/plugin/in_tail.rb +408 -745
  160. data/lib/fluent/plugin/in_tcp.rb +66 -9
  161. data/lib/fluent/plugin/in_udp.rb +60 -11
  162. data/lib/fluent/plugin/{in_stream.rb → in_unix.rb} +8 -4
  163. data/lib/fluent/plugin/input.rb +37 -0
  164. data/lib/fluent/plugin/multi_output.rb +158 -0
  165. data/lib/fluent/plugin/out_copy.rb +23 -35
  166. data/lib/fluent/plugin/out_exec.rb +67 -70
  167. data/lib/fluent/plugin/out_exec_filter.rb +204 -271
  168. data/lib/fluent/plugin/out_file.rb +267 -73
  169. data/lib/fluent/plugin/out_forward.rb +854 -325
  170. data/lib/fluent/plugin/out_null.rb +42 -9
  171. data/lib/fluent/plugin/out_relabel.rb +9 -5
  172. data/lib/fluent/plugin/out_roundrobin.rb +18 -37
  173. data/lib/fluent/plugin/out_secondary_file.rb +133 -0
  174. data/lib/fluent/plugin/out_stdout.rb +43 -10
  175. data/lib/fluent/plugin/out_stream.rb +7 -2
  176. data/lib/fluent/plugin/output.rb +1498 -0
  177. data/lib/fluent/plugin/owned_by_mixin.rb +42 -0
  178. data/lib/fluent/plugin/parser.rb +191 -0
  179. data/lib/fluent/plugin/parser_apache.rb +28 -0
  180. data/lib/fluent/plugin/parser_apache2.rb +88 -0
  181. data/lib/fluent/plugin/parser_apache_error.rb +26 -0
  182. data/lib/fluent/plugin/parser_csv.rb +39 -0
  183. data/lib/fluent/plugin/parser_json.rb +94 -0
  184. data/lib/fluent/plugin/parser_ltsv.rb +49 -0
  185. data/lib/fluent/plugin/parser_msgpack.rb +50 -0
  186. data/lib/fluent/plugin/parser_multiline.rb +106 -0
  187. data/lib/fluent/plugin/parser_nginx.rb +28 -0
  188. data/lib/fluent/plugin/parser_none.rb +36 -0
  189. data/lib/fluent/plugin/parser_regexp.rb +68 -0
  190. data/lib/fluent/plugin/parser_syslog.rb +142 -0
  191. data/lib/fluent/plugin/parser_tsv.rb +42 -0
  192. data/lib/fluent/plugin/socket_util.rb +3 -143
  193. data/lib/fluent/plugin/storage.rb +84 -0
  194. data/lib/fluent/plugin/storage_local.rb +164 -0
  195. data/lib/fluent/plugin/string_util.rb +3 -15
  196. data/lib/fluent/plugin.rb +122 -121
  197. data/lib/fluent/plugin_helper/cert_option.rb +178 -0
  198. data/lib/fluent/plugin_helper/child_process.rb +364 -0
  199. data/lib/fluent/plugin_helper/compat_parameters.rb +333 -0
  200. data/lib/fluent/plugin_helper/counter.rb +51 -0
  201. data/lib/fluent/plugin_helper/event_emitter.rb +93 -0
  202. data/lib/fluent/plugin_helper/event_loop.rb +170 -0
  203. data/lib/fluent/plugin_helper/extract.rb +104 -0
  204. data/lib/fluent/plugin_helper/formatter.rb +147 -0
  205. data/lib/fluent/plugin_helper/http_server/app.rb +79 -0
  206. data/lib/fluent/plugin_helper/http_server/compat/server.rb +81 -0
  207. data/lib/fluent/plugin_helper/http_server/compat/webrick_handler.rb +58 -0
  208. data/lib/fluent/plugin_helper/http_server/methods.rb +35 -0
  209. data/lib/fluent/plugin_helper/http_server/request.rb +42 -0
  210. data/lib/fluent/plugin_helper/http_server/router.rb +54 -0
  211. data/lib/fluent/plugin_helper/http_server/server.rb +87 -0
  212. data/lib/fluent/plugin_helper/http_server.rb +76 -0
  213. data/lib/fluent/plugin_helper/inject.rb +151 -0
  214. data/lib/fluent/plugin_helper/parser.rb +147 -0
  215. data/lib/fluent/plugin_helper/record_accessor.rb +210 -0
  216. data/lib/fluent/plugin_helper/retry_state.rb +205 -0
  217. data/lib/fluent/plugin_helper/server.rb +807 -0
  218. data/lib/fluent/plugin_helper/socket.rb +250 -0
  219. data/lib/fluent/plugin_helper/socket_option.rb +80 -0
  220. data/lib/fluent/plugin_helper/storage.rb +349 -0
  221. data/lib/fluent/plugin_helper/thread.rb +179 -0
  222. data/lib/fluent/plugin_helper/timer.rb +92 -0
  223. data/lib/fluent/plugin_helper.rb +73 -0
  224. data/lib/fluent/plugin_id.rb +80 -0
  225. data/lib/fluent/process.rb +3 -489
  226. data/lib/fluent/registry.rb +52 -10
  227. data/lib/fluent/root_agent.rb +204 -42
  228. data/lib/fluent/supervisor.rb +597 -359
  229. data/lib/fluent/system_config.rb +131 -42
  230. data/lib/fluent/test/base.rb +6 -54
  231. data/lib/fluent/test/driver/base.rb +224 -0
  232. data/lib/fluent/test/driver/base_owned.rb +70 -0
  233. data/lib/fluent/test/driver/base_owner.rb +135 -0
  234. data/lib/fluent/test/driver/event_feeder.rb +98 -0
  235. data/lib/fluent/test/driver/filter.rb +57 -0
  236. data/lib/fluent/test/driver/formatter.rb +30 -0
  237. data/lib/fluent/test/driver/input.rb +31 -0
  238. data/lib/fluent/test/driver/multi_output.rb +53 -0
  239. data/lib/fluent/test/driver/output.rb +102 -0
  240. data/lib/fluent/test/driver/parser.rb +30 -0
  241. data/lib/fluent/test/driver/test_event_router.rb +45 -0
  242. data/lib/fluent/test/filter_test.rb +0 -1
  243. data/lib/fluent/test/formatter_test.rb +4 -1
  244. data/lib/fluent/test/helpers.rb +58 -10
  245. data/lib/fluent/test/input_test.rb +27 -19
  246. data/lib/fluent/test/log.rb +79 -0
  247. data/lib/fluent/test/output_test.rb +28 -39
  248. data/lib/fluent/test/parser_test.rb +3 -1
  249. data/lib/fluent/test/startup_shutdown.rb +46 -0
  250. data/lib/fluent/test.rb +33 -1
  251. data/lib/fluent/time.rb +450 -1
  252. data/lib/fluent/timezone.rb +27 -3
  253. data/lib/fluent/{status.rb → unique_id.rb} +15 -24
  254. data/lib/fluent/version.rb +1 -1
  255. data/lib/fluent/winsvc.rb +85 -0
  256. data/templates/new_gem/Gemfile +3 -0
  257. data/templates/new_gem/README.md.erb +43 -0
  258. data/templates/new_gem/Rakefile +13 -0
  259. data/templates/new_gem/fluent-plugin.gemspec.erb +27 -0
  260. data/templates/new_gem/lib/fluent/plugin/filter.rb.erb +14 -0
  261. data/templates/new_gem/lib/fluent/plugin/formatter.rb.erb +14 -0
  262. data/templates/new_gem/lib/fluent/plugin/input.rb.erb +11 -0
  263. data/templates/new_gem/lib/fluent/plugin/output.rb.erb +11 -0
  264. data/templates/new_gem/lib/fluent/plugin/parser.rb.erb +15 -0
  265. data/templates/new_gem/test/helper.rb.erb +8 -0
  266. data/templates/new_gem/test/plugin/test_filter.rb.erb +18 -0
  267. data/templates/new_gem/test/plugin/test_formatter.rb.erb +18 -0
  268. data/templates/new_gem/test/plugin/test_input.rb.erb +18 -0
  269. data/templates/new_gem/test/plugin/test_output.rb.erb +18 -0
  270. data/templates/new_gem/test/plugin/test_parser.rb.erb +18 -0
  271. data/templates/plugin_config_formatter/param.md-compact.erb +25 -0
  272. data/templates/plugin_config_formatter/param.md.erb +34 -0
  273. data/templates/plugin_config_formatter/section.md.erb +12 -0
  274. data/test/command/test_binlog_reader.rb +346 -0
  275. data/test/command/test_ca_generate.rb +70 -0
  276. data/test/command/test_fluentd.rb +901 -0
  277. data/test/command/test_plugin_config_formatter.rb +276 -0
  278. data/test/command/test_plugin_generator.rb +92 -0
  279. data/test/compat/test_calls_super.rb +166 -0
  280. data/test/compat/test_parser.rb +92 -0
  281. data/test/config/test_config_parser.rb +126 -2
  282. data/test/config/test_configurable.rb +946 -187
  283. data/test/config/test_configure_proxy.rb +424 -74
  284. data/test/config/test_dsl.rb +11 -11
  285. data/test/config/test_element.rb +500 -0
  286. data/test/config/test_literal_parser.rb +8 -0
  287. data/test/config/test_plugin_configuration.rb +56 -0
  288. data/test/config/test_section.rb +79 -7
  289. data/test/config/test_system_config.rb +122 -35
  290. data/test/config/test_types.rb +38 -0
  291. data/test/counter/test_client.rb +559 -0
  292. data/test/counter/test_error.rb +44 -0
  293. data/test/counter/test_mutex_hash.rb +179 -0
  294. data/test/counter/test_server.rb +589 -0
  295. data/test/counter/test_store.rb +258 -0
  296. data/test/counter/test_validator.rb +137 -0
  297. data/test/helper.rb +89 -6
  298. data/test/helpers/fuzzy_assert.rb +89 -0
  299. data/test/plugin/test_bare_output.rb +118 -0
  300. data/test/plugin/test_base.rb +115 -0
  301. data/test/plugin/test_buf_file.rb +823 -460
  302. data/test/plugin/test_buf_memory.rb +32 -194
  303. data/test/plugin/test_buffer.rb +1233 -0
  304. data/test/plugin/test_buffer_chunk.rb +198 -0
  305. data/test/plugin/test_buffer_file_chunk.rb +844 -0
  306. data/test/plugin/test_buffer_memory_chunk.rb +338 -0
  307. data/test/plugin/test_compressable.rb +84 -0
  308. data/test/plugin/test_filter.rb +357 -0
  309. data/test/plugin/test_filter_grep.rb +540 -29
  310. data/test/plugin/test_filter_parser.rb +439 -452
  311. data/test/plugin/test_filter_record_transformer.rb +123 -166
  312. data/test/plugin/test_filter_stdout.rb +160 -72
  313. data/test/plugin/test_formatter_csv.rb +111 -0
  314. data/test/plugin/test_formatter_hash.rb +35 -0
  315. data/test/plugin/test_formatter_json.rb +51 -0
  316. data/test/plugin/test_formatter_ltsv.rb +62 -0
  317. data/test/plugin/test_formatter_msgpack.rb +28 -0
  318. data/test/plugin/test_formatter_out_file.rb +95 -0
  319. data/test/plugin/test_formatter_single_value.rb +38 -0
  320. data/test/plugin/test_formatter_tsv.rb +68 -0
  321. data/test/plugin/test_in_debug_agent.rb +24 -1
  322. data/test/plugin/test_in_dummy.rb +111 -18
  323. data/test/plugin/test_in_exec.rb +200 -113
  324. data/test/plugin/test_in_forward.rb +990 -387
  325. data/test/plugin/test_in_gc_stat.rb +10 -8
  326. data/test/plugin/test_in_http.rb +600 -224
  327. data/test/plugin/test_in_monitor_agent.rb +690 -0
  328. data/test/plugin/test_in_object_space.rb +24 -8
  329. data/test/plugin/test_in_syslog.rb +154 -215
  330. data/test/plugin/test_in_tail.rb +1006 -707
  331. data/test/plugin/test_in_tcp.rb +125 -48
  332. data/test/plugin/test_in_udp.rb +204 -63
  333. data/test/plugin/{test_in_stream.rb → test_in_unix.rb} +14 -13
  334. data/test/plugin/test_input.rb +126 -0
  335. data/test/plugin/test_metadata.rb +89 -0
  336. data/test/plugin/test_multi_output.rb +180 -0
  337. data/test/plugin/test_out_copy.rb +117 -112
  338. data/test/plugin/test_out_exec.rb +258 -53
  339. data/test/plugin/test_out_exec_filter.rb +538 -115
  340. data/test/plugin/test_out_file.rb +865 -178
  341. data/test/plugin/test_out_forward.rb +998 -210
  342. data/test/plugin/test_out_null.rb +105 -0
  343. data/test/plugin/test_out_relabel.rb +28 -0
  344. data/test/plugin/test_out_roundrobin.rb +36 -29
  345. data/test/plugin/test_out_secondary_file.rb +458 -0
  346. data/test/plugin/test_out_stdout.rb +135 -37
  347. data/test/plugin/test_out_stream.rb +18 -0
  348. data/test/plugin/test_output.rb +984 -0
  349. data/test/plugin/test_output_as_buffered.rb +2021 -0
  350. data/test/plugin/test_output_as_buffered_backup.rb +312 -0
  351. data/test/plugin/test_output_as_buffered_compress.rb +165 -0
  352. data/test/plugin/test_output_as_buffered_overflow.rb +250 -0
  353. data/test/plugin/test_output_as_buffered_retries.rb +911 -0
  354. data/test/plugin/test_output_as_buffered_secondary.rb +874 -0
  355. data/test/plugin/test_output_as_standard.rb +374 -0
  356. data/test/plugin/test_owned_by.rb +35 -0
  357. data/test/plugin/test_parser.rb +359 -0
  358. data/test/plugin/test_parser_apache.rb +42 -0
  359. data/test/plugin/test_parser_apache2.rb +47 -0
  360. data/test/plugin/test_parser_apache_error.rb +45 -0
  361. data/test/plugin/test_parser_csv.rb +103 -0
  362. data/test/plugin/test_parser_json.rb +138 -0
  363. data/test/plugin/test_parser_labeled_tsv.rb +145 -0
  364. data/test/plugin/test_parser_multiline.rb +100 -0
  365. data/test/plugin/test_parser_nginx.rb +88 -0
  366. data/test/plugin/test_parser_none.rb +52 -0
  367. data/test/plugin/test_parser_regexp.rb +289 -0
  368. data/test/plugin/test_parser_syslog.rb +441 -0
  369. data/test/plugin/test_parser_tsv.rb +122 -0
  370. data/test/plugin/test_storage.rb +167 -0
  371. data/test/plugin/test_storage_local.rb +335 -0
  372. data/test/plugin_helper/data/cert/cert-key.pem +27 -0
  373. data/test/plugin_helper/data/cert/cert-with-no-newline.pem +19 -0
  374. data/test/plugin_helper/data/cert/cert.pem +19 -0
  375. data/test/plugin_helper/http_server/test_app.rb +65 -0
  376. data/test/plugin_helper/http_server/test_route.rb +32 -0
  377. data/test/plugin_helper/test_cert_option.rb +16 -0
  378. data/test/plugin_helper/test_child_process.rb +794 -0
  379. data/test/plugin_helper/test_compat_parameters.rb +353 -0
  380. data/test/plugin_helper/test_event_emitter.rb +51 -0
  381. data/test/plugin_helper/test_event_loop.rb +52 -0
  382. data/test/plugin_helper/test_extract.rb +194 -0
  383. data/test/plugin_helper/test_formatter.rb +255 -0
  384. data/test/plugin_helper/test_http_server_helper.rb +205 -0
  385. data/test/plugin_helper/test_inject.rb +519 -0
  386. data/test/plugin_helper/test_parser.rb +264 -0
  387. data/test/plugin_helper/test_record_accessor.rb +197 -0
  388. data/test/plugin_helper/test_retry_state.rb +442 -0
  389. data/test/plugin_helper/test_server.rb +1714 -0
  390. data/test/plugin_helper/test_storage.rb +542 -0
  391. data/test/plugin_helper/test_thread.rb +164 -0
  392. data/test/plugin_helper/test_timer.rb +132 -0
  393. data/test/scripts/exec_script.rb +0 -6
  394. data/test/scripts/fluent/plugin/formatter1/formatter_test1.rb +7 -0
  395. data/test/scripts/fluent/plugin/formatter2/formatter_test2.rb +7 -0
  396. data/test/scripts/fluent/plugin/out_test.rb +23 -15
  397. data/test/scripts/fluent/plugin/out_test2.rb +80 -0
  398. data/test/test_clock.rb +164 -0
  399. data/test/test_config.rb +16 -7
  400. data/test/test_configdsl.rb +2 -2
  401. data/test/test_event.rb +360 -13
  402. data/test/test_event_router.rb +108 -11
  403. data/test/test_event_time.rb +199 -0
  404. data/test/test_filter.rb +48 -6
  405. data/test/test_formatter.rb +11 -391
  406. data/test/test_input.rb +1 -1
  407. data/test/test_log.rb +591 -31
  408. data/test/test_mixin.rb +1 -1
  409. data/test/test_output.rb +121 -185
  410. data/test/test_plugin.rb +251 -0
  411. data/test/test_plugin_classes.rb +177 -10
  412. data/test/test_plugin_helper.rb +81 -0
  413. data/test/test_plugin_id.rb +101 -0
  414. data/test/test_process.rb +8 -42
  415. data/test/test_root_agent.rb +766 -21
  416. data/test/test_supervisor.rb +481 -0
  417. data/test/test_test_drivers.rb +135 -0
  418. data/test/test_time_formatter.rb +282 -0
  419. data/test/test_time_parser.rb +231 -0
  420. data/test/test_unique_id.rb +47 -0
  421. metadata +454 -60
  422. data/COPYING +0 -14
  423. data/ChangeLog +0 -666
  424. data/lib/fluent/buffer.rb +0 -365
  425. data/lib/fluent/plugin/in_status.rb +0 -76
  426. data/test/plugin/test_in_status.rb +0 -38
  427. data/test/test_buffer.rb +0 -624
  428. data/test/test_parser.rb +0 -1305
@@ -1,5 +1,6 @@
1
1
  require_relative '../helper'
2
- require 'fluent/test'
2
+ require 'fluent/test/driver/input'
3
+ require 'fluent/plugin/in_tcp'
3
4
 
4
5
  class TcpInputTest < Test::Unit::TestCase
5
6
  def setup
@@ -21,68 +22,144 @@ class TcpInputTest < Test::Unit::TestCase
21
22
  ]
22
23
 
23
24
  def create_driver(conf)
24
- Fluent::Test::InputTestDriver.new(Fluent::TcpInput).configure(conf)
25
+ Fluent::Test::Driver::Input.new(Fluent::Plugin::TcpInput).configure(conf)
25
26
  end
26
27
 
27
- def test_configure
28
- configs = {'127.0.0.1' => CONFIG}
29
- configs.merge!('::1' => IPv6_CONFIG) if ipv6_enabled?
28
+ def create_tcp_socket(host, port, &block)
29
+ if block_given?
30
+ TCPSocket.open(host, port, &block)
31
+ else
32
+ TCPSocket.open(host, port)
33
+ end
34
+ end
35
+
36
+
37
+ data(
38
+ 'ipv4' => [CONFIG, '127.0.0.1', :ipv4],
39
+ 'ipv6' => [IPv6_CONFIG, '::1', :ipv6],
40
+ )
41
+ test 'configure' do |data|
42
+ conf, bind, protocol = data
43
+ omit "IPv6 is not supported on this environment" if protocol == :ipv6 && !ipv6_enabled?
44
+
45
+ d = create_driver(conf)
46
+ assert_equal PORT, d.instance.port
47
+ assert_equal bind, d.instance.bind
48
+ assert_equal "\n", d.instance.delimiter
49
+ end
30
50
 
31
- configs.each_pair { |k, v|
32
- d = create_driver(v)
33
- assert_equal PORT, d.instance.port
34
- assert_equal k, d.instance.bind
35
- assert_equal "\n", d.instance.delimiter
51
+ test ' configure w/o parse section' do
52
+ assert_raise(Fluent::ConfigError.new("<parse> section is required.")) {
53
+ create_driver(BASE_CONFIG)
36
54
  }
37
55
  end
38
56
 
39
- {
40
- 'none' => [
41
- {'msg' => "tcptest1\n", 'expected' => 'tcptest1'},
42
- {'msg' => "tcptest2\n", 'expected' => 'tcptest2'},
43
- ],
44
- 'json' => [
45
- {'msg' => {'k' => 123, 'message' => 'tcptest1'}.to_json + "\n", 'expected' => 'tcptest1'},
46
- {'msg' => {'k' => 'tcptest2', 'message' => 456}.to_json + "\n", 'expected' => 456},
47
- ]
48
- }.each { |format, test_cases|
49
- define_method("test_msg_size_#{format}") do
50
- d = create_driver(BASE_CONFIG + "format #{format}")
51
- tests = test_cases
52
-
53
- d.run do
54
- tests.each {|test|
55
- TCPSocket.open('127.0.0.1', PORT) do |s|
56
- s.send(test['msg'], 0)
57
- end
58
- }
59
- sleep 1
57
+ test_case_data = {
58
+ 'none' => {
59
+ 'format' => 'none',
60
+ 'payloads' => [ "tcptest1\n", "tcptest2\n" ],
61
+ 'expecteds' => [
62
+ {'message' => 'tcptest1'},
63
+ {'message' => 'tcptest2'},
64
+ ],
65
+ },
66
+ 'json' => {
67
+ 'format' => 'json',
68
+ 'payloads' => [
69
+ {'k' => 123, 'message' => 'tcptest1'}.to_json + "\n",
70
+ {'k' => 'tcptest2', 'message' => 456}.to_json + "\n",
71
+ ],
72
+ 'expecteds' => [
73
+ {'k' => 123, 'message' => 'tcptest1'},
74
+ {'k' => 'tcptest2', 'message' => 456}
75
+ ],
76
+ },
77
+ }
78
+
79
+ data(test_case_data)
80
+ test 'test_msg_size' do |data|
81
+ format = data['format']
82
+ payloads = data['payloads']
83
+ expecteds = data['expecteds']
84
+
85
+ d = create_driver(BASE_CONFIG + "format #{format}")
86
+ d.run(expect_records: 2) do
87
+ payloads.each do |payload|
88
+ create_tcp_socket('127.0.0.1', PORT) do |sock|
89
+ sock.send(payload, 0)
90
+ end
60
91
  end
92
+ end
61
93
 
62
- compare_test_result(d.emits, tests)
94
+ assert_equal 2, d.events.size
95
+ expecteds.each_with_index do |expected_record, i|
96
+ assert_equal "tcp", d.events[i][0]
97
+ assert d.events[i][1].is_a?(Fluent::EventTime)
98
+ assert_equal expected_record, d.events[i][2]
63
99
  end
100
+ end
64
101
 
65
- define_method("test_msg_size_with_same_connection_#{format}") do
66
- d = create_driver(BASE_CONFIG + "format #{format}")
67
- tests = test_cases
102
+ data(test_case_data)
103
+ test 'test data in a connection' do |data|
104
+ format = data['format']
105
+ payloads = data['payloads']
106
+ expecteds = data['expecteds']
68
107
 
69
- d.run do
70
- TCPSocket.open('127.0.0.1', PORT) do |s|
71
- tests.each {|test|
72
- s.send(test['msg'], 0)
73
- }
108
+ d = create_driver(BASE_CONFIG + "format #{format}")
109
+ d.run(expect_records: 2) do
110
+ create_tcp_socket('127.0.0.1', PORT) do |sock|
111
+ payloads.each do |payload|
112
+ sock.send(payload, 0)
74
113
  end
75
- sleep 1
76
114
  end
115
+ end
77
116
 
78
- compare_test_result(d.emits, tests)
117
+ assert_equal 2, d.events.size
118
+ expecteds.each_with_index do |expected_record, i|
119
+ assert_equal "tcp", d.events[i][0]
120
+ assert d.events[i][1].is_a?(Fluent::EventTime)
121
+ assert_equal expected_record, d.events[i][2]
79
122
  end
80
- }
123
+ end
81
124
 
82
- def compare_test_result(emits, tests)
83
- assert_equal(2, emits.size)
84
- emits.each_index {|i|
85
- assert_equal(tests[i]['expected'], emits[i][2]['message'])
86
- }
125
+ test 'source_hostname_key' do
126
+ d = create_driver(BASE_CONFIG + %!
127
+ format none
128
+ source_hostname_key host
129
+ !)
130
+ hostname = nil
131
+ d.run(expect_records: 1) do
132
+ create_tcp_socket('127.0.0.1', PORT) do |sock|
133
+ sock.do_not_reverse_lookup = false
134
+ hostname = sock.peeraddr[2]
135
+ sock.send("test\n", 0)
136
+ end
137
+ end
138
+
139
+ assert_equal 1, d.events.size
140
+ event = d.events[0]
141
+ assert_equal "tcp", event[0]
142
+ assert event[1].is_a?(Fluent::EventTime)
143
+ assert_equal hostname, event[2]['host']
144
+ end
145
+
146
+ test 'source_address_key' do
147
+ d = create_driver(BASE_CONFIG + %!
148
+ format none
149
+ source_address_key addr
150
+ !)
151
+ address = nil
152
+ d.run(expect_records: 1) do
153
+ create_tcp_socket('127.0.0.1', PORT) do |sock|
154
+ address = sock.peeraddr[3]
155
+ sock.send("test\n", 0)
156
+ end
157
+ end
158
+
159
+ assert_equal 1, d.events.size
160
+ event = d.events[0]
161
+ assert_equal "tcp", event[0]
162
+ assert event[1].is_a?(Fluent::EventTime)
163
+ assert_equal address, event[2]['addr']
87
164
  end
88
165
  end
@@ -1,5 +1,6 @@
1
1
  require_relative '../helper'
2
- require 'fluent/test'
2
+ require 'fluent/test/driver/input'
3
+ require 'fluent/plugin/in_udp'
3
4
 
4
5
  class UdpInputTest < Test::Unit::TestCase
5
6
  def setup
@@ -21,93 +22,233 @@ class UdpInputTest < Test::Unit::TestCase
21
22
  !
22
23
 
23
24
  def create_driver(conf)
24
- Fluent::Test::InputTestDriver.new(Fluent::UdpInput).configure(conf)
25
+ Fluent::Test::Driver::Input.new(Fluent::Plugin::UdpInput).configure(conf)
25
26
  end
26
27
 
27
- def test_configure
28
- configs = {'127.0.0.1' => CONFIG}
29
- configs.merge!('::1' => IPv6_CONFIG) if ipv6_enabled?
28
+ def create_udp_socket(host, port)
29
+ u = if IPAddr.new(IPSocket.getaddress(host)).ipv4?
30
+ UDPSocket.new(Socket::AF_INET)
31
+ else
32
+ UDPSocket.new(Socket::AF_INET6)
33
+ end
34
+ u.do_not_reverse_lookup = false
35
+ u.connect(host, port)
36
+ if block_given?
37
+ begin
38
+ yield u
39
+ ensure
40
+ u.close rescue nil
41
+ end
42
+ else
43
+ u
44
+ end
45
+ end
46
+
47
+ data(
48
+ 'ipv4' => [CONFIG, '127.0.0.1', :ipv4],
49
+ 'ipv6' => [IPv6_CONFIG, '::1', :ipv6],
50
+ )
51
+ test 'configure' do |data|
52
+ conf, bind, protocol = data
53
+ omit "IPv6 is not supported on this environment" if protocol == :ipv6 && !ipv6_enabled?
30
54
 
31
- configs.each_pair { |k, v|
32
- d = create_driver(v)
33
- assert_equal PORT, d.instance.port
34
- assert_equal k, d.instance.bind
35
- assert_equal 4096, d.instance.message_length_limit
55
+ d = create_driver(conf)
56
+ assert_equal PORT, d.instance.port
57
+ assert_equal bind, d.instance.bind
58
+ assert_equal 4096, d.instance.message_length_limit
59
+ assert_equal nil, d.instance.receive_buffer_size
60
+ end
61
+
62
+ test ' configure w/o parse section' do
63
+ assert_raise(Fluent::ConfigError.new("<parse> section is required.")) {
64
+ create_driver(BASE_CONFIG)
36
65
  }
37
66
  end
38
67
 
68
+ data(
69
+ 'ipv4' => [CONFIG, '127.0.0.1', :ipv4],
70
+ 'ipv6' => [IPv6_CONFIG, '::1', :ipv6],
71
+ )
72
+ test 'time_format' do |data|
73
+ conf, bind, protocol = data
74
+ omit "IPv6 is not supported on this environment" if protocol == :ipv6 && !ipv6_enabled?
75
+
76
+ d = create_driver(conf)
77
+
78
+ tests = [
79
+ {'msg' => '[Sep 11 00:00:00] localhost logger: foo', 'expected' => event_time('Sep 11 00:00:00', format: '%b %d %H:%M:%S')},
80
+ {'msg' => '[Sep 1 00:00:00] localhost logger: foo', 'expected' => event_time('Sep 1 00:00:00', format: '%b %d %H:%M:%S')},
81
+ ]
82
+
83
+ d.run(expect_records: 2) do
84
+ create_udp_socket(bind, PORT) do |u|
85
+ tests.each do |test|
86
+ u.send(test['msg'], 0)
87
+ end
88
+ end
89
+ end
90
+
91
+ events = d.events
92
+ tests.each_with_index do |t, i|
93
+ assert_equal_event_time(t['expected'], events[i][1])
94
+ end
95
+ end
96
+
39
97
  data(
40
98
  'message_length_limit' => 'message_length_limit 2048',
41
99
  'body_size_limit' => 'body_size_limit 2048'
42
100
  )
43
101
  test 'message_length_limit/body_size_limit compatibility' do |param|
102
+
44
103
  d = create_driver(CONFIG + param)
45
104
  assert_equal 2048, d.instance.message_length_limit
46
105
  end
47
106
 
48
- def test_time_format
49
- configs = {'127.0.0.1' => CONFIG}
50
- configs.merge!('::1' => IPv6_CONFIG) if ipv6_enabled?
107
+ data(
108
+ 'none' => {
109
+ 'format' => 'none',
110
+ 'payloads' => ["tcptest1\n", "tcptest2\n"],
111
+ 'expecteds' => [
112
+ {"message" => "tcptest1"},
113
+ {"message" => "tcptest2"},
114
+ ],
115
+ },
116
+ 'json' => {
117
+ 'format' => 'json',
118
+ 'payloads' => [
119
+ {'k' => 123, 'message' => 'tcptest1'}.to_json + "\n",
120
+ {'k' => 'tcptest2', 'message' => 456}.to_json + "\n",
121
+ ],
122
+ 'expecteds' => [
123
+ {'k' => 123, 'message' => 'tcptest1'},
124
+ {'k' => 'tcptest2', 'message' => 456},
125
+ ],
126
+ },
127
+ 'regexp' => {
128
+ 'format' => '/^\\[(?<time>[^\\]]*)\\] (?<message>.*)/',
129
+ 'payloads' => [
130
+ '[Sep 10 00:00:00] localhost: ' + 'x' * 100 + "\n",
131
+ '[Sep 10 00:00:00] localhost: ' + 'x' * 1024 + "\n"
132
+ ],
133
+ 'expecteds' => [
134
+ {"message" => 'localhost: ' + 'x' * 100},
135
+ {"message" => 'localhost: ' + 'x' * 1024},
136
+ ],
137
+ },
138
+ )
139
+ test 'message size with format' do |data|
140
+ format = data['format']
141
+ payloads = data['payloads']
142
+ expecteds = data['expecteds']
51
143
 
52
- configs.each_pair { |k, v|
53
- d = create_driver(v)
144
+ d = create_driver(BASE_CONFIG + "format #{format}")
145
+ d.run(expect_records: 2) do
146
+ create_udp_socket('127.0.0.1', PORT) do |u|
147
+ payloads.each do |payload|
148
+ u.send(payload, 0)
149
+ end
150
+ end
151
+ end
54
152
 
55
- tests = [
56
- {'msg' => '[Sep 11 00:00:00] localhost logger: foo', 'expected' => Time.strptime('Sep 11 00:00:00', '%b %d %H:%M:%S').to_i},
57
- {'msg' => '[Sep 1 00:00:00] localhost logger: foo', 'expected' => Time.strptime('Sep 1 00:00:00', '%b %d %H:%M:%S').to_i},
58
- ]
153
+ assert_equal 2, d.events.size
154
+ expecteds.each_with_index do |expected_record, i|
155
+ assert_equal "udp", d.events[i][0]
156
+ assert d.events[i][1].is_a?(Fluent::EventTime)
157
+ assert_equal expected_record, d.events[i][2]
158
+ end
159
+ end
59
160
 
60
- d.run do
61
- u = Fluent::SocketUtil.create_udp_socket(k)
62
- u.connect(k, PORT)
63
- tests.each {|test|
64
- u.send(test['msg'], 0)
65
- }
66
- sleep 1
161
+ test 'remove_newline' do
162
+ d = create_driver(BASE_CONFIG + %!
163
+ format none
164
+ remove_newline false
165
+ !)
166
+ payloads = ["test1\n", "test2\n"]
167
+ d.run(expect_records: 2) do
168
+ create_udp_socket('127.0.0.1', PORT) do |u|
169
+ payloads.each do |payload|
170
+ u.send(payload, 0)
171
+ end
67
172
  end
173
+ end
68
174
 
69
- emits = d.emits
70
- emits.each_index {|i|
71
- assert_equal(tests[i]['expected'], emits[i][1])
72
- }
73
- }
175
+ expecteds = payloads.map { |payload| {'message' => payload} }
176
+ assert_equal 2, d.events.size
177
+ expecteds.each_with_index do |expected_record, i|
178
+ assert_equal "udp", d.events[i][0]
179
+ assert d.events[i][1].is_a?(Fluent::EventTime)
180
+ assert_equal expected_record, d.events[i][2]
181
+ end
74
182
  end
75
183
 
76
- {
77
- 'none' => [
78
- {'msg' => "tcptest1\n", 'expected' => 'tcptest1'},
79
- {'msg' => "tcptest2\n", 'expected' => 'tcptest2'},
80
- ],
81
- 'json' => [
82
- {'msg' => {'k' => 123, 'message' => 'tcptest1'}.to_json + "\n", 'expected' => 'tcptest1'},
83
- {'msg' => {'k' => 'tcptest2', 'message' => 456}.to_json + "\n", 'expected' => 456},
84
- ],
85
- '/^\\[(?<time>[^\\]]*)\\] (?<message>.*)/' => [
86
- {'msg' => '[Sep 10 00:00:00] localhost: ' + 'x' * 100 + "\n", 'expected' => 'localhost: ' + 'x' * 100},
87
- {'msg' => '[Sep 10 00:00:00] localhost: ' + 'x' * 1024 + "\n", 'expected' => 'localhost: ' + 'x' * 1024},
88
- ]
89
- }.each { |format, test_cases|
90
- define_method("test_msg_size_#{format[0] == '/' ? 'regexp' : format}") do
91
- d = create_driver(BASE_CONFIG + "format #{format}")
92
- tests = test_cases
93
-
94
- d.run do
95
- u = UDPSocket.new
96
- u.connect('127.0.0.1', PORT)
97
- tests.each { |test|
98
- u.send(test['msg'], 0)
99
- }
100
- sleep 1
184
+ test 'source_hostname_key' do
185
+ d = create_driver(BASE_CONFIG + %!
186
+ format none
187
+ source_hostname_key host
188
+ !)
189
+ hostname = nil
190
+ d.run(expect_records: 1) do
191
+ create_udp_socket('127.0.0.1', PORT) do |u|
192
+ u.send("test", 0)
193
+ hostname = u.peeraddr[2]
101
194
  end
195
+ end
102
196
 
103
- compare_test_result(d.emits, tests)
197
+ assert_equal 1, d.events.size
198
+ assert_equal "udp", d.events[0][0]
199
+ assert d.events[0][1].is_a?(Fluent::EventTime)
200
+ assert_equal hostname, d.events[0][2]['host']
201
+ end
202
+
203
+ test 'source_address_key' do
204
+ d = create_driver(BASE_CONFIG + %!
205
+ format none
206
+ source_address_key addr
207
+ !)
208
+ address = nil
209
+ d.run(expect_records: 1) do
210
+ create_udp_socket('127.0.0.1', PORT) do |u|
211
+ u.send("test", 0)
212
+ address = u.peeraddr[3]
213
+ end
104
214
  end
105
- }
106
215
 
107
- def compare_test_result(emits, tests)
108
- assert_equal(2, emits.size)
109
- emits.each_index {|i|
110
- assert_equal(tests[i]['expected'], emits[i][2]['message'])
111
- }
216
+ assert_equal 1, d.events.size
217
+ assert_equal "udp", d.events[0][0]
218
+ assert d.events[0][1].is_a?(Fluent::EventTime)
219
+ assert_equal address, d.events[0][2]['addr']
220
+ end
221
+
222
+ test 'receive_buffer_size' do
223
+ # doesn't check exact value because it depends on platform and condition
224
+
225
+ # check if default socket and in_udp's one without receive_buffer_size have same size buffer
226
+ d0 = create_driver(BASE_CONFIG + %!
227
+ format none
228
+ !)
229
+ d0.run do
230
+ sock = d0.instance.instance_variable_get(:@_servers)[0].server.instance_variable_get(:@sock)
231
+ begin
232
+ default_sock = UDPSocket.new
233
+ assert_equal(default_sock.getsockopt(Socket::SOL_SOCKET, Socket::SO_RCVBUF).int, sock.getsockopt(Socket::SOL_SOCKET, Socket::SO_RCVBUF).int)
234
+ ensure
235
+ default_sock.close
236
+ end
237
+ end
238
+
239
+ # check if default socket and in_udp's one with receive_buffer_size have different size buffer
240
+ d1 = create_driver(BASE_CONFIG + %!
241
+ format none
242
+ receive_buffer_size 1001
243
+ !)
244
+ d1.run do
245
+ sock = d1.instance.instance_variable_get(:@_servers)[0].server.instance_variable_get(:@sock)
246
+ begin
247
+ default_sock = UDPSocket.new
248
+ assert_not_equal(default_sock.getsockopt(Socket::SOL_SOCKET, Socket::SO_RCVBUF).int, sock.getsockopt(Socket::SOL_SOCKET, Socket::SO_RCVBUF).int)
249
+ ensure
250
+ default_sock.close
251
+ end
252
+ end
112
253
  end
113
254
  end
@@ -1,5 +1,6 @@
1
1
  require_relative '../helper'
2
2
  require 'fluent/test'
3
+ require 'fluent/plugin/in_unix'
3
4
 
4
5
  module StreamInputTest
5
6
  def setup
@@ -9,14 +10,14 @@ module StreamInputTest
9
10
  def test_time
10
11
  d = create_driver
11
12
 
12
- time = Time.parse("2011-01-02 13:14:15 UTC").to_i
13
+ time = Fluent::EventTime.parse("2011-01-02 13:14:15 UTC")
13
14
  Fluent::Engine.now = time
14
15
 
15
16
  d.expect_emit "tag1", time, {"a"=>1}
16
17
  d.expect_emit "tag2", time, {"a"=>2}
17
18
 
18
19
  d.run do
19
- d.expected_emits.each {|tag,time,record|
20
+ d.expected_emits.each {|tag,_time,record|
20
21
  send_data Fluent::Engine.msgpack_factory.packer.write([tag, 0, record]).to_s
21
22
  }
22
23
  end
@@ -25,14 +26,14 @@ module StreamInputTest
25
26
  def test_message
26
27
  d = create_driver
27
28
 
28
- time = Time.parse("2011-01-02 13:14:15 UTC").to_i
29
+ time = Fluent::EventTime.parse("2011-01-02 13:14:15 UTC")
29
30
 
30
31
  d.expect_emit "tag1", time, {"a"=>1}
31
32
  d.expect_emit "tag2", time, {"a"=>2}
32
33
 
33
34
  d.run do
34
- d.expected_emits.each {|tag,time,record|
35
- send_data Fluent::Engine.msgpack_factory.packer.write([tag, time, record]).to_s
35
+ d.expected_emits.each {|tag,_time,record|
36
+ send_data Fluent::Engine.msgpack_factory.packer.write([tag, _time, record]).to_s
36
37
  }
37
38
  end
38
39
  end
@@ -40,15 +41,15 @@ module StreamInputTest
40
41
  def test_forward
41
42
  d = create_driver
42
43
 
43
- time = Time.parse("2011-01-02 13:14:15 UTC").to_i
44
+ time = Fluent::EventTime.parse("2011-01-02 13:14:15 UTC")
44
45
 
45
46
  d.expect_emit "tag1", time, {"a"=>1}
46
47
  d.expect_emit "tag1", time, {"a"=>2}
47
48
 
48
49
  d.run do
49
50
  entries = []
50
- d.expected_emits.each {|tag,time,record|
51
- entries << [time, record]
51
+ d.expected_emits.each {|tag,_time,record|
52
+ entries << [_time, record]
52
53
  }
53
54
  send_data Fluent::Engine.msgpack_factory.packer.write(["tag1", entries]).to_s
54
55
  end
@@ -57,15 +58,15 @@ module StreamInputTest
57
58
  def test_packed_forward
58
59
  d = create_driver
59
60
 
60
- time = Time.parse("2011-01-02 13:14:15 UTC").to_i
61
+ time = Fluent::EventTime.parse("2011-01-02 13:14:15 UTC")
61
62
 
62
63
  d.expect_emit "tag1", time, {"a"=>1}
63
64
  d.expect_emit "tag1", time, {"a"=>2}
64
65
 
65
66
  d.run do
66
67
  entries = ''
67
- d.expected_emits.each {|tag,time,record|
68
- Fluent::Engine.msgpack_factory.packer(entries).write([time, record]).flush
68
+ d.expected_emits.each {|tag,_time,record|
69
+ Fluent::Engine.msgpack_factory.packer(entries).write([_time, record]).flush
69
70
  }
70
71
  send_data Fluent::Engine.msgpack_factory.packer.write(["tag1", entries]).to_s
71
72
  end
@@ -80,7 +81,7 @@ module StreamInputTest
80
81
  d.expect_emit "tag2", time, {"a"=>2}
81
82
 
82
83
  d.run do
83
- d.expected_emits.each {|tag,time,record|
84
+ d.expected_emits.each {|tag,_time,record|
84
85
  send_data [tag, time, record].to_json
85
86
  }
86
87
  end
@@ -122,4 +123,4 @@ class UnixInputTest < Test::Unit::TestCase
122
123
  def connect
123
124
  UNIXSocket.new("#{TMP_DIR}/unix")
124
125
  end
125
- end
126
+ end unless Fluent.windows?