fluentd 1.17.0 → 1.17.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (259) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +46 -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/compat/call_super_mixin.rb +3 -3
  8. data/lib/fluent/compat/propagate_default.rb +4 -4
  9. data/lib/fluent/config/yaml_parser/parser.rb +4 -0
  10. data/lib/fluent/log/console_adapter.rb +4 -2
  11. data/lib/fluent/plugin/in_exec.rb +14 -2
  12. data/lib/fluent/plugin/in_http.rb +1 -1
  13. data/lib/fluent/plugin/in_sample.rb +13 -7
  14. data/lib/fluent/plugin/in_tail.rb +65 -23
  15. data/lib/fluent/plugin/out_copy.rb +1 -1
  16. data/lib/fluent/plugin/out_file.rb +8 -0
  17. data/lib/fluent/plugin/out_http.rb +12 -0
  18. data/lib/fluent/plugin/parser_json.rb +4 -12
  19. data/lib/fluent/plugin_helper/http_server/server.rb +1 -1
  20. data/lib/fluent/version.rb +1 -1
  21. data/templates/new_gem/fluent-plugin.gemspec.erb +6 -5
  22. metadata +25 -472
  23. data/.github/DISCUSSION_TEMPLATE/q-a-japanese.yml +0 -50
  24. data/.github/DISCUSSION_TEMPLATE/q-a.yml +0 -47
  25. data/.github/ISSUE_TEMPLATE/bug_report.yml +0 -71
  26. data/.github/ISSUE_TEMPLATE/config.yml +0 -5
  27. data/.github/ISSUE_TEMPLATE/feature_request.yml +0 -39
  28. data/.github/ISSUE_TEMPLATE.md +0 -17
  29. data/.github/PULL_REQUEST_TEMPLATE.md +0 -14
  30. data/.github/workflows/stale-actions.yml +0 -24
  31. data/.github/workflows/test-ruby-head.yml +0 -31
  32. data/.github/workflows/test.yml +0 -32
  33. data/.gitignore +0 -30
  34. data/Gemfile +0 -9
  35. data/fluentd.gemspec +0 -62
  36. data/test/command/test_binlog_reader.rb +0 -362
  37. data/test/command/test_ca_generate.rb +0 -70
  38. data/test/command/test_cap_ctl.rb +0 -100
  39. data/test/command/test_cat.rb +0 -128
  40. data/test/command/test_ctl.rb +0 -56
  41. data/test/command/test_fluentd.rb +0 -1291
  42. data/test/command/test_plugin_config_formatter.rb +0 -397
  43. data/test/command/test_plugin_generator.rb +0 -109
  44. data/test/compat/test_calls_super.rb +0 -166
  45. data/test/compat/test_parser.rb +0 -92
  46. data/test/config/assertions.rb +0 -42
  47. data/test/config/test_config_parser.rb +0 -551
  48. data/test/config/test_configurable.rb +0 -1784
  49. data/test/config/test_configure_proxy.rb +0 -604
  50. data/test/config/test_dsl.rb +0 -415
  51. data/test/config/test_element.rb +0 -518
  52. data/test/config/test_literal_parser.rb +0 -309
  53. data/test/config/test_plugin_configuration.rb +0 -56
  54. data/test/config/test_section.rb +0 -191
  55. data/test/config/test_system_config.rb +0 -195
  56. data/test/config/test_types.rb +0 -408
  57. data/test/counter/test_client.rb +0 -563
  58. data/test/counter/test_error.rb +0 -44
  59. data/test/counter/test_mutex_hash.rb +0 -179
  60. data/test/counter/test_server.rb +0 -589
  61. data/test/counter/test_store.rb +0 -258
  62. data/test/counter/test_validator.rb +0 -137
  63. data/test/helper.rb +0 -155
  64. data/test/helpers/fuzzy_assert.rb +0 -89
  65. data/test/helpers/process_extenstion.rb +0 -33
  66. data/test/log/test_console_adapter.rb +0 -117
  67. data/test/plugin/data/2010/01/20100102-030405.log +0 -0
  68. data/test/plugin/data/2010/01/20100102-030406.log +0 -0
  69. data/test/plugin/data/2010/01/20100102.log +0 -0
  70. data/test/plugin/data/log/bar +0 -0
  71. data/test/plugin/data/log/foo/bar.log +0 -0
  72. data/test/plugin/data/log/foo/bar2 +0 -0
  73. data/test/plugin/data/log/test.log +0 -0
  74. data/test/plugin/data/log_numeric/01.log +0 -0
  75. data/test/plugin/data/log_numeric/02.log +0 -0
  76. data/test/plugin/data/log_numeric/12.log +0 -0
  77. data/test/plugin/data/log_numeric/14.log +0 -0
  78. data/test/plugin/data/sd_file/config +0 -11
  79. data/test/plugin/data/sd_file/config.json +0 -17
  80. data/test/plugin/data/sd_file/config.yaml +0 -11
  81. data/test/plugin/data/sd_file/config.yml +0 -11
  82. data/test/plugin/data/sd_file/invalid_config.yml +0 -7
  83. data/test/plugin/in_tail/test_fifo.rb +0 -121
  84. data/test/plugin/in_tail/test_io_handler.rb +0 -150
  85. data/test/plugin/in_tail/test_position_file.rb +0 -346
  86. data/test/plugin/out_forward/test_ack_handler.rb +0 -140
  87. data/test/plugin/out_forward/test_connection_manager.rb +0 -145
  88. data/test/plugin/out_forward/test_handshake_protocol.rb +0 -112
  89. data/test/plugin/out_forward/test_load_balancer.rb +0 -106
  90. data/test/plugin/out_forward/test_socket_cache.rb +0 -174
  91. data/test/plugin/test_bare_output.rb +0 -131
  92. data/test/plugin/test_base.rb +0 -247
  93. data/test/plugin/test_buf_file.rb +0 -1314
  94. data/test/plugin/test_buf_file_single.rb +0 -898
  95. data/test/plugin/test_buf_memory.rb +0 -42
  96. data/test/plugin/test_buffer.rb +0 -1493
  97. data/test/plugin/test_buffer_chunk.rb +0 -209
  98. data/test/plugin/test_buffer_file_chunk.rb +0 -871
  99. data/test/plugin/test_buffer_file_single_chunk.rb +0 -611
  100. data/test/plugin/test_buffer_memory_chunk.rb +0 -339
  101. data/test/plugin/test_compressable.rb +0 -87
  102. data/test/plugin/test_file_util.rb +0 -96
  103. data/test/plugin/test_filter.rb +0 -368
  104. data/test/plugin/test_filter_grep.rb +0 -697
  105. data/test/plugin/test_filter_parser.rb +0 -731
  106. data/test/plugin/test_filter_record_transformer.rb +0 -577
  107. data/test/plugin/test_filter_stdout.rb +0 -207
  108. data/test/plugin/test_formatter_csv.rb +0 -136
  109. data/test/plugin/test_formatter_hash.rb +0 -38
  110. data/test/plugin/test_formatter_json.rb +0 -61
  111. data/test/plugin/test_formatter_ltsv.rb +0 -70
  112. data/test/plugin/test_formatter_msgpack.rb +0 -28
  113. data/test/plugin/test_formatter_out_file.rb +0 -116
  114. data/test/plugin/test_formatter_single_value.rb +0 -44
  115. data/test/plugin/test_formatter_tsv.rb +0 -76
  116. data/test/plugin/test_in_debug_agent.rb +0 -49
  117. data/test/plugin/test_in_exec.rb +0 -261
  118. data/test/plugin/test_in_forward.rb +0 -1178
  119. data/test/plugin/test_in_gc_stat.rb +0 -62
  120. data/test/plugin/test_in_http.rb +0 -1124
  121. data/test/plugin/test_in_monitor_agent.rb +0 -922
  122. data/test/plugin/test_in_object_space.rb +0 -66
  123. data/test/plugin/test_in_sample.rb +0 -190
  124. data/test/plugin/test_in_syslog.rb +0 -505
  125. data/test/plugin/test_in_tail.rb +0 -3429
  126. data/test/plugin/test_in_tcp.rb +0 -328
  127. data/test/plugin/test_in_udp.rb +0 -296
  128. data/test/plugin/test_in_unix.rb +0 -181
  129. data/test/plugin/test_input.rb +0 -137
  130. data/test/plugin/test_metadata.rb +0 -89
  131. data/test/plugin/test_metrics.rb +0 -294
  132. data/test/plugin/test_metrics_local.rb +0 -96
  133. data/test/plugin/test_multi_output.rb +0 -204
  134. data/test/plugin/test_out_copy.rb +0 -308
  135. data/test/plugin/test_out_exec.rb +0 -312
  136. data/test/plugin/test_out_exec_filter.rb +0 -606
  137. data/test/plugin/test_out_file.rb +0 -1038
  138. data/test/plugin/test_out_forward.rb +0 -1349
  139. data/test/plugin/test_out_http.rb +0 -557
  140. data/test/plugin/test_out_null.rb +0 -105
  141. data/test/plugin/test_out_relabel.rb +0 -28
  142. data/test/plugin/test_out_roundrobin.rb +0 -146
  143. data/test/plugin/test_out_secondary_file.rb +0 -458
  144. data/test/plugin/test_out_stdout.rb +0 -205
  145. data/test/plugin/test_out_stream.rb +0 -103
  146. data/test/plugin/test_output.rb +0 -1334
  147. data/test/plugin/test_output_as_buffered.rb +0 -2024
  148. data/test/plugin/test_output_as_buffered_backup.rb +0 -363
  149. data/test/plugin/test_output_as_buffered_compress.rb +0 -179
  150. data/test/plugin/test_output_as_buffered_overflow.rb +0 -250
  151. data/test/plugin/test_output_as_buffered_retries.rb +0 -966
  152. data/test/plugin/test_output_as_buffered_secondary.rb +0 -882
  153. data/test/plugin/test_output_as_standard.rb +0 -374
  154. data/test/plugin/test_owned_by.rb +0 -34
  155. data/test/plugin/test_parser.rb +0 -399
  156. data/test/plugin/test_parser_apache.rb +0 -42
  157. data/test/plugin/test_parser_apache2.rb +0 -47
  158. data/test/plugin/test_parser_apache_error.rb +0 -45
  159. data/test/plugin/test_parser_csv.rb +0 -200
  160. data/test/plugin/test_parser_json.rb +0 -244
  161. data/test/plugin/test_parser_labeled_tsv.rb +0 -160
  162. data/test/plugin/test_parser_msgpack.rb +0 -127
  163. data/test/plugin/test_parser_multiline.rb +0 -111
  164. data/test/plugin/test_parser_nginx.rb +0 -88
  165. data/test/plugin/test_parser_none.rb +0 -52
  166. data/test/plugin/test_parser_regexp.rb +0 -284
  167. data/test/plugin/test_parser_syslog.rb +0 -650
  168. data/test/plugin/test_parser_tsv.rb +0 -122
  169. data/test/plugin/test_sd_file.rb +0 -228
  170. data/test/plugin/test_sd_srv.rb +0 -230
  171. data/test/plugin/test_storage.rb +0 -166
  172. data/test/plugin/test_storage_local.rb +0 -335
  173. data/test/plugin/test_string_util.rb +0 -26
  174. data/test/plugin_helper/data/cert/cert-key.pem +0 -27
  175. data/test/plugin_helper/data/cert/cert-with-CRLF.pem +0 -19
  176. data/test/plugin_helper/data/cert/cert-with-no-newline.pem +0 -19
  177. data/test/plugin_helper/data/cert/cert.pem +0 -19
  178. data/test/plugin_helper/data/cert/cert_chains/ca-cert-key.pem +0 -27
  179. data/test/plugin_helper/data/cert/cert_chains/ca-cert.pem +0 -20
  180. data/test/plugin_helper/data/cert/cert_chains/cert-key.pem +0 -27
  181. data/test/plugin_helper/data/cert/cert_chains/cert.pem +0 -40
  182. data/test/plugin_helper/data/cert/empty.pem +0 -0
  183. data/test/plugin_helper/data/cert/generate_cert.rb +0 -125
  184. data/test/plugin_helper/data/cert/with_ca/ca-cert-key-pass.pem +0 -30
  185. data/test/plugin_helper/data/cert/with_ca/ca-cert-key.pem +0 -27
  186. data/test/plugin_helper/data/cert/with_ca/ca-cert-pass.pem +0 -20
  187. data/test/plugin_helper/data/cert/with_ca/ca-cert.pem +0 -20
  188. data/test/plugin_helper/data/cert/with_ca/cert-key-pass.pem +0 -30
  189. data/test/plugin_helper/data/cert/with_ca/cert-key.pem +0 -27
  190. data/test/plugin_helper/data/cert/with_ca/cert-pass.pem +0 -21
  191. data/test/plugin_helper/data/cert/with_ca/cert.pem +0 -21
  192. data/test/plugin_helper/data/cert/without_ca/cert-key-pass.pem +0 -30
  193. data/test/plugin_helper/data/cert/without_ca/cert-key.pem +0 -27
  194. data/test/plugin_helper/data/cert/without_ca/cert-pass.pem +0 -20
  195. data/test/plugin_helper/data/cert/without_ca/cert.pem +0 -20
  196. data/test/plugin_helper/http_server/test_app.rb +0 -65
  197. data/test/plugin_helper/http_server/test_route.rb +0 -32
  198. data/test/plugin_helper/service_discovery/test_manager.rb +0 -93
  199. data/test/plugin_helper/service_discovery/test_round_robin_balancer.rb +0 -21
  200. data/test/plugin_helper/test_cert_option.rb +0 -25
  201. data/test/plugin_helper/test_child_process.rb +0 -862
  202. data/test/plugin_helper/test_compat_parameters.rb +0 -358
  203. data/test/plugin_helper/test_event_emitter.rb +0 -80
  204. data/test/plugin_helper/test_event_loop.rb +0 -52
  205. data/test/plugin_helper/test_extract.rb +0 -194
  206. data/test/plugin_helper/test_formatter.rb +0 -255
  207. data/test/plugin_helper/test_http_server_helper.rb +0 -372
  208. data/test/plugin_helper/test_inject.rb +0 -561
  209. data/test/plugin_helper/test_metrics.rb +0 -137
  210. data/test/plugin_helper/test_parser.rb +0 -264
  211. data/test/plugin_helper/test_record_accessor.rb +0 -238
  212. data/test/plugin_helper/test_retry_state.rb +0 -1006
  213. data/test/plugin_helper/test_server.rb +0 -1895
  214. data/test/plugin_helper/test_service_discovery.rb +0 -165
  215. data/test/plugin_helper/test_socket.rb +0 -146
  216. data/test/plugin_helper/test_storage.rb +0 -542
  217. data/test/plugin_helper/test_thread.rb +0 -164
  218. data/test/plugin_helper/test_timer.rb +0 -130
  219. data/test/scripts/exec_script.rb +0 -32
  220. data/test/scripts/fluent/plugin/formatter1/formatter_test1.rb +0 -7
  221. data/test/scripts/fluent/plugin/formatter2/formatter_test2.rb +0 -7
  222. data/test/scripts/fluent/plugin/formatter_known.rb +0 -8
  223. data/test/scripts/fluent/plugin/out_test.rb +0 -81
  224. data/test/scripts/fluent/plugin/out_test2.rb +0 -80
  225. data/test/scripts/fluent/plugin/parser_known.rb +0 -4
  226. data/test/test_capability.rb +0 -74
  227. data/test/test_clock.rb +0 -164
  228. data/test/test_config.rb +0 -369
  229. data/test/test_configdsl.rb +0 -148
  230. data/test/test_daemonizer.rb +0 -91
  231. data/test/test_engine.rb +0 -203
  232. data/test/test_event.rb +0 -531
  233. data/test/test_event_router.rb +0 -348
  234. data/test/test_event_time.rb +0 -199
  235. data/test/test_file_wrapper.rb +0 -53
  236. data/test/test_filter.rb +0 -121
  237. data/test/test_fluent_log_event_router.rb +0 -99
  238. data/test/test_formatter.rb +0 -369
  239. data/test/test_input.rb +0 -31
  240. data/test/test_log.rb +0 -1076
  241. data/test/test_match.rb +0 -148
  242. data/test/test_mixin.rb +0 -351
  243. data/test/test_msgpack_factory.rb +0 -50
  244. data/test/test_oj_options.rb +0 -55
  245. data/test/test_output.rb +0 -278
  246. data/test/test_plugin.rb +0 -251
  247. data/test/test_plugin_classes.rb +0 -370
  248. data/test/test_plugin_helper.rb +0 -81
  249. data/test/test_plugin_id.rb +0 -119
  250. data/test/test_process.rb +0 -14
  251. data/test/test_root_agent.rb +0 -951
  252. data/test/test_static_config_analysis.rb +0 -177
  253. data/test/test_supervisor.rb +0 -821
  254. data/test/test_test_drivers.rb +0 -136
  255. data/test/test_time_formatter.rb +0 -301
  256. data/test/test_time_parser.rb +0 -362
  257. data/test/test_tls.rb +0 -65
  258. data/test/test_unique_id.rb +0 -47
  259. data/test/test_variable_store.rb +0 -65
data/test/test_match.rb DELETED
@@ -1,148 +0,0 @@
1
- require_relative 'helper'
2
- require 'fluent/match'
3
-
4
- class MatchTest < Test::Unit::TestCase
5
- include Fluent
6
-
7
- def test_simple
8
- assert_glob_match('a', 'a')
9
- assert_glob_match('a.b', 'a.b')
10
- assert_glob_not_match('a', 'b')
11
- assert_glob_not_match('a.b', 'aab')
12
- end
13
-
14
- def test_wildcard
15
- assert_glob_match('a*', 'a')
16
- assert_glob_match('a*', 'ab')
17
- assert_glob_match('a*', 'abc')
18
-
19
- assert_glob_match('*a', 'a')
20
- assert_glob_match('*a', 'ba')
21
- assert_glob_match('*a', 'cba')
22
-
23
- assert_glob_match('*a*', 'a')
24
- assert_glob_match('*a*', 'ba')
25
- assert_glob_match('*a*', 'ac')
26
- assert_glob_match('*a*', 'bac')
27
-
28
- assert_glob_not_match('a*', 'a.b')
29
- assert_glob_not_match('a*', 'ab.c')
30
- assert_glob_not_match('a*', 'ba')
31
- assert_glob_not_match('*a', 'ab')
32
-
33
- assert_glob_match('a.*', 'a.b')
34
- assert_glob_match('a.*', 'a.c')
35
- assert_glob_not_match('a.*', 'ab')
36
-
37
- assert_glob_match('a.*.c', 'a.b.c')
38
- assert_glob_match('a.*.c', 'a.c.c')
39
- assert_glob_not_match('a.*.c', 'a.c')
40
- end
41
-
42
- def test_recursive_wildcard
43
- assert_glob_match('a.**', 'a')
44
- assert_glob_not_match('a.**', 'ab')
45
- assert_glob_not_match('a.**', 'abc')
46
- assert_glob_match('a.**', 'a.b')
47
- assert_glob_not_match('a.**', 'ab.c')
48
- assert_glob_not_match('a.**', 'ab.d.e')
49
-
50
- assert_glob_match('a**', 'a')
51
- assert_glob_match('a**', 'ab')
52
- assert_glob_match('a**', 'abc')
53
- assert_glob_match('a**', 'a.b')
54
- assert_glob_match('a**', 'ab.c')
55
- assert_glob_match('a**', 'ab.d.e')
56
-
57
- assert_glob_match('**.a', 'a')
58
- assert_glob_not_match('**.a', 'ba')
59
- assert_glob_not_match('**.a', 'c.ba')
60
- assert_glob_match('**.a', 'b.a')
61
- assert_glob_match('**.a', 'cb.a')
62
- assert_glob_match('**.a', 'd.e.a')
63
-
64
- assert_glob_match('**a', 'a')
65
- assert_glob_match('**a', 'ba')
66
- assert_glob_match('**a', 'c.ba')
67
- assert_glob_match('**a', 'b.a')
68
- assert_glob_match('**a', 'cb.a')
69
- assert_glob_match('**a', 'd.e.a')
70
- end
71
-
72
- def test_or
73
- assert_glob_match('a.{b,c}', 'a.b')
74
- assert_glob_match('a.{b,c}', 'a.c')
75
- assert_glob_not_match('a.{b,c}', 'a.d')
76
-
77
- assert_glob_match('a.{b,c}.**', 'a.b')
78
- assert_glob_match('a.{b,c}.**', 'a.c')
79
- assert_glob_not_match('a.{b,c}.**', 'a.d')
80
- assert_glob_not_match('a.{b,c}.**', 'a.cd')
81
-
82
- assert_glob_match('a.{b.**,c}', 'a.b')
83
- assert_glob_match('a.{b.**,c}', 'a.b.c')
84
- assert_glob_match('a.{b.**,c}', 'a.c')
85
- assert_glob_not_match('a.{b.**,c}', 'a.c.d')
86
- end
87
-
88
- def test_multi_pattern_or
89
- assert_or_match('a.b a.c', 'a.b')
90
- assert_or_match('a.b a.c', 'a.c')
91
- assert_or_not_match('a.b a.c', 'a.d')
92
-
93
- assert_or_match('a.b.** a.c.**', 'a.b')
94
- assert_or_match('a.b.** a.c.**', 'a.c')
95
- assert_or_not_match('a.b.** a.c.**', 'a.d')
96
- assert_or_not_match('a.b.** a.c.**', 'a.cd')
97
-
98
- assert_or_match('a.b.** a.c', 'a.b')
99
- assert_or_match('a.b.** a.c', 'a.b.c')
100
- assert_or_match('a.b.** a.c', 'a.c')
101
- assert_or_not_match('a.b.** a.c', 'a.c.d')
102
- end
103
-
104
- def test_regex_pattern
105
- assert_glob_match('/a/', 'a')
106
- assert_glob_not_match('/a/', 'abc')
107
- assert_glob_match('/a.*/', 'abc')
108
- assert_glob_not_match('/b.*/', 'abc')
109
- assert_glob_match('/a\..*/', 'a.b.c')
110
- assert_glob_not_match('/(?!a\.).*/', 'a.b.c')
111
- assert_glob_not_match('/a\..*/', 'b.b.c')
112
- assert_glob_match('/(?!a\.).*/', 'b.b.c')
113
- end
114
-
115
- #def test_character_class
116
- # assert_match('[a]', 'a')
117
- # assert_match('[ab]', 'a')
118
- # assert_match('[ab]', 'b')
119
- # assert_not_match('[ab]', 'c')
120
- #
121
- # assert_match('[a-b]', 'a')
122
- # assert_match('[a-b]', 'a')
123
- # assert_match('[a-b]', 'b')
124
- # assert_not_match('[a-b]', 'c')
125
- #
126
- # assert_match('[a-b0-9]', 'a')
127
- # assert_match('[a-b0-9]', '0')
128
- # assert_not_match('[a-b0-9]', 'c')
129
- #end
130
-
131
- def assert_glob_match(pat, str)
132
- assert_true GlobMatchPattern.new(pat).match(str)
133
- assert_true EventRouter::Rule.new(pat, nil).match?(str)
134
- end
135
-
136
- def assert_glob_not_match(pat, str)
137
- assert_false GlobMatchPattern.new(pat).match(str)
138
- assert_false EventRouter::Rule.new(pat, nil).match?(str)
139
- end
140
-
141
- def assert_or_match(pats, str)
142
- assert_true EventRouter::Rule.new(pats, nil).match?(str)
143
- end
144
-
145
- def assert_or_not_match(pats, str)
146
- assert_false EventRouter::Rule.new(pats, nil).match?(str)
147
- end
148
- end
data/test/test_mixin.rb DELETED
@@ -1,351 +0,0 @@
1
- require_relative 'helper'
2
- require 'fluent/mixin'
3
- require 'fluent/env'
4
- require 'fluent/plugin'
5
- require 'fluent/config'
6
- require 'fluent/test'
7
- require 'timecop'
8
-
9
- module MixinTest
10
- module Utils
11
- def setup
12
- super
13
- Fluent::Test.setup
14
- @time = Time.utc(1,2,3,4,5,2010,nil,nil,nil,nil)
15
- Timecop.freeze(@time)
16
- end
17
-
18
- def teardown
19
- super
20
- Timecop.return
21
- GC.start
22
- end
23
-
24
- module Checker
25
- extend self
26
- def format_check(tag, time, record); end
27
- end
28
-
29
- @@num = 0
30
-
31
- def create_register_output_name
32
- @@num += 1
33
- "mixin_text_#{@@num}"
34
- end
35
-
36
- def format_check(hash, tagname = 'test')
37
- mock(Checker).format_check(tagname, @time.to_i, hash)
38
- end
39
-
40
- def create_driver(include_klass, conf = '', tag = "test", &block)
41
- register_output_name = create_register_output_name
42
- include_klasses = [include_klass].flatten
43
-
44
- klass = Class.new(Fluent::BufferedOutput) {
45
- include_klasses.each {|k| include k }
46
-
47
- Fluent::Plugin.register_output(register_output_name, self)
48
- def format(tag, time, record)
49
- Checker.format_check(tag, time, record)
50
- [tag, time, record].to_msgpack
51
- end
52
-
53
- def write(chunk); end
54
- }
55
-
56
- if block
57
- Utils.const_set("MixinTestClass#{@@num}", klass)
58
- klass.module_eval(&block)
59
- end
60
-
61
- Fluent::Test::BufferedOutputTestDriver.new(klass, tag) {
62
- }.configure("type #{register_output_name}" + conf)
63
- end
64
- end
65
-
66
- class SetTagKeyMixinText < Test::Unit::TestCase
67
- include Utils
68
-
69
- def test_tag_key_default
70
- format_check({
71
- 'a' => 1
72
- })
73
-
74
- d = create_driver(Fluent::SetTagKeyMixin, %[
75
- ])
76
- d.emit({'a' => 1})
77
- d.run
78
- end
79
-
80
- def test_include_tag_key_true
81
- format_check({
82
- 'tag' => 'test',
83
- 'a' => 1
84
- })
85
-
86
- d = create_driver(Fluent::SetTagKeyMixin, %[
87
- include_tag_key true
88
- ])
89
-
90
- d.emit({'a' => 1})
91
- d.run
92
- end
93
-
94
- def test_include_tag_key_false
95
- format_check({
96
- 'a' => 1
97
- })
98
-
99
- d = create_driver(Fluent::SetTagKeyMixin, %[
100
- include_tag_key false
101
- ])
102
- d.emit({'a' => 1})
103
- d.run
104
- end
105
-
106
- def test_tag_key_set
107
- format_check({
108
- 'tag_key_changed' => 'test',
109
- 'a' => 1
110
- })
111
-
112
- d = create_driver(Fluent::SetTagKeyMixin, %[
113
- include_tag_key true
114
- tag_key tag_key_changed
115
- ])
116
-
117
- d.emit({'a' => 1})
118
- d.run
119
- end
120
-
121
- sub_test_case "mixin" do
122
- data(
123
- 'true' => true,
124
- 'false' => false)
125
- test 'include_tag_key' do |param|
126
- d = create_driver(Fluent::SetTagKeyMixin) {
127
- config_set_default :include_tag_key, param
128
- }
129
-
130
- assert_equal(param, d.instance.include_tag_key)
131
- end
132
- end
133
- end
134
-
135
- class SetTimeKeyMixinText < Test::Unit::TestCase
136
- include Utils
137
-
138
- def test_time_key_default
139
- format_check({
140
- 'a' => 1
141
- })
142
-
143
- d = create_driver(Fluent::SetTimeKeyMixin, %[
144
- ])
145
-
146
- d.emit({'a' => 1})
147
- d.run
148
- end
149
-
150
- def test_include_time_key_true
151
- format_check({
152
- 'time' => "2010-05-04T03:02:01Z",
153
- 'a' => 1
154
- })
155
-
156
- d = create_driver(Fluent::SetTimeKeyMixin, %[
157
- include_time_key true
158
- ])
159
-
160
- d.emit({'a' => 1})
161
- d.run
162
- end
163
-
164
- def test_time_format
165
- format_check({
166
- 'time' => "20100504",
167
- 'a' => 1
168
- })
169
-
170
- d = create_driver(Fluent::SetTimeKeyMixin, %[
171
- include_time_key true
172
- time_format %Y%m%d
173
- ])
174
-
175
- d.emit({'a' => 1})
176
- d.run
177
- end
178
-
179
- def test_timezone_1
180
- format_check({
181
- 'time' => "2010-05-03T17:02:01-10:00",
182
- 'a' => 1
183
- })
184
-
185
- d = create_driver(Fluent::SetTimeKeyMixin, %[
186
- include_time_key true
187
- timezone Pacific/Honolulu
188
- ])
189
-
190
- d.emit({'a' => 1})
191
- d.run
192
- end
193
-
194
- def test_timezone_2
195
- format_check({
196
- 'time' => "2010-05-04T08:32:01+05:30",
197
- 'a' => 1
198
- })
199
-
200
- d = create_driver(Fluent::SetTimeKeyMixin, %[
201
- include_time_key true
202
- timezone +05:30
203
- ])
204
-
205
- d.emit({'a' => 1})
206
- d.run
207
- end
208
-
209
- def test_timezone_invalid
210
- assert_raise(Fluent::ConfigError) do
211
- create_driver(Fluent::SetTimeKeyMixin, %[
212
- include_time_key true
213
- timezone Invalid/Invalid
214
- ])
215
- end
216
- end
217
-
218
- sub_test_case "mixin" do
219
- data(
220
- 'true' => true,
221
- 'false' => false)
222
- test 'include_time_key' do |param|
223
- d = create_driver(Fluent::SetTimeKeyMixin) {
224
- config_set_default :include_time_key, param
225
- }
226
-
227
- assert_equal(param, d.instance.include_time_key)
228
- end
229
- end
230
- end
231
-
232
- class HandleTagMixinTest < Test::Unit::TestCase
233
- include Utils
234
-
235
- def test_add_tag_prefix
236
- format_check({
237
- 'a' => 1
238
- }, 'tag_prefix.test')
239
- format_check({
240
- 'a' => 2
241
- }, 'tag_prefix.test')
242
-
243
- d = create_driver(Fluent::HandleTagNameMixin, %[
244
- add_tag_prefix tag_prefix.
245
- include_tag_key true
246
- ])
247
-
248
- d.emit({'a' => 1})
249
- d.emit({'a' => 2})
250
- d.run
251
- end
252
-
253
- def test_add_tag_suffix
254
- format_check({
255
- 'a' => 1
256
- }, 'test.test_suffix')
257
- format_check({
258
- 'a' => 2
259
- }, 'test.test_suffix')
260
-
261
- d = create_driver(Fluent::HandleTagNameMixin, %[
262
- add_tag_suffix .test_suffix
263
- include_tag_key true
264
- ])
265
-
266
- d.emit({'a' => 1})
267
- d.emit({'a' => 2})
268
- d.run
269
- end
270
-
271
- def test_remove_tag_prefix
272
- format_check({
273
- 'a' => 1
274
- }, 'test')
275
- format_check({
276
- 'a' => 2
277
- }, 'test')
278
-
279
- d = create_driver(Fluent::HandleTagNameMixin, %[
280
- remove_tag_prefix te
281
- include_tag_key true
282
- ], "tetest")
283
-
284
- d.emit({'a' => 1})
285
- d.emit({'a' => 2})
286
- d.run
287
- end
288
-
289
- def test_remove_tag_suffix
290
- format_check({
291
- 'a' => 1
292
- }, 'test')
293
- format_check({
294
- 'a' => 2
295
- }, 'test')
296
-
297
- d = create_driver(Fluent::HandleTagNameMixin, %[
298
- remove_tag_suffix st
299
- include_tag_key true
300
- ], "testst")
301
-
302
- d.emit({'a' => 1})
303
- d.emit({'a' => 2})
304
- d.run
305
- end
306
-
307
- def test_mix_tag_handle
308
- format_check({
309
- 'a' => 1
310
- }, 'prefix.t')
311
-
312
- d = create_driver(Fluent::HandleTagNameMixin, %[
313
- remove_tag_prefix tes
314
- add_tag_prefix prefix.
315
- ])
316
-
317
- d.emit({'a' => 1})
318
- d.run
319
- end
320
-
321
- def test_with_set_tag_key_mixin
322
- format_check({
323
- 'tag' => 'tag_prefix.test',
324
- 'a' => 1
325
- }, 'tag_prefix.test')
326
-
327
- d = create_driver([Fluent::SetTagKeyMixin, Fluent::HandleTagNameMixin], %[
328
- add_tag_prefix tag_prefix.
329
- include_tag_key true
330
- ])
331
-
332
- d.emit({'a' => 1})
333
- d.run
334
- end
335
-
336
- def test_with_set_tag_key_mixin_include_order_reverse
337
- format_check({
338
- 'tag' => 'tag_prefix.test',
339
- 'a' => 1
340
- }, 'tag_prefix.test')
341
-
342
- d = create_driver([Fluent::HandleTagNameMixin, Fluent::SetTagKeyMixin], %[
343
- add_tag_prefix tag_prefix.
344
- include_tag_key true
345
- ])
346
-
347
- d.emit({'a' => 1})
348
- d.run
349
- end
350
- end
351
- end
@@ -1,50 +0,0 @@
1
- require_relative 'helper'
2
- require 'fluent/msgpack_factory'
3
-
4
- class MessagePackFactoryTest < Test::Unit::TestCase
5
- test 'call log.warn only once' do
6
- klass = Class.new do
7
- include Fluent::MessagePackFactory::Mixin
8
- end
9
-
10
- mp = klass.new
11
-
12
- mock.proxy($log).warn(anything).once
13
-
14
- assert mp.msgpack_factory
15
- assert mp.msgpack_factory
16
- assert mp.msgpack_factory
17
- end
18
-
19
- sub_test_case 'thread_local_msgpack_packer' do
20
- test 'packer is cached' do
21
- packer1 = Fluent::MessagePackFactory.thread_local_msgpack_packer
22
- packer2 = Fluent::MessagePackFactory.thread_local_msgpack_packer
23
- assert_equal packer1, packer2
24
- end
25
- end
26
-
27
- sub_test_case 'thread_local_msgpack_unpacker' do
28
- test 'unpacker is cached' do
29
- unpacker1 = Fluent::MessagePackFactory.thread_local_msgpack_unpacker
30
- unpacker2 = Fluent::MessagePackFactory.thread_local_msgpack_unpacker
31
- assert_equal unpacker1, unpacker2
32
- end
33
-
34
- # We need to reset the buffer every time so that received incomplete data
35
- # must not affect data from other senders.
36
- test 'reset the internal buffer of unpacker every time' do
37
- unpacker1 = Fluent::MessagePackFactory.thread_local_msgpack_unpacker
38
- unpacker1.feed_each("\xA6foo") do |result|
39
- flunk("This callback must not be called since the data is uncomplete.")
40
- end
41
-
42
- records = []
43
- unpacker2 = Fluent::MessagePackFactory.thread_local_msgpack_unpacker
44
- unpacker2.feed_each("\xA3foo") do |result|
45
- records.append(result)
46
- end
47
- assert_equal ["foo"], records
48
- end
49
- end
50
- end
@@ -1,55 +0,0 @@
1
- require_relative 'helper'
2
- require 'fluent/test'
3
- require 'fluent/oj_options'
4
-
5
- class OjOptionsTest < ::Test::Unit::TestCase
6
- begin
7
- require 'oj'
8
- @@oj_is_avaibale = true
9
- rescue LoadError
10
- @@oj_is_avaibale = false
11
- end
12
-
13
- setup do
14
- @orig_env = {}
15
- ENV.each do |key, value|
16
- @orig_env[key] = value if key.start_with?("FLUENT_OJ_OPTION_")
17
- end
18
- end
19
-
20
- teardown do
21
- ENV.delete_if { |key| key.start_with?("FLUENT_OJ_OPTION_") }
22
- @orig_env.each { |key, value| ENV[key] = value }
23
- end
24
-
25
- test "available?" do
26
- assert_equal(@@oj_is_avaibale, Fluent::OjOptions.available?)
27
- end
28
-
29
- sub_test_case "set by environment variable" do
30
- test "when no env vars set, returns default options" do
31
- ENV.delete_if { |key| key.start_with?("FLUENT_OJ_OPTION_") }
32
- defaults = Fluent::OjOptions::DEFAULTS
33
- assert_equal(defaults, Fluent::OjOptions.load_env)
34
- assert_equal(defaults, Oj.default_options.slice(*defaults.keys)) if @@oj_is_avaibale
35
- end
36
-
37
- test "valid env var passed with valid value, default is overridden" do
38
- ENV["FLUENT_OJ_OPTION_BIGDECIMAL_LOAD"] = ":bigdecimal"
39
- assert_equal(:bigdecimal, Fluent::OjOptions.load_env[:bigdecimal_load])
40
- assert_equal(:bigdecimal, Oj.default_options[:bigdecimal_load]) if @@oj_is_avaibale
41
- end
42
-
43
- test "valid env var passed with invalid value, default is not overriden" do
44
- ENV["FLUENT_OJ_OPTION_BIGDECIMAL_LOAD"] = ":conor"
45
- assert_equal(:float, Fluent::OjOptions.load_env[:bigdecimal_load])
46
- assert_equal(:float, Oj.default_options[:bigdecimal_load]) if @@oj_is_avaibale
47
- end
48
-
49
- test "invalid env var passed, nothing done with it" do
50
- ENV["FLUENT_OJ_OPTION_CONOR"] = ":conor"
51
- assert_equal(nil, Fluent::OjOptions.load_env[:conor])
52
- assert_equal(nil, Oj.default_options[:conor]) if @@oj_is_avaibale
53
- end
54
- end
55
- end